@evvm/x402 0.0.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +193 -0
- package/README.md +10 -34
- package/dist/index.browser.mjs +76 -0
- package/dist/index.cjs +76 -0
- package/dist/index.mjs +76 -0
- package/dist/types/lib/local-facilitator.d.ts +20 -0
- package/dist/types/lib/parse-header.d.ts +6 -0
- package/dist/types/lib/payment-responses.d.ts +11 -0
- package/dist/types/middleware/express.d.ts +6 -0
- package/dist/types/middleware/next.d.ts +7 -0
- package/dist/types/types/evvm-schema.type.d.ts +18 -0
- package/dist/types/types/facilitator.type.d.ts +5 -0
- package/{src/types/payment-payload.type.ts → dist/types/types/payment-payload.type.d.ts} +2 -4
- package/package.json +54 -2
- package/bun.lock +0 -370
- package/index.ts +0 -1
- package/src/lib/local-facilitator.ts +0 -106
- package/src/lib/parse-header.ts +0 -29
- package/src/lib/payment-responses.ts +0 -64
- package/src/middleware/express.ts +0 -92
- package/src/middleware/next.ts +0 -79
- package/src/types/evvm-schema.type.ts +0 -19
- package/src/types/facilitator.type.ts +0 -15
- package/tsconfig.json +0 -29
- /package/{src/index.ts → dist/types/index.d.ts} +0 -0
- /package/{src/lib/index.ts → dist/types/lib/index.d.ts} +0 -0
- /package/{src/middleware/index.ts → dist/types/middleware/index.d.ts} +0 -0
- /package/{src/types/index.ts → dist/types/types/index.d.ts} +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
var Cw=Object.defineProperty;var Aw=(Q)=>Q;function Iw(Q,J){this[Q]=Aw.bind(null,J)}var HN=(Q,J)=>{for(var X in J)Cw(Q,X,{get:J[X],enumerable:!0,configurable:!0,set:Iw.bind(J,X)})};var v8=(Q,J)=>()=>(Q&&(J=Q(Q=0)),J);function NT(Q,J=!1){if(J)return{h:Number(Q&h9),l:Number(Q>>l7&h9)};return{h:Number(Q>>l7&h9)|0,l:Number(Q&h9)|0}}function u7(Q,J=!1){let X=Q.length,G=new Uint32Array(X),Y=new Uint32Array(X);for(let q=0;q<X;q++){let{h:$,l:W}=NT(Q[q],J);[G[q],Y[q]]=[$,W]}return[G,Y]}var h9,l7,c7=(Q,J,X)=>Q<<X|J>>>32-X,p7=(Q,J,X)=>J<<X|Q>>>32-X,b7=(Q,J,X)=>J<<X-32|Q>>>64-X,o7=(Q,J,X)=>Q<<X-32|J>>>64-X;var d7=v8(()=>{h9=BigInt(4294967295),l7=BigInt(32)});var UX;var r7=v8(()=>{UX=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0});function UT(Q){return Q instanceof Uint8Array||ArrayBuffer.isView(Q)&&Q.constructor.name==="Uint8Array"}function MX(Q){if(!Number.isSafeInteger(Q)||Q<0)throw Error("positive integer expected, got "+Q)}function HQ(Q,...J){if(!UT(Q))throw Error("Uint8Array expected");if(J.length>0&&!J.includes(Q.length))throw Error("Uint8Array expected of length "+J+", got length="+Q.length)}function s7(Q){if(typeof Q!=="function"||typeof Q.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");MX(Q.outputLen),MX(Q.blockLen)}function rQ(Q,J=!0){if(Q.destroyed)throw Error("Hash instance has been destroyed");if(J&&Q.finished)throw Error("Hash#digest() has already been called")}function m9(Q,J){HQ(Q);let X=J.outputLen;if(Q.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function i7(Q){return new Uint32Array(Q.buffer,Q.byteOffset,Math.floor(Q.byteLength/4))}function VQ(...Q){for(let J=0;J<Q.length;J++)Q[J].fill(0)}function y9(Q){return new DataView(Q.buffer,Q.byteOffset,Q.byteLength)}function XQ(Q,J){return Q<<32-J|Q>>>J}function DT(Q){return Q<<24&4278190080|Q<<8&16711680|Q>>>8&65280|Q>>>24&255}function OT(Q){for(let J=0;J<Q.length;J++)Q[J]=DT(Q[J]);return Q}function BT(Q){if(typeof Q!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(Q))}function DX(Q){if(typeof Q==="string")Q=BT(Q);return HQ(Q),Q}function t7(...Q){let J=0;for(let G=0;G<Q.length;G++){let Y=Q[G];HQ(Y),J+=Y.length}let X=new Uint8Array(J);for(let G=0,Y=0;G<Q.length;G++){let q=Q[G];X.set(q,Y),Y+=q.length}return X}class OX{}function l9(Q){let J=(G)=>Q().update(DX(G)).digest(),X=Q();return J.outputLen=X.outputLen,J.blockLen=X.blockLen,J.create=()=>Q(),J}function u9(Q=32){if(UX&&typeof UX.getRandomValues==="function")return UX.getRandomValues(new Uint8Array(Q));if(UX&&typeof UX.randomBytes==="function")return Uint8Array.from(UX.randomBytes(Q));throw Error("crypto.getRandomValues must be defined")}var MT,_z;var EJ=v8(()=>{r7();/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */MT=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)();_z=MT?(Q)=>Q:OT});function fT(Q,J,X,G){if(typeof Q.setBigUint64==="function")return Q.setBigUint64(J,X,G);let Y=BigInt(32),q=BigInt(4294967295),$=Number(X>>Y&q),W=Number(X&q),j=G?4:0,K=G?0:4;Q.setUint32(J+j,$,G),Q.setUint32(J+K,W,G)}function OE(Q,J,X){return Q&J^~Q&X}function BE(Q,J,X){return Q&J^Q&X^J&X}var hz,tQ;var RE=v8(()=>{EJ();hz=class hz extends OX{constructor(Q,J,X,G){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=Q,this.outputLen=J,this.padOffset=X,this.isLE=G,this.buffer=new Uint8Array(Q),this.view=y9(this.buffer)}update(Q){rQ(this),Q=DX(Q),HQ(Q);let{view:J,buffer:X,blockLen:G}=this,Y=Q.length;for(let q=0;q<Y;){let $=Math.min(G-this.pos,Y-q);if($===G){let W=y9(Q);for(;G<=Y-q;q+=G)this.process(W,q);continue}if(X.set(Q.subarray(q,q+$),this.pos),this.pos+=$,q+=$,this.pos===G)this.process(J,0),this.pos=0}return this.length+=Q.length,this.roundClean(),this}digestInto(Q){rQ(this),m9(Q,this),this.finished=!0;let{buffer:J,view:X,blockLen:G,isLE:Y}=this,{pos:q}=this;if(J[q++]=128,VQ(this.buffer.subarray(q)),this.padOffset>G-q)this.process(X,0),q=0;for(let z=q;z<G;z++)J[z]=0;fT(X,G-8,BigInt(this.length*8),Y),this.process(X,0);let $=y9(Q),W=this.outputLen;if(W%4)throw Error("_sha2: outputLen should be aligned to 32bit");let j=W/4,K=this.get();if(j>K.length)throw Error("_sha2: outputLen bigger than state");for(let z=0;z<j;z++)$.setUint32(4*z,K[z],Y)}digest(){let{buffer:Q,outputLen:J}=this;this.digestInto(Q);let X=Q.slice(0,J);return this.destroy(),X}_cloneInto(Q){Q||(Q=new this.constructor),Q.set(...this.get());let{blockLen:J,buffer:X,length:G,finished:Y,destroyed:q,pos:$}=this;if(Q.destroyed=q,Q.finished=Y,Q.length=G,Q.pos=$,G%J)Q.buffer.set(X);return Q}clone(){return this._cloneInto()}};tQ=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225])});var hT,AJ,HE,Xq;var VE=v8(()=>{RE();EJ();hT=Uint32Array.from([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]),AJ=new Uint32Array(64);HE=class HE extends hz{constructor(Q=32){super(64,Q,8,!1);this.A=tQ[0]|0,this.B=tQ[1]|0,this.C=tQ[2]|0,this.D=tQ[3]|0,this.E=tQ[4]|0,this.F=tQ[5]|0,this.G=tQ[6]|0,this.H=tQ[7]|0}get(){let{A:Q,B:J,C:X,D:G,E:Y,F:q,G:$,H:W}=this;return[Q,J,X,G,Y,q,$,W]}set(Q,J,X,G,Y,q,$,W){this.A=Q|0,this.B=J|0,this.C=X|0,this.D=G|0,this.E=Y|0,this.F=q|0,this.G=$|0,this.H=W|0}process(Q,J){for(let z=0;z<16;z++,J+=4)AJ[z]=Q.getUint32(J,!1);for(let z=16;z<64;z++){let N=AJ[z-15],U=AJ[z-2],M=XQ(N,7)^XQ(N,18)^N>>>3,D=XQ(U,17)^XQ(U,19)^U>>>10;AJ[z]=D+AJ[z-7]+M+AJ[z-16]|0}let{A:X,B:G,C:Y,D:q,E:$,F:W,G:j,H:K}=this;for(let z=0;z<64;z++){let N=XQ($,6)^XQ($,11)^XQ($,25),U=K+N+OE($,W,j)+hT[z]+AJ[z]|0,D=(XQ(X,2)^XQ(X,13)^XQ(X,22))+BE(X,G,Y)|0;K=j,j=W,W=$,$=q+U|0,q=Y,Y=G,G=X,X=U+D|0}X=X+this.A|0,G=G+this.B|0,Y=Y+this.C|0,q=q+this.D|0,$=$+this.E|0,W=W+this.F|0,j=j+this.G|0,K=K+this.H|0,this.set(X,G,Y,q,$,W,j,K)}roundClean(){VQ(AJ)}destroy(){this.set(0,0,0,0,0,0,0,0),VQ(this.buffer)}};Xq=l9(()=>new HE)});var mz,yz=(Q,J,X)=>new mz(Q,J).update(X).digest();var LE=v8(()=>{EJ();mz=class mz extends OX{constructor(Q,J){super();this.finished=!1,this.destroyed=!1,s7(Q);let X=DX(J);if(this.iHash=Q.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let G=this.blockLen,Y=new Uint8Array(G);Y.set(X.length>G?Q.create().update(X).digest():X);for(let q=0;q<Y.length;q++)Y[q]^=54;this.iHash.update(Y),this.oHash=Q.create();for(let q=0;q<Y.length;q++)Y[q]^=106;this.oHash.update(Y),VQ(Y)}update(Q){return rQ(this),this.iHash.update(Q),this}digestInto(Q){rQ(this),HQ(Q,this.outputLen),this.finished=!0,this.iHash.digestInto(Q),this.oHash.update(Q),this.oHash.digestInto(Q),this.destroy()}digest(){let Q=new Uint8Array(this.oHash.outputLen);return this.digestInto(Q),Q}_cloneInto(Q){Q||(Q=Object.create(Object.getPrototypeOf(this),{}));let{oHash:J,iHash:X,finished:G,destroyed:Y,blockLen:q,outputLen:$}=this;return Q=Q,Q.finished=G,Q.destroyed=Y,Q.blockLen=q,Q.outputLen=$,Q.oHash=J._cloneInto(Q.oHash),Q.iHash=X._cloneInto(Q.iHash),Q}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}};yz.create=(Q,J)=>new mz(Q,J)});function OY(Q){return Q instanceof Uint8Array||ArrayBuffer.isView(Q)&&Q.constructor.name==="Uint8Array"}function aQ(Q){if(!OY(Q))throw Error("Uint8Array expected")}function BY(Q,J){if(typeof J!=="boolean")throw Error(Q+" boolean expected, got "+J)}function Yq(Q){let J=Q.toString(16);return J.length&1?"0"+J:J}function CE(Q){if(typeof Q!=="string")throw Error("hex string expected, got "+typeof Q);return Q===""?pz:BigInt("0x"+Q)}function RY(Q){if(aQ(Q),AE)return Q.toHex();let J="";for(let X=0;X<Q.length;X++)J+=mT[Q[X]];return J}function EE(Q){if(Q>=nQ._0&&Q<=nQ._9)return Q-nQ._0;if(Q>=nQ.A&&Q<=nQ.F)return Q-(nQ.A-10);if(Q>=nQ.a&&Q<=nQ.f)return Q-(nQ.a-10);return}function Gq(Q){if(typeof Q!=="string")throw Error("hex string expected, got "+typeof Q);if(AE)return Uint8Array.fromHex(Q);let J=Q.length,X=J/2;if(J%2)throw Error("hex string expected, got unpadded hex of length "+J);let G=new Uint8Array(X);for(let Y=0,q=0;Y<X;Y++,q+=2){let $=EE(Q.charCodeAt(q)),W=EE(Q.charCodeAt(q+1));if($===void 0||W===void 0){let j=Q[q]+Q[q+1];throw Error('hex string expected, got non-hex character "'+j+'" at index '+q)}G[Y]=$*16+W}return G}function A8(Q){return CE(RY(Q))}function bz(Q){return aQ(Q),CE(RY(Uint8Array.from(Q).reverse()))}function EQ(Q,J){return Gq(Q.toString(16).padStart(J*2,"0"))}function oz(Q,J){return EQ(Q,J).reverse()}function d0(Q,J,X){let G;if(typeof J==="string")try{G=Gq(J)}catch(q){throw Error(Q+" must be hex string or Uint8Array, cause: "+q)}else if(OY(J))G=Uint8Array.from(J);else throw Error(Q+" must be hex string or Uint8Array");let Y=G.length;if(typeof X==="number"&&Y!==X)throw Error(Q+" of length "+X+" expected, got "+Y);return G}function B8(...Q){let J=0;for(let G=0;G<Q.length;G++){let Y=Q[G];aQ(Y),J+=Y.length}let X=new Uint8Array(J);for(let G=0,Y=0;G<Q.length;G++){let q=Q[G];X.set(q,Y),Y+=q.length}return X}function d9(Q){if(typeof Q!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(Q))}function RX(Q,J,X){return lz(Q)&&lz(J)&&lz(X)&&J<=Q&&Q<X}function eQ(Q,J,X,G){if(!RX(J,X,G))throw Error("expected valid "+Q+": "+X+" <= n < "+G+", got "+J)}function IE(Q){let J;for(J=0;Q>pz;Q>>=cz,J+=1);return J}function SE(Q,J,X){if(typeof Q!=="number"||Q<2)throw Error("hashLen must be a number");if(typeof J!=="number"||J<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let G=uz(Q),Y=uz(Q),q=0,$=()=>{G.fill(1),Y.fill(0),q=0},W=(...N)=>X(Y,G,...N),j=(N=uz(0))=>{if(Y=W(wE([0]),N),G=W(),N.length===0)return;Y=W(wE([1]),N),G=W()},K=()=>{if(q++>=1000)throw Error("drbg: tried 1000 values");let N=0,U=[];while(N<J){G=W();let M=G.slice();U.push(M),N+=G.length}return B8(...U)};return(N,U)=>{$(),j(N);let M=void 0;while(!(M=U(K())))j();return $(),M}}function QJ(Q,J,X={}){let G=(Y,q,$)=>{let W=yT[q];if(typeof W!=="function")throw Error("invalid validator function");let j=Q[Y];if($&&j===void 0)return;if(!W(j,Q))throw Error("param "+String(Y)+" is invalid. Expected "+q+", got "+j)};for(let[Y,q]of Object.entries(J))G(Y,q,!1);for(let[Y,q]of Object.entries(X))G(Y,q,!0);return Q}function dz(Q){let J=new WeakMap;return(X,...G)=>{let Y=J.get(X);if(Y!==void 0)return Y;let q=Q(X,...G);return J.set(X,q),q}}var pz,cz,AE,mT,nQ,lz=(Q)=>typeof Q==="bigint"&&pz<=Q,HX=(Q)=>(cz<<BigInt(Q))-cz,uz=(Q)=>new Uint8Array(Q),wE=(Q)=>Uint8Array.from(Q),yT;var HY=v8(()=>{/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */pz=BigInt(0),cz=BigInt(1);AE=typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function",mT=Array.from({length:256},(Q,J)=>J.toString(16).padStart(2,"0"));nQ={_0:48,_9:57,A:65,F:70,a:97,f:102};yT={bigint:(Q)=>typeof Q==="bigint",function:(Q)=>typeof Q==="function",boolean:(Q)=>typeof Q==="boolean",string:(Q)=>typeof Q==="string",stringOrUint8Array:(Q)=>typeof Q==="string"||OY(Q),isSafeInteger:(Q)=>Number.isSafeInteger(Q),array:(Q)=>Array.isArray(Q),field:(Q,J)=>J.Fp.isValid(Q),hash:(Q)=>typeof Q==="function"&&Number.isSafeInteger(Q.outputLen)}});function p0(Q,J){let X=Q%J;return X>=R8?X:J+X}function g8(Q,J,X){let G=Q;while(J-- >R8)G*=G,G%=X;return G}function r9(Q,J){if(Q===R8)throw Error("invert: expected non-zero number");if(J<=R8)throw Error("invert: expected positive modulus, got "+J);let X=p0(Q,J),G=J,Y=R8,q=W8,$=W8,W=R8;while(X!==R8){let K=G/X,z=G%X,N=Y-$*K,U=q-W*K;G=X,X=z,Y=$,q=W,$=N,W=U}if(G!==W8)throw Error("invert: does not exist");return p0(Y,J)}function kE(Q,J){let X=(Q.ORDER+W8)/_E,G=Q.pow(J,X);if(!Q.eql(Q.sqr(G),J))throw Error("Cannot find square root");return G}function uT(Q,J){let X=(Q.ORDER-FE)/PE,G=Q.mul(J,VX),Y=Q.pow(G,X),q=Q.mul(J,Y),$=Q.mul(Q.mul(q,VX),Y),W=Q.mul(q,Q.sub($,Q.ONE));if(!Q.eql(Q.sqr(W),J))throw Error("Cannot find square root");return W}function cT(Q){if(Q<BigInt(3))throw Error("sqrt is not defined for small field");let J=Q-W8,X=0;while(J%VX===R8)J/=VX,X++;let G=VX,Y=qq(Q);while(vE(Y,G)===1)if(G++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return kE;let q=Y.pow(G,J),$=(J+W8)/VX;return function(j,K){if(j.is0(K))return K;if(vE(j,K)!==1)throw Error("Cannot find square root");let z=X,N=j.mul(j.ONE,q),U=j.pow(K,J),M=j.pow(K,$);while(!j.eql(U,j.ONE)){if(j.is0(U))return j.ZERO;let D=1,O=j.sqr(U);while(!j.eql(O,j.ONE))if(D++,O=j.sqr(O),D===z)throw Error("Cannot find square root");let w=W8<<BigInt(z-D-1),C=j.pow(N,w);z=D,N=j.sqr(C),U=j.mul(U,N),M=j.mul(M,C)}return M}}function pT(Q){if(Q%_E===lT)return kE;if(Q%PE===FE)return uT;return cT(Q)}function s9(Q){let J={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},X=bT.reduce((G,Y)=>{return G[Y]="function",G},J);return QJ(Q,X)}function oT(Q,J,X){if(X<R8)throw Error("invalid exponent, negatives unsupported");if(X===R8)return Q.ONE;if(X===W8)return J;let G=Q.ONE,Y=J;while(X>R8){if(X&W8)G=Q.mul(G,Y);Y=Q.sqr(Y),X>>=W8}return G}function VY(Q,J,X=!1){let G=Array(J.length).fill(X?Q.ZERO:void 0),Y=J.reduce(($,W,j)=>{if(Q.is0(W))return $;return G[j]=$,Q.mul($,W)},Q.ONE),q=Q.inv(Y);return J.reduceRight(($,W,j)=>{if(Q.is0(W))return $;return G[j]=Q.mul($,G[j]),Q.mul($,W)},q),G}function vE(Q,J){let X=(Q.ORDER-W8)/VX,G=Q.pow(J,X),Y=Q.eql(G,Q.ONE),q=Q.eql(G,Q.ZERO),$=Q.eql(G,Q.neg(Q.ONE));if(!Y&&!q&&!$)throw Error("invalid Legendre symbol result");return Y?1:q?0:-1}function rz(Q,J){if(J!==void 0)MX(J);let X=J!==void 0?J:Q.toString(2).length,G=Math.ceil(X/8);return{nBitLength:X,nByteLength:G}}function qq(Q,J,X=!1,G={}){if(Q<=R8)throw Error("invalid field: expected ORDER > 0, got "+Q);let{nBitLength:Y,nByteLength:q}=rz(Q,J);if(q>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let $,W=Object.freeze({ORDER:Q,isLE:X,BITS:Y,BYTES:q,MASK:HX(Y),ZERO:R8,ONE:W8,create:(j)=>p0(j,Q),isValid:(j)=>{if(typeof j!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof j);return R8<=j&&j<Q},is0:(j)=>j===R8,isOdd:(j)=>(j&W8)===W8,neg:(j)=>p0(-j,Q),eql:(j,K)=>j===K,sqr:(j)=>p0(j*j,Q),add:(j,K)=>p0(j+K,Q),sub:(j,K)=>p0(j-K,Q),mul:(j,K)=>p0(j*K,Q),pow:(j,K)=>oT(W,j,K),div:(j,K)=>p0(j*r9(K,Q),Q),sqrN:(j)=>j*j,addN:(j,K)=>j+K,subN:(j,K)=>j-K,mulN:(j,K)=>j*K,inv:(j)=>r9(j,Q),sqrt:G.sqrt||((j)=>{if(!$)$=pT(Q);return $(W,j)}),toBytes:(j)=>X?oz(j,q):EQ(j,q),fromBytes:(j)=>{if(j.length!==q)throw Error("Field.fromBytes: expected "+q+" bytes, got "+j.length);return X?bz(j):A8(j)},invertBatch:(j)=>VY(W,j),cmov:(j,K,z)=>z?K:j});return Object.freeze(W)}function ZE(Q){if(typeof Q!=="bigint")throw Error("field order must be bigint");let J=Q.toString(2).length;return Math.ceil(J/8)}function sz(Q){let J=ZE(Q);return J+Math.ceil(J/2)}function TE(Q,J,X=!1){let G=Q.length,Y=ZE(J),q=sz(J);if(G<16||G<q||G>1024)throw Error("expected "+q+"-1024 bytes of input, got "+G);let $=X?bz(Q):A8(Q),W=p0($,J-W8)+W8;return X?oz(W,Y):EQ(W,Y)}var R8,W8,VX,lT,_E,FE,PE,bT;var $q=v8(()=>{EJ();HY();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */R8=BigInt(0),W8=BigInt(1),VX=BigInt(2),lT=BigInt(3),_E=BigInt(4),FE=BigInt(5),PE=BigInt(8);bT=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"]});function iz(Q,J){let X=J.negate();return Q?X:J}function fE(Q,J){if(!Number.isSafeInteger(Q)||Q<=0||Q>J)throw Error("invalid window size, expected [1.."+J+"], got W="+Q)}function tz(Q,J){fE(Q,J);let X=Math.ceil(J/Q)+1,G=2**(Q-1),Y=2**Q,q=HX(Q),$=BigInt(Q);return{windows:X,windowSize:G,mask:q,maxNumber:Y,shiftBy:$}}function gE(Q,J,X){let{windowSize:G,mask:Y,maxNumber:q,shiftBy:$}=X,W=Number(Q&Y),j=Q>>$;if(W>G)W-=q,j+=ez;let K=J*G,z=K+Math.abs(W)-1,N=W===0,U=W<0,M=J%2!==0;return{nextN:j,offset:z,isZero:N,isNeg:U,isNegF:M,offsetF:K}}function dT(Q,J){if(!Array.isArray(Q))throw Error("array expected");Q.forEach((X,G)=>{if(!(X instanceof J))throw Error("invalid point at index "+G)})}function rT(Q,J){if(!Array.isArray(Q))throw Error("array of scalars expected");Q.forEach((X,G)=>{if(!J.isValid(X))throw Error("invalid scalar at index "+G)})}function az(Q){return hE.get(Q)||1}function mE(Q,J){return{constTimeNegate:iz,hasPrecomputes(X){return az(X)!==1},unsafeLadder(X,G,Y=Q.ZERO){let q=X;while(G>xE){if(G&ez)Y=Y.add(q);q=q.double(),G>>=ez}return Y},precomputeWindow(X,G){let{windows:Y,windowSize:q}=tz(G,J),$=[],W=X,j=W;for(let K=0;K<Y;K++){j=W,$.push(j);for(let z=1;z<q;z++)j=j.add(W),$.push(j);W=j.double()}return $},wNAF(X,G,Y){let{ZERO:q,BASE:$}=Q,W=tz(X,J);for(let j=0;j<W.windows;j++){let{nextN:K,offset:z,isZero:N,isNeg:U,isNegF:M,offsetF:D}=gE(Y,j,W);if(Y=K,N)$=$.add(iz(M,G[D]));else q=q.add(iz(U,G[z]))}return{p:q,f:$}},wNAFUnsafe(X,G,Y,q=Q.ZERO){let $=tz(X,J);for(let W=0;W<$.windows;W++){if(Y===xE)break;let{nextN:j,offset:K,isZero:z,isNeg:N}=gE(Y,W,$);if(Y=j,z)continue;else{let U=G[K];q=q.add(N?U.negate():U)}}return q},getPrecomputes(X,G,Y){let q=nz.get(G);if(!q){if(q=this.precomputeWindow(G,X),X!==1)nz.set(G,Y(q))}return q},wNAFCached(X,G,Y){let q=az(X);return this.wNAF(q,this.getPrecomputes(q,X,Y),G)},wNAFCachedUnsafe(X,G,Y,q){let $=az(X);if($===1)return this.unsafeLadder(X,G,q);return this.wNAFUnsafe($,this.getPrecomputes($,X,Y),G,q)},setWindowSize(X,G){fE(G,J),hE.set(X,G),nz.delete(X)}}}function yE(Q,J,X,G){dT(X,Q),rT(G,J);let Y=X.length,q=G.length;if(Y!==q)throw Error("arrays of points and scalars must have equal length");let $=Q.ZERO,W=IE(BigInt(Y)),j=1;if(W>12)j=W-3;else if(W>4)j=W-2;else if(W>0)j=2;let K=HX(j),z=Array(Number(K)+1).fill($),N=Math.floor((J.BITS-1)/j)*j,U=$;for(let M=N;M>=0;M-=j){z.fill($);for(let O=0;O<q;O++){let w=G[O],C=Number(w>>BigInt(M)&K);z[C]=z[C].add(X[O])}let D=$;for(let O=z.length-1,w=$;O>0;O--)w=w.add(z[O]),D=D.add(w);if(U=U.add(D),M!==0)for(let O=0;O<j;O++)U=U.double()}return U}function QN(Q){return s9(Q.Fp),QJ(Q,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...rz(Q.n,Q.nBitLength),...Q,...{p:Q.Fp.ORDER}})}var xE,ez,nz,hE;var lE=v8(()=>{$q();HY();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */xE=BigInt(0),ez=BigInt(1);nz=new WeakMap,hE=new WeakMap});function uE(Q){if(Q.lowS!==void 0)BY("lowS",Q.lowS);if(Q.prehash!==void 0)BY("prehash",Q.prehash)}function sT(Q){let J=QN(Q);QJ(J,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});let{endo:X,Fp:G,a:Y}=J;if(X){if(!G.eql(Y,G.ZERO))throw Error("invalid endo: CURVE.a must be 0");if(typeof X!=="object"||typeof X.beta!=="bigint"||typeof X.splitScalar!=="function")throw Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...J})}function JN(Q,J){return RY(EQ(Q,J))}function iT(Q){let J=sT(Q),{Fp:X}=J,G=qq(J.n,J.nBitLength),Y=J.toBytes||((H,E,A)=>{let v=E.toAffine();return B8(Uint8Array.from([4]),X.toBytes(v.x),X.toBytes(v.y))}),q=J.fromBytes||((H)=>{let E=H.subarray(1),A=X.fromBytes(E.subarray(0,X.BYTES)),v=X.fromBytes(E.subarray(X.BYTES,2*X.BYTES));return{x:A,y:v}});function $(H){let{a:E,b:A}=J,v=X.sqr(H),P=X.mul(v,H);return X.add(X.add(P,X.mul(H,E)),A)}function W(H,E){let A=X.sqr(E),v=$(H);return X.eql(A,v)}if(!W(J.Gx,J.Gy))throw Error("bad curve params: generator point");let j=X.mul(X.pow(J.a,Wq),XN),K=X.mul(X.sqr(J.b),BigInt(27));if(X.is0(X.add(j,K)))throw Error("bad curve params: a or b");function z(H){return RX(H,A0,J.n)}function N(H){let{allowedPrivateKeyLengths:E,nByteLength:A,wrapPrivateKey:v,n:P}=J;if(E&&typeof H!=="bigint"){if(OY(H))H=RY(H);if(typeof H!=="string"||!E.includes(H.length))throw Error("invalid private key");H=H.padStart(A*2,"0")}let c;try{c=typeof H==="bigint"?H:A8(d0("private key",H,A))}catch(h){throw Error("invalid private key, expected hex or "+A+" bytes, got "+typeof H)}if(v)c=p0(c,P);return eQ("private key",c,A0,P),c}function U(H){if(!(H instanceof O))throw Error("ProjectivePoint expected")}let M=dz((H,E)=>{let{px:A,py:v,pz:P}=H;if(X.eql(P,X.ONE))return{x:A,y:v};let c=H.is0();if(E==null)E=c?X.ONE:X.inv(P);let h=X.mul(A,E),g=X.mul(v,E),s=X.mul(P,E);if(c)return{x:X.ZERO,y:X.ZERO};if(!X.eql(s,X.ONE))throw Error("invZ was invalid");return{x:h,y:g}}),D=dz((H)=>{if(H.is0()){if(J.allowInfinityPoint&&!X.is0(H.py))return;throw Error("bad point: ZERO")}let{x:E,y:A}=H.toAffine();if(!X.isValid(E)||!X.isValid(A))throw Error("bad point: x or y not FE");if(!W(E,A))throw Error("bad point: equation left != right");if(!H.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});class O{constructor(H,E,A){if(H==null||!X.isValid(H))throw Error("x required");if(E==null||!X.isValid(E)||X.is0(E))throw Error("y required");if(A==null||!X.isValid(A))throw Error("z required");this.px=H,this.py=E,this.pz=A,Object.freeze(this)}static fromAffine(H){let{x:E,y:A}=H||{};if(!H||!X.isValid(E)||!X.isValid(A))throw Error("invalid affine point");if(H instanceof O)throw Error("projective point not allowed");let v=(P)=>X.eql(P,X.ZERO);if(v(E)&&v(A))return O.ZERO;return new O(E,A,X.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(H){let E=VY(X,H.map((A)=>A.pz));return H.map((A,v)=>A.toAffine(E[v])).map(O.fromAffine)}static fromHex(H){let E=O.fromAffine(q(d0("pointHex",H)));return E.assertValidity(),E}static fromPrivateKey(H){return O.BASE.multiply(N(H))}static msm(H,E){return yE(O,G,H,E)}_setWindowSize(H){I.setWindowSize(this,H)}assertValidity(){D(this)}hasEvenY(){let{y:H}=this.toAffine();if(X.isOdd)return!X.isOdd(H);throw Error("Field doesn't support isOdd")}equals(H){U(H);let{px:E,py:A,pz:v}=this,{px:P,py:c,pz:h}=H,g=X.eql(X.mul(E,h),X.mul(P,v)),s=X.eql(X.mul(A,h),X.mul(c,v));return g&&s}negate(){return new O(this.px,X.neg(this.py),this.pz)}double(){let{a:H,b:E}=J,A=X.mul(E,Wq),{px:v,py:P,pz:c}=this,h=X.ZERO,g=X.ZERO,s=X.ZERO,i=X.mul(v,v),H0=X.mul(P,P),a=X.mul(c,c),R=X.mul(v,P);return R=X.add(R,R),s=X.mul(v,c),s=X.add(s,s),h=X.mul(H,s),g=X.mul(A,a),g=X.add(h,g),h=X.sub(H0,g),g=X.add(H0,g),g=X.mul(h,g),h=X.mul(R,h),s=X.mul(A,s),a=X.mul(H,a),R=X.sub(i,a),R=X.mul(H,R),R=X.add(R,s),s=X.add(i,i),i=X.add(s,i),i=X.add(i,a),i=X.mul(i,R),g=X.add(g,i),a=X.mul(P,c),a=X.add(a,a),i=X.mul(a,R),h=X.sub(h,i),s=X.mul(a,H0),s=X.add(s,s),s=X.add(s,s),new O(h,g,s)}add(H){U(H);let{px:E,py:A,pz:v}=this,{px:P,py:c,pz:h}=H,g=X.ZERO,s=X.ZERO,i=X.ZERO,H0=J.a,a=X.mul(J.b,Wq),R=X.mul(E,P),S=X.mul(A,c),f=X.mul(v,h),n=X.add(E,A),u=X.add(P,c);n=X.mul(n,u),u=X.add(R,S),n=X.sub(n,u),u=X.add(E,v);let b=X.add(P,h);return u=X.mul(u,b),b=X.add(R,f),u=X.sub(u,b),b=X.add(A,v),g=X.add(c,h),b=X.mul(b,g),g=X.add(S,f),b=X.sub(b,g),i=X.mul(H0,u),g=X.mul(a,f),i=X.add(g,i),g=X.sub(S,i),i=X.add(S,i),s=X.mul(g,i),S=X.add(R,R),S=X.add(S,R),f=X.mul(H0,f),u=X.mul(a,u),S=X.add(S,f),f=X.sub(R,f),f=X.mul(H0,f),u=X.add(u,f),R=X.mul(S,u),s=X.add(s,R),R=X.mul(b,u),g=X.mul(n,g),g=X.sub(g,R),R=X.mul(n,S),i=X.mul(b,i),i=X.add(i,R),new O(g,s,i)}subtract(H){return this.add(H.negate())}is0(){return this.equals(O.ZERO)}wNAF(H){return I.wNAFCached(this,H,O.normalizeZ)}multiplyUnsafe(H){let{endo:E,n:A}=J;eQ("scalar",H,YQ,A);let v=O.ZERO;if(H===YQ)return v;if(this.is0()||H===A0)return this;if(!E||I.hasPrecomputes(this))return I.wNAFCachedUnsafe(this,H,O.normalizeZ);let{k1neg:P,k1:c,k2neg:h,k2:g}=E.splitScalar(H),s=v,i=v,H0=this;while(c>YQ||g>YQ){if(c&A0)s=s.add(H0);if(g&A0)i=i.add(H0);H0=H0.double(),c>>=A0,g>>=A0}if(P)s=s.negate();if(h)i=i.negate();return i=new O(X.mul(i.px,E.beta),i.py,i.pz),s.add(i)}multiply(H){let{endo:E,n:A}=J;eQ("scalar",H,A0,A);let v,P;if(E){let{k1neg:c,k1:h,k2neg:g,k2:s}=E.splitScalar(H),{p:i,f:H0}=this.wNAF(h),{p:a,f:R}=this.wNAF(s);i=I.constTimeNegate(c,i),a=I.constTimeNegate(g,a),a=new O(X.mul(a.px,E.beta),a.py,a.pz),v=i.add(a),P=H0.add(R)}else{let{p:c,f:h}=this.wNAF(H);v=c,P=h}return O.normalizeZ([v,P])[0]}multiplyAndAddUnsafe(H,E,A){let v=O.BASE,P=(h,g)=>g===YQ||g===A0||!h.equals(v)?h.multiplyUnsafe(g):h.multiply(g),c=P(this,E).add(P(H,A));return c.is0()?void 0:c}toAffine(H){return M(this,H)}isTorsionFree(){let{h:H,isTorsionFree:E}=J;if(H===A0)return!0;if(E)return E(O,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:H,clearCofactor:E}=J;if(H===A0)return this;if(E)return E(O,this);return this.multiplyUnsafe(J.h)}toRawBytes(H=!0){return BY("isCompressed",H),this.assertValidity(),Y(O,this,H)}toHex(H=!0){return BY("isCompressed",H),RY(this.toRawBytes(H))}}O.BASE=new O(J.Gx,J.Gy,X.ONE),O.ZERO=new O(X.ZERO,X.ONE,X.ZERO);let{endo:w,nBitLength:C}=J,I=mE(O,w?Math.ceil(C/2):C);return{CURVE:J,ProjectivePoint:O,normPrivateKeyToScalar:N,weierstrassEquation:$,isWithinCurveOrder:z}}function tT(Q){let J=QN(Q);return QJ(J,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...J})}function pE(Q){let J=tT(Q),{Fp:X,n:G,nByteLength:Y,nBitLength:q}=J,$=X.BYTES+1,W=2*X.BYTES+1;function j(R){return p0(R,G)}function K(R){return r9(R,G)}let{ProjectivePoint:z,normPrivateKeyToScalar:N,weierstrassEquation:U,isWithinCurveOrder:M}=iT({...J,toBytes(R,S,f){let n=S.toAffine(),u=X.toBytes(n.x),b=B8;if(BY("isCompressed",f),f)return b(Uint8Array.from([S.hasEvenY()?2:3]),u);else return b(Uint8Array.from([4]),u,X.toBytes(n.y))},fromBytes(R){let S=R.length,f=R[0],n=R.subarray(1);if(S===$&&(f===2||f===3)){let u=A8(n);if(!RX(u,A0,X.ORDER))throw Error("Point is not on curve");let b=U(u),Z0;try{Z0=X.sqrt(b)}catch(n0){let l0=n0 instanceof Error?": "+n0.message:"";throw Error("Point is not on curve"+l0)}let E0=(Z0&A0)===A0;if((f&1)===1!==E0)Z0=X.neg(Z0);return{x:u,y:Z0}}else if(S===W&&f===4){let u=X.fromBytes(n.subarray(0,X.BYTES)),b=X.fromBytes(n.subarray(X.BYTES,2*X.BYTES));return{x:u,y:b}}else{let u=$,b=W;throw Error("invalid Point, expected length of "+u+", or uncompressed "+b+", got "+S)}}});function D(R){let S=G>>A0;return R>S}function O(R){return D(R)?j(-R):R}let w=(R,S,f)=>A8(R.slice(S,f));class C{constructor(R,S,f){if(eQ("r",R,A0,G),eQ("s",S,A0,G),this.r=R,this.s=S,f!=null)this.recovery=f;Object.freeze(this)}static fromCompact(R){let S=Y;return R=d0("compactSignature",R,S*2),new C(w(R,0,S),w(R,S,2*S))}static fromDER(R){let{r:S,s:f}=JJ.toSig(d0("DER",R));return new C(S,f)}assertValidity(){}addRecoveryBit(R){return new C(this.r,this.s,R)}recoverPublicKey(R){let{r:S,s:f,recovery:n}=this,u=P(d0("msgHash",R));if(n==null||![0,1,2,3].includes(n))throw Error("recovery id invalid");let b=n===2||n===3?S+J.n:S;if(b>=X.ORDER)throw Error("recovery id 2 or 3 invalid");let Z0=(n&1)===0?"02":"03",E0=z.fromHex(Z0+JN(b,X.BYTES)),r0=K(b),n0=j(-u*r0),l0=j(f*r0),Y8=z.BASE.multiplyAndAddUnsafe(E0,n0,l0);if(!Y8)throw Error("point at infinify");return Y8.assertValidity(),Y8}hasHighS(){return D(this.s)}normalizeS(){return this.hasHighS()?new C(this.r,j(-this.s),this.recovery):this}toDERRawBytes(){return Gq(this.toDERHex())}toDERHex(){return JJ.hexFromSig(this)}toCompactRawBytes(){return Gq(this.toCompactHex())}toCompactHex(){let R=Y;return JN(this.r,R)+JN(this.s,R)}}let I={isValidPrivateKey(R){try{return N(R),!0}catch(S){return!1}},normPrivateKeyToScalar:N,randomPrivateKey:()=>{let R=sz(J.n);return TE(J.randomBytes(R),J.n)},precompute(R=8,S=z.BASE){return S._setWindowSize(R),S.multiply(BigInt(3)),S}};function H(R,S=!0){return z.fromPrivateKey(R).toRawBytes(S)}function E(R){if(typeof R==="bigint")return!1;if(R instanceof z)return!0;let f=d0("key",R).length,n=X.BYTES,u=n+1,b=2*n+1;if(J.allowedPrivateKeyLengths||Y===u)return;else return f===u||f===b}function A(R,S,f=!0){if(E(R)===!0)throw Error("first arg must be private key");if(E(S)===!1)throw Error("second arg must be public key");return z.fromHex(S).multiply(N(R)).toRawBytes(f)}let v=J.bits2int||function(R){if(R.length>8192)throw Error("input is too large");let S=A8(R),f=R.length*8-q;return f>0?S>>BigInt(f):S},P=J.bits2int_modN||function(R){return j(v(R))},c=HX(q);function h(R){return eQ("num < 2^"+q,R,YQ,c),EQ(R,Y)}function g(R,S,f=s){if(["recovered","canonical"].some((K8)=>(K8 in f)))throw Error("sign() legacy options not supported");let{hash:n,randomBytes:u}=J,{lowS:b,prehash:Z0,extraEntropy:E0}=f;if(b==null)b=!0;if(R=d0("msgHash",R),uE(f),Z0)R=d0("prehashed msgHash",n(R));let r0=P(R),n0=N(S),l0=[h(n0),h(r0)];if(E0!=null&&E0!==!1){let K8=E0===!0?u(X.BYTES):E0;l0.push(d0("extraEntropy",K8))}let Y8=B8(...l0),SQ=r0;function TJ(K8){let S8=v(K8);if(!M(S8))return;let f8=K(S8),d8=z.BASE.multiply(S8).toAffine(),h8=j(d8.x);if(h8===YQ)return;let KQ=j(f8*j(SQ+h8*n0));if(KQ===YQ)return;let vQ=(d8.x===h8?0:2)|Number(d8.y&A0),fY=KQ;if(b&&D(KQ))fY=O(KQ),vQ^=1;return new C(h8,fY,vQ)}return{seed:Y8,k2sig:TJ}}let s={lowS:J.lowS,prehash:!1},i={lowS:J.lowS,prehash:!1};function H0(R,S,f=s){let{seed:n,k2sig:u}=g(R,S,f),b=J;return SE(b.hash.outputLen,b.nByteLength,b.hmac)(n,u)}z.BASE._setWindowSize(8);function a(R,S,f,n=i){let u=R;S=d0("msgHash",S),f=d0("publicKey",f);let{lowS:b,prehash:Z0,format:E0}=n;if(uE(n),"strict"in n)throw Error("options.strict was renamed to lowS");if(E0!==void 0&&E0!=="compact"&&E0!=="der")throw Error("format must be compact or der");let r0=typeof u==="string"||OY(u),n0=!r0&&!E0&&typeof u==="object"&&u!==null&&typeof u.r==="bigint"&&typeof u.s==="bigint";if(!r0&&!n0)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");let l0=void 0,Y8;try{if(n0)l0=new C(u.r,u.s);if(r0){try{if(E0!=="compact")l0=C.fromDER(u)}catch(vQ){if(!(vQ instanceof JJ.Err))throw vQ}if(!l0&&E0!=="der")l0=C.fromCompact(u)}Y8=z.fromHex(f)}catch(vQ){return!1}if(!l0)return!1;if(b&&l0.hasHighS())return!1;if(Z0)S=J.hash(S);let{r:SQ,s:TJ}=l0,K8=P(S),S8=K(TJ),f8=j(K8*S8),d8=j(SQ*S8),h8=z.BASE.multiplyAndAddUnsafe(Y8,f8,d8)?.toAffine();if(!h8)return!1;return j(h8.x)===SQ}return{CURVE:J,getPublicKey:H,getSharedSecret:A,sign:H0,verify:a,ProjectivePoint:z,Signature:C,utils:I}}function nT(Q,J){let X=Q.ORDER,G=YQ;for(let D=X-A0;D%IJ===YQ;D/=IJ)G+=A0;let Y=G,q=IJ<<Y-A0-A0,$=q*IJ,W=(X-A0)/$,j=(W-A0)/IJ,K=$-A0,z=q,N=Q.pow(J,W),U=Q.pow(J,(W+A0)/IJ),M=(D,O)=>{let w=N,C=Q.pow(O,K),I=Q.sqr(C);I=Q.mul(I,O);let H=Q.mul(D,I);H=Q.pow(H,j),H=Q.mul(H,C),C=Q.mul(H,O),I=Q.mul(H,D);let E=Q.mul(I,C);H=Q.pow(E,z);let A=Q.eql(H,Q.ONE);C=Q.mul(I,U),H=Q.mul(E,w),I=Q.cmov(C,I,A),E=Q.cmov(H,E,A);for(let v=Y;v>A0;v--){let P=v-IJ;P=IJ<<P-A0;let c=Q.pow(E,P),h=Q.eql(c,Q.ONE);C=Q.mul(I,w),w=Q.mul(w,w),c=Q.mul(E,w),I=Q.cmov(C,I,h),E=Q.cmov(c,E,h)}return{isValid:A,value:I}};if(Q.ORDER%XN===Wq){let D=(Q.ORDER-Wq)/XN,O=Q.sqrt(Q.neg(J));M=(w,C)=>{let I=Q.sqr(C),H=Q.mul(w,C);I=Q.mul(I,H);let E=Q.pow(I,D);E=Q.mul(E,H);let A=Q.mul(E,O),v=Q.mul(Q.sqr(E),C),P=Q.eql(v,w),c=Q.cmov(A,E,P);return{isValid:P,value:c}}}return M}function bE(Q,J){if(s9(Q),!Q.isValid(J.A)||!Q.isValid(J.B)||!Q.isValid(J.Z))throw Error("mapToCurveSimpleSWU: invalid opts");let X=nT(Q,J.Z);if(!Q.isOdd)throw Error("Fp.isOdd is not implemented!");return(G)=>{let Y,q,$,W,j,K,z,N;Y=Q.sqr(G),Y=Q.mul(Y,J.Z),q=Q.sqr(Y),q=Q.add(q,Y),$=Q.add(q,Q.ONE),$=Q.mul($,J.B),W=Q.cmov(J.Z,Q.neg(q),!Q.eql(q,Q.ZERO)),W=Q.mul(W,J.A),q=Q.sqr($),K=Q.sqr(W),j=Q.mul(K,J.A),q=Q.add(q,j),q=Q.mul(q,$),K=Q.mul(K,W),j=Q.mul(K,J.B),q=Q.add(q,j),z=Q.mul(Y,$);let{isValid:U,value:M}=X(q,K);N=Q.mul(Y,G),N=Q.mul(N,M),z=Q.cmov(z,$,U),N=Q.cmov(N,M,U);let D=Q.isOdd(G)===Q.isOdd(N);N=Q.cmov(Q.neg(N),N,D);let O=VY(Q,[W],!0)[0];return z=Q.mul(z,O),{x:z,y:N}}}var cE,JJ,YQ,A0,IJ,Wq,XN;var YN=v8(()=>{lE();$q();HY();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */cE=class cE extends Error{constructor(Q=""){super(Q)}};JJ={Err:cE,_tlv:{encode:(Q,J)=>{let{Err:X}=JJ;if(Q<0||Q>256)throw new X("tlv.encode: wrong tag");if(J.length&1)throw new X("tlv.encode: unpadded data");let G=J.length/2,Y=Yq(G);if(Y.length/2&128)throw new X("tlv.encode: long form length too big");let q=G>127?Yq(Y.length/2|128):"";return Yq(Q)+q+Y+J},decode(Q,J){let{Err:X}=JJ,G=0;if(Q<0||Q>256)throw new X("tlv.encode: wrong tag");if(J.length<2||J[G++]!==Q)throw new X("tlv.decode: wrong tlv");let Y=J[G++],q=!!(Y&128),$=0;if(!q)$=Y;else{let j=Y&127;if(!j)throw new X("tlv.decode(long): indefinite length not supported");if(j>4)throw new X("tlv.decode(long): byte length is too big");let K=J.subarray(G,G+j);if(K.length!==j)throw new X("tlv.decode: length bytes not complete");if(K[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let z of K)$=$<<8|z;if(G+=j,$<128)throw new X("tlv.decode(long): not minimal encoding")}let W=J.subarray(G,G+$);if(W.length!==$)throw new X("tlv.decode: wrong value length");return{v:W,l:J.subarray(G+$)}}},_int:{encode(Q){let{Err:J}=JJ;if(Q<YQ)throw new J("integer: negative integers are not allowed");let X=Yq(Q);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new J("unexpected DER parsing assertion: unpadded hex");return X},decode(Q){let{Err:J}=JJ;if(Q[0]&128)throw new J("invalid signature integer: negative");if(Q[0]===0&&!(Q[1]&128))throw new J("invalid signature integer: unnecessary leading zero");return A8(Q)}},toSig(Q){let{Err:J,_int:X,_tlv:G}=JJ,Y=d0("signature",Q),{v:q,l:$}=G.decode(48,Y);if($.length)throw new J("invalid signature: left bytes after parsing");let{v:W,l:j}=G.decode(2,q),{v:K,l:z}=G.decode(2,j);if(z.length)throw new J("invalid signature: left bytes after parsing");return{r:X.decode(W),s:X.decode(K)}},hexFromSig(Q){let{_tlv:J,_int:X}=JJ,G=J.encode(2,X.encode(Q.r)),Y=J.encode(2,X.encode(Q.s)),q=G+Y;return J.encode(48,q)}};YQ=BigInt(0),A0=BigInt(1),IJ=BigInt(2),Wq=BigInt(3),XN=BigInt(4)});function aT(Q){return{hash:Q,hmac:(J,...X)=>yz(Q,J,t7(...X)),randomBytes:u9}}function oE(Q,J){let X=(G)=>pE({...Q,...aT(G)});return{...X(J),create:X}}var dE=v8(()=>{LE();EJ();YN();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */});function SJ(Q,J){if(jq(Q),jq(J),Q<0||Q>=1<<8*J)throw Error("invalid I2OSP input: "+Q);let X=Array.from({length:J}).fill(0);for(let G=J-1;G>=0;G--)X[G]=Q&255,Q>>>=8;return new Uint8Array(X)}function Qx(Q,J){let X=new Uint8Array(Q.length);for(let G=0;G<Q.length;G++)X[G]=Q[G]^J[G];return X}function jq(Q){if(!Number.isSafeInteger(Q))throw Error("number expected")}function Jx(Q,J,X,G){if(aQ(Q),aQ(J),jq(X),J.length>255)J=G(B8(d9("H2C-OVERSIZE-DST-"),J));let{outputLen:Y,blockLen:q}=G,$=Math.ceil(X/Y);if(X>65535||$>255)throw Error("expand_message_xmd: invalid lenInBytes");let W=B8(J,SJ(J.length,1)),j=SJ(0,q),K=SJ(X,2),z=Array($),N=G(B8(j,Q,K,SJ(0,1),W));z[0]=G(B8(N,SJ(1,1),W));for(let M=1;M<=$;M++){let D=[Qx(N,z[M-1]),SJ(M+1,1),W];z[M]=G(B8(...D))}return B8(...z).slice(0,X)}function Xx(Q,J,X,G,Y){if(aQ(Q),aQ(J),jq(X),J.length>255){let q=Math.ceil(2*G/8);J=Y.create({dkLen:q}).update(d9("H2C-OVERSIZE-DST-")).update(J).digest()}if(X>65535||J.length>255)throw Error("expand_message_xof: invalid lenInBytes");return Y.create({dkLen:X}).update(Q).update(SJ(X,2)).update(J).update(SJ(J.length,1)).digest()}function rE(Q,J,X){QJ(X,{DST:"stringOrUint8Array",p:"bigint",m:"isSafeInteger",k:"isSafeInteger",hash:"hash"});let{p:G,k:Y,m:q,hash:$,expand:W,DST:j}=X;aQ(Q),jq(J);let K=typeof j==="string"?d9(j):j,z=G.toString(2).length,N=Math.ceil((z+Y)/8),U=J*q*N,M;if(W==="xmd")M=Jx(Q,K,U,$);else if(W==="xof")M=Xx(Q,K,U,Y,$);else if(W==="_internal_pass")M=Q;else throw Error('expand must be "xmd" or "xof"');let D=Array(J);for(let O=0;O<J;O++){let w=Array(q);for(let C=0;C<q;C++){let I=N*(C+O*q),H=M.subarray(I,I+N);w[C]=p0(eT(H),G)}D[O]=w}return D}function sE(Q,J){let X=J.map((G)=>Array.from(G).reverse());return(G,Y)=>{let[q,$,W,j]=X.map((N)=>N.reduce((U,M)=>Q.add(Q.mul(U,G),M))),[K,z]=VY(Q,[$,j],!0);return G=Q.mul(q,K),Y=Q.mul(Y,Q.mul(W,z)),{x:G,y:Y}}}function iE(Q,J,X){if(typeof J!=="function")throw Error("mapToCurve() must be defined");function G(q){return Q.fromAffine(J(q))}function Y(q){let $=q.clearCofactor();if($.equals(Q.ZERO))return Q.ZERO;return $.assertValidity(),$}return{defaults:X,hashToCurve(q,$){let W=rE(q,2,{...X,DST:X.DST,...$}),j=G(W[0]),K=G(W[1]);return Y(j.add(K))},encodeToCurve(q,$){let W=rE(q,1,{...X,DST:X.encodeDST,...$});return Y(G(W[0]))},mapToCurve(q){if(!Array.isArray(q))throw Error("expected array of bigints");for(let $ of q)if(typeof $!=="bigint")throw Error("expected array of bigints");return Y(G(q))}}}var eT;var tE=v8(()=>{$q();HY();eT=A8});var Yw={};HN(Yw,{secp256k1_hasher:()=>zN,secp256k1:()=>Uq,schnorr:()=>$x,hashToCurve:()=>Kx,encodeToCurve:()=>zx});function eE(Q){let J=Nq,X=BigInt(3),G=BigInt(6),Y=BigInt(11),q=BigInt(22),$=BigInt(23),W=BigInt(44),j=BigInt(88),K=Q*Q*Q%J,z=K*K*Q%J,N=g8(z,X,J)*z%J,U=g8(N,X,J)*z%J,M=g8(U,t9,J)*K%J,D=g8(M,Y,J)*M%J,O=g8(D,q,J)*D%J,w=g8(O,W,J)*O%J,C=g8(w,j,J)*w%J,I=g8(C,W,J)*O%J,H=g8(I,X,J)*z%J,E=g8(H,$,J)*D%J,A=g8(E,G,J)*K%J,v=g8(A,t9,J);if(!vJ.eql(vJ.sqr(v),Q))throw Error("Cannot find square root");return v}function n9(Q,...J){let X=aE[Q];if(X===void 0){let G=Xq(Uint8Array.from(Q,(Y)=>Y.charCodeAt(0)));X=B8(G,G),aE[Q]=X}return Xq(B8(X,...J))}function $N(Q){let J=Uq.utils.normPrivateKeyToScalar(Q),X=KN.fromPrivateKey(J);return{scalar:X.hasEvenY()?J:zq(-J),bytes:jN(X)}}function Qw(Q){eQ("x",Q,Kq,Nq);let J=GN(Q*Q),X=GN(J*Q+BigInt(7)),G=eE(X);if(G%t9!==WN)G=GN(-G);let Y=new KN(Q,G,Kq);return Y.assertValidity(),Y}function Jw(...Q){return zq(LY(n9("BIP0340/challenge",...Q)))}function Gx(Q){return $N(Q).bytes}function qx(Q,J,X=u9(32)){let G=d0("message",Q),{bytes:Y,scalar:q}=$N(J),$=d0("auxRand",X,32),W=qN(q^LY(n9("BIP0340/aux",$))),j=n9("BIP0340/nonce",W,Y,G),K=zq(LY(j));if(K===WN)throw Error("sign failed: k is zero");let{bytes:z,scalar:N}=$N(K),U=Jw(z,Y,G),M=new Uint8Array(64);if(M.set(z,0),M.set(qN(zq(N+U*q)),32),!Xw(M,G,Y))throw Error("sign: Invalid signature produced");return M}function Xw(Q,J,X){let G=d0("signature",Q,64),Y=d0("message",J),q=d0("publicKey",X,32);try{let $=Qw(LY(q)),W=LY(G.subarray(0,32));if(!RX(W,Kq,Nq))return!1;let j=LY(G.subarray(32,64));if(!RX(j,Kq,i9))return!1;let K=Jw(qN(W),jN($),Y),z=Yx($,j,zq(-K));if(!z||!z.hasEvenY()||z.toAffine().x!==W)return!1;return!0}catch($){return!1}}var Nq,i9,WN,Kq,t9,nE=(Q,J)=>(Q+J/t9)/J,vJ,Uq,aE,jN=(Q)=>Q.toRawBytes(!0).slice(1),qN=(Q)=>EQ(Q,32),GN=(Q)=>p0(Q,Nq),zq=(Q)=>p0(Q,i9),KN,Yx=(Q,J,X)=>KN.BASE.multiplyAndAddUnsafe(Q,J,X),LY,$x,Wx,jx,zN,Kx,zx;var Gw=v8(()=>{VE();EJ();dE();tE();$q();HY();YN();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */Nq=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),i9=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),WN=BigInt(0),Kq=BigInt(1),t9=BigInt(2);vJ=qq(Nq,void 0,void 0,{sqrt:eE}),Uq=oE({a:WN,b:BigInt(7),Fp:vJ,n:i9,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(Q)=>{let J=i9,X=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),G=-Kq*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),Y=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),q=X,$=BigInt("0x100000000000000000000000000000000"),W=nE(q*Q,J),j=nE(-G*Q,J),K=p0(Q-W*X-j*Y,J),z=p0(-W*G-j*q,J),N=K>$,U=z>$;if(N)K=J-K;if(U)z=J-z;if(K>$||z>$)throw Error("splitScalar: Endomorphism failed, k="+Q);return{k1neg:N,k1:K,k2neg:U,k2:z}}}},Xq),aE={};KN=(()=>Uq.ProjectivePoint)();LY=A8;$x=(()=>({getPublicKey:Gx,sign:qx,verify:Xw,utils:{randomPrivateKey:Uq.utils.randomPrivateKey,lift_x:Qw,pointToBytes:jN,numberToBytesBE:EQ,bytesToNumberBE:A8,taggedHash:n9,mod:p0}}))(),Wx=(()=>sE(vJ,[["0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7","0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581","0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262","0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c"],["0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b","0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14","0x0000000000000000000000000000000000000000000000000000000000000001"],["0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c","0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3","0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931","0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84"],["0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b","0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573","0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f","0x0000000000000000000000000000000000000000000000000000000000000001"]].map((Q)=>Q.map((J)=>BigInt(J)))))(),jx=(()=>bE(vJ,{A:BigInt("0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533"),B:BigInt("1771"),Z:vJ.create(BigInt("-11"))}))(),zN=(()=>iE(Uq.ProjectivePoint,(Q)=>{let{x:J,y:X}=jx(vJ.create(Q[0]));return Wx(J,X)},{DST:"secp256k1_XMD:SHA-256_SSWU_RO_",encodeDST:"secp256k1_XMD:SHA-256_SSWU_NU_",p:vJ.ORDER,m:1,k:128,expand:"xmd",hash:Xq}))(),Kx=(()=>zN.hashToCurve)(),zx=(()=>zN.encodeToCurve)()});var Sw=Object.defineProperty,vw=(Q)=>Q;function _w(Q,J){this[Q]=vw.bind(null,J)}var QQ=(Q,J)=>{for(var X in J)Sw(Q,X,{get:J[X],enumerable:!0,configurable:!0,set:_w.bind(J,X)})},s0=function(Q,J,X,G){var Y=arguments.length,q=Y<3?J:G===null?G=Object.getOwnPropertyDescriptor(J,X):G,$;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")q=Reflect.decorate(Q,J,X,G);else for(var W=Q.length-1;W>=0;W--)if($=Q[W])q=(Y<3?$(q):Y>3?$(J,X,q):$(J,X))||q;return Y>3&&q&&Object.defineProperty(J,X,q),q},T=(Q,J)=>()=>(Q&&(J=Q(Q=0)),J);function MJ(Q,{includeName:J=!1}={}){if(Q.type!=="function"&&Q.type!=="event"&&Q.type!=="error")throw new dM(Q.type);return`${Q.name}(${R5(Q.inputs,{includeName:J})})`}function R5(Q,{includeName:J=!1}={}){if(!Q)return"";return Q.map((X)=>Fw(X,{includeName:J})).join(J?", ":",")}function Fw(Q,{includeName:J}){if(Q.type.startsWith("tuple"))return`(${R5(Q.components,{includeName:J})})${Q.type.slice(5)}`;return Q.type+(J&&Q.name?` ${Q.name}`:"")}var XY=T(()=>{Z8()});function YY(Q,{strict:J=!0}={}){if(!Q)return!1;if(typeof Q!=="string")return!1;return J?/^0x[0-9a-fA-F]*$/.test(Q):Q.startsWith("0x")}function q8(Q){if(YY(Q,{strict:!1}))return Math.ceil((Q.length-2)/2);return Q.length}var DG=()=>{},VN="2.45.0";function gM(Q,J){if(J?.(Q))return Q;if(Q&&typeof Q==="object"&&"cause"in Q&&Q.cause!==void 0)return gM(Q.cause,J);return J?null:Q}var wq,o,e0=T(()=>{wq={getDocsUrl:({docsBaseUrl:Q,docsPath:J="",docsSlug:X})=>J?`${Q??"https://viem.sh"}${J}${X?`#${X}`:""}`:void 0,version:`viem@${VN}`},o=class Q extends Error{constructor(J,X={}){let G=(()=>{if(X.cause instanceof Q)return X.cause.details;if(X.cause?.message)return X.cause.message;return X.details})(),Y=(()=>{if(X.cause instanceof Q)return X.cause.docsPath||X.docsPath;return X.docsPath})(),q=wq.getDocsUrl?.({...X,docsPath:Y}),$=[J||"An error occurred.","",...X.metaMessages?[...X.metaMessages,""]:[],...q?[`Docs: ${q}`]:[],...G?[`Details: ${G}`]:[],...wq.version?[`Version: ${wq.version}`]:[]].join(`
|
|
2
|
+
`);super($,X.cause?{cause:X.cause}:void 0);Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=G,this.docsPath=Y,this.metaMessages=X.metaMessages,this.name=X.name??this.name,this.shortMessage=J,this.version=VN}walk(J){return gM(this,J)}}}),fM,_W,hM,H5,mM,yM,lM,uM,FW,V5,sJ,L5,cM,pM,bM,oM,E5,dM,Z8=T(()=>{XY(),DG(),e0(),fM=class extends o{constructor({docsPath:J}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join(`
|
|
3
|
+
`),{docsPath:J,name:"AbiConstructorNotFoundError"})}},_W=class extends o{constructor({docsPath:J}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join(`
|
|
4
|
+
`),{docsPath:J,name:"AbiConstructorParamsNotFoundError"})}},hM=class extends o{constructor({data:J,params:X,size:G}){super([`Data size of ${G} bytes is too small for given parameters.`].join(`
|
|
5
|
+
`),{metaMessages:[`Params: (${R5(X,{includeName:!0})})`,`Data: ${J} (${G} bytes)`],name:"AbiDecodingDataSizeTooSmallError"});Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=J,this.params=X,this.size=G}},H5=class extends o{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}},mM=class extends o{constructor({expectedLength:J,givenLength:X,type:G}){super([`ABI encoding array length mismatch for type ${G}.`,`Expected length: ${J}`,`Given length: ${X}`].join(`
|
|
6
|
+
`),{name:"AbiEncodingArrayLengthMismatchError"})}},yM=class extends o{constructor({expectedSize:J,value:X}){super(`Size of bytes "${X}" (bytes${q8(X)}) does not match expected size (bytes${J}).`,{name:"AbiEncodingBytesSizeMismatchError"})}},lM=class extends o{constructor({expectedLength:J,givenLength:X}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${J}`,`Given length (values): ${X}`].join(`
|
|
7
|
+
`),{name:"AbiEncodingLengthMismatchError"})}},uM=class extends o{constructor(J,{docsPath:X}){super([`Arguments (\`args\`) were provided to "${J}", but "${J}" on the ABI does not contain any parameters (\`inputs\`).`,"Cannot encode error result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the inputs exist on it."].join(`
|
|
8
|
+
`),{docsPath:X,name:"AbiErrorInputsNotFoundError"})}},FW=class extends o{constructor(J,{docsPath:X}={}){super([`Error ${J?`"${J}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it."].join(`
|
|
9
|
+
`),{docsPath:X,name:"AbiErrorNotFoundError"})}},V5=class extends o{constructor(J,{docsPath:X}){super([`Encoded error signature "${J}" not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${J}.`].join(`
|
|
10
|
+
`),{docsPath:X,name:"AbiErrorSignatureNotFoundError"});Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=J}},sJ=class extends o{constructor(J,{docsPath:X}={}){super([`Function ${J?`"${J}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(`
|
|
11
|
+
`),{docsPath:X,name:"AbiFunctionNotFoundError"})}},L5=class extends o{constructor(J,{docsPath:X}){super([`Function "${J}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join(`
|
|
12
|
+
`),{docsPath:X,name:"AbiFunctionOutputsNotFoundError"})}},cM=class extends o{constructor(J,{docsPath:X}){super([`Encoded function signature "${J}" not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${J}.`].join(`
|
|
13
|
+
`),{docsPath:X,name:"AbiFunctionSignatureNotFoundError"})}},pM=class extends o{constructor(J,X){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${J.type}\` in \`${MJ(J.abiItem)}\`, and`,`\`${X.type}\` in \`${MJ(X.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}},bM=class extends o{constructor(J,{docsPath:X}){super([`Type "${J}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
|
|
14
|
+
`),{docsPath:X,name:"InvalidAbiEncodingType"})}},oM=class extends o{constructor(J,{docsPath:X}){super([`Type "${J}" is not a valid decoding type.`,"Please provide a valid ABI type."].join(`
|
|
15
|
+
`),{docsPath:X,name:"InvalidAbiDecodingType"})}},E5=class extends o{constructor(J){super([`Value "${J}" is not a valid array.`].join(`
|
|
16
|
+
`),{name:"InvalidArrayError"})}},dM=class extends o{constructor(J){super([`"${J}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(`
|
|
17
|
+
`),{name:"InvalidDefinitionTypeError"})}}}),iJ,C$=T(()=>{e0(),iJ=class extends o{constructor({address:J}){super(`Address "${J}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}}),A$,rM,sM,I$=T(()=>{e0(),A$=class extends o{constructor({max:J,min:X,signed:G,size:Y,value:q}){super(`Number "${q}" is not in safe ${Y?`${Y*8}-bit ${G?"signed":"unsigned"} `:""}integer range ${J?`(${X} to ${J})`:`(above ${X})`}`,{name:"IntegerOutOfRangeError"})}},rM=class extends o{constructor(J){super(`Bytes value "${J}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}},sM=class extends o{constructor({givenSize:J,maxSize:X}){super(`Size cannot exceed ${X} bytes. Given size: ${J} bytes.`,{name:"SizeOverflowError"})}}}),w5,iM=T(()=>{w5=class extends Map{constructor(J){super();Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=J}get(J){let X=super.get(J);if(super.has(J)&&X!==void 0)this.delete(J),super.set(J,X);return X}set(J,X){if(super.set(J,X),this.maxSize&&this.size>this.maxSize){let G=this.keys().next().value;if(G)this.delete(G)}return this}}}),C5,A5,PW,I5=T(()=>{e0(),C5=class extends o{constructor({offset:J,position:X,size:G}){super(`Slice ${X==="start"?"starting":"ending"} at offset "${J}" is out-of-bounds (size: ${G}).`,{name:"SliceOffsetOutOfBoundsError"})}},A5=class extends o{constructor({size:J,targetSize:X,type:G}){super(`${G.charAt(0).toUpperCase()}${G.slice(1).toLowerCase()} size (${J}) exceeds padding size (${X}).`,{name:"SizeExceedsPaddingSizeError"})}},PW=class extends o{constructor({size:J,targetSize:X,type:G}){super(`${G.charAt(0).toUpperCase()}${G.slice(1).toLowerCase()} is expected to be ${X} ${G} long, but is ${J} ${G} long.`,{name:"InvalidBytesLengthError"})}}});function GY(Q,{dir:J,size:X=32}={}){if(typeof Q==="string")return zJ(Q,{dir:J,size:X});return Pw(Q,{dir:J,size:X})}function zJ(Q,{dir:J,size:X=32}={}){if(X===null)return Q;let G=Q.replace("0x","");if(G.length>X*2)throw new A5({size:Math.ceil(G.length/2),targetSize:X,type:"hex"});return`0x${G[J==="right"?"padEnd":"padStart"](X*2,"0")}`}function Pw(Q,{dir:J,size:X=32}={}){if(X===null)return Q;if(Q.length>X)throw new A5({size:Q.length,targetSize:X,type:"bytes"});let G=new Uint8Array(X);for(let Y=0;Y<X;Y++){let q=J==="right";G[q?Y:X-Y-1]=Q[q?Y:Q.length-Y-1]}return G}var S5=T(()=>{I5()});function v5(Q,{dir:J="left"}={}){let X=typeof Q==="string"?Q.replace("0x",""):Q,G=0;for(let Y=0;Y<X.length-1;Y++)if(X[J==="left"?Y:X.length-Y-1].toString()==="0")G++;else break;if(X=J==="left"?X.slice(G):X.slice(0,X.length-G),typeof Q==="string"){if(X.length===1&&J==="right")X=`${X}0`;return`0x${X.length%2===1?`0${X}`:X}`}return X}function BQ(Q,{size:J}){if(q8(Q)>J)throw new sM({givenSize:q8(Q),maxSize:J})}function tM(Q,J={}){let{signed:X}=J;if(J.size)BQ(Q,{size:J.size});let G=BigInt(Q);if(!X)return G;let Y=(Q.length-2)/2,q=(1n<<BigInt(Y)*8n-1n)-1n;if(G<=q)return G;return G-BigInt(`0x${"f".padStart(Y*2,"f")}`)-1n}function kw(Q,J={}){let X=tM(Q,J),G=Number(X);if(!Number.isSafeInteger(G))throw new A$({max:`${Number.MAX_SAFE_INTEGER}`,min:`${Number.MIN_SAFE_INTEGER}`,signed:J.signed,size:J.size,value:`${X}n`});return G}var _5=T(()=>{I$(),DG()});function Zw(Q,J={}){if(typeof Q==="number"||typeof Q==="bigint")return F0(Q,J);if(typeof Q==="string")return aM(Q,J);if(typeof Q==="boolean")return nM(Q,J);return yQ(Q,J)}function nM(Q,J={}){let X=`0x${Number(Q)}`;if(typeof J.size==="number")return BQ(X,{size:J.size}),GY(X,{size:J.size});return X}function yQ(Q,J={}){let X="";for(let Y=0;Y<Q.length;Y++)X+=eM[Q[Y]];let G=`0x${X}`;if(typeof J.size==="number")return BQ(G,{size:J.size}),GY(G,{dir:"right",size:J.size});return G}function F0(Q,J={}){let{signed:X,size:G}=J,Y=BigInt(Q),q;if(G)if(X)q=(1n<<BigInt(G)*8n-1n)-1n;else q=2n**(BigInt(G)*8n)-1n;else if(typeof Q==="number")q=BigInt(Number.MAX_SAFE_INTEGER);let $=typeof q==="bigint"&&X?-q-1n:0;if(q&&Y>q||Y<$){let j=typeof Q==="bigint"?"n":"";throw new A$({max:q?`${q}${j}`:void 0,min:`${$}${j}`,signed:X,size:G,value:`${Q}${j}`})}let W=`0x${(X&&Y<0?(1n<<BigInt(G*8))+BigInt(Y):Y).toString(16)}`;if(G)return GY(W,{size:G});return W}function aM(Q,J={}){let X=Q4.encode(Q);return yQ(X,J)}var eM,Q4,HJ=T(()=>{I$(),S5(),_5(),eM=Array.from({length:256},(Q,J)=>J.toString(16).padStart(2,"0")),Q4=new TextEncoder});function J4(Q,J={}){if(typeof Q==="number"||typeof Q==="bigint")return xw(Q,J);if(typeof Q==="boolean")return Tw(Q,J);if(YY(Q))return F5(Q,J);return X4(Q,J)}function Tw(Q,J={}){let X=new Uint8Array(1);if(X[0]=Number(Q),typeof J.size==="number")return BQ(X,{size:J.size}),GY(X,{size:J.size});return X}function LN(Q){if(Q>=NQ.zero&&Q<=NQ.nine)return Q-NQ.zero;if(Q>=NQ.A&&Q<=NQ.F)return Q-(NQ.A-10);if(Q>=NQ.a&&Q<=NQ.f)return Q-(NQ.a-10);return}function F5(Q,J={}){let X=Q;if(J.size)BQ(X,{size:J.size}),X=GY(X,{dir:"right",size:J.size});let G=X.slice(2);if(G.length%2)G=`0${G}`;let Y=G.length/2,q=new Uint8Array(Y);for(let $=0,W=0;$<Y;$++){let j=LN(G.charCodeAt(W++)),K=LN(G.charCodeAt(W++));if(j===void 0||K===void 0)throw new o(`Invalid byte sequence ("${G[W-2]}${G[W-1]}" in "${G}").`);q[$]=j*16+K}return q}function xw(Q,J){let X=F0(Q,J);return F5(X)}function X4(Q,J={}){let X=Y4.encode(Q);if(typeof J.size==="number")return BQ(X,{size:J.size}),GY(X,{dir:"right",size:J.size});return X}var Y4,NQ,S$=T(()=>{e0(),S5(),_5(),HJ(),Y4=new TextEncoder,NQ={zero:48,nine:57,A:65,F:70,a:97,f:102}});function gw(Q,J=!1){if(J)return{h:Number(Q&uY),l:Number(Q>>kW&uY)};return{h:Number(Q>>kW&uY)|0,l:Number(Q&uY)|0}}function fw(Q,J=!1){let X=Q.length,G=new Uint32Array(X),Y=new Uint32Array(X);for(let q=0;q<X;q++){let{h:$,l:W}=gw(Q[q],J);[G[q],Y[q]]=[$,W]}return[G,Y]}var uY,kW,hw=(Q,J,X)=>Q<<X|J>>>32-X,mw=(Q,J,X)=>J<<X|Q>>>32-X,yw=(Q,J,X)=>J<<X-32|Q>>>64-X,lw=(Q,J,X)=>Q<<X-32|J>>>64-X,uw=T(()=>{uY=BigInt(4294967295),kW=BigInt(32)});function cw(Q){return Q instanceof Uint8Array||ArrayBuffer.isView(Q)&&Q.constructor.name==="Uint8Array"}function EN(Q){if(!Number.isSafeInteger(Q)||Q<0)throw Error("positive integer expected, got "+Q)}function oq(Q,...J){if(!cw(Q))throw Error("Uint8Array expected");if(J.length>0&&!J.includes(Q.length))throw Error("Uint8Array expected of length "+J+", got length="+Q.length)}function wN(Q,J=!0){if(Q.destroyed)throw Error("Hash instance has been destroyed");if(J&&Q.finished)throw Error("Hash#digest() has already been called")}function pw(Q,J){oq(Q);let X=J.outputLen;if(Q.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function bw(Q){return new Uint32Array(Q.buffer,Q.byteOffset,Math.floor(Q.byteLength/4))}function G4(...Q){for(let J=0;J<Q.length;J++)Q[J].fill(0)}function ow(Q){return Q<<24&4278190080|Q<<8&16711680|Q>>>8&65280|Q>>>24&255}function dw(Q){for(let J=0;J<Q.length;J++)Q[J]=ow(Q[J]);return Q}function rw(Q){if(typeof Q!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(Q))}function q4(Q){if(typeof Q==="string")Q=rw(Q);return oq(Q),Q}class $4{}function sw(Q){let J=(G)=>Q().update(q4(G)).digest(),X=Q();return J.outputLen=X.outputLen,J.blockLen=X.blockLen,J.create=()=>Q(),J}var CN,ZW,iw=T(()=>{/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */CN=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)(),ZW=CN?(Q)=>Q:dw});function tw(Q,J=24){let X=new Uint32Array(10);for(let G=24-J;G<24;G++){for(let $=0;$<10;$++)X[$]=Q[$]^Q[$+10]^Q[$+20]^Q[$+30]^Q[$+40];for(let $=0;$<10;$+=2){let W=($+8)%10,j=($+2)%10,K=X[j],z=X[j+1],N=FN(K,z,1)^X[W],U=PN(K,z,1)^X[W+1];for(let M=0;M<50;M+=10)Q[$+M]^=N,Q[$+M+1]^=U}let Y=Q[2],q=Q[3];for(let $=0;$<24;$++){let W=xW[$],j=FN(Y,q,W),K=PN(Y,q,W),z=TW[$];Y=Q[z],q=Q[z+1],Q[z]=j,Q[z+1]=K}for(let $=0;$<50;$+=10){for(let W=0;W<10;W++)X[W]=Q[$+W];for(let W=0;W<10;W++)Q[$+W]^=~X[(W+2)%10]&X[(W+4)%10]}Q[0]^=W4[G],Q[1]^=j4[G]}G4(X)}var AN,IX,IN,SN,vN,_N,TW,xW,GW,qW,W4,j4,FN=(Q,J,X)=>X>32?yw(Q,J,X):hw(Q,J,X),PN=(Q,J,X)=>X>32?lw(Q,J,X):mw(Q,J,X),K4,nw=(Q,J,X)=>sw(()=>new K4(J,Q,X)),z4,aw=T(()=>{uw(),iw(),AN=BigInt(0),IX=BigInt(1),IN=BigInt(2),SN=BigInt(7),vN=BigInt(256),_N=BigInt(113),TW=[],xW=[],GW=[];for(let Q=0,J=IX,X=1,G=0;Q<24;Q++){[X,G]=[G,(2*X+3*G)%5],TW.push(2*(5*G+X)),xW.push((Q+1)*(Q+2)/2%64);let Y=AN;for(let q=0;q<7;q++)if(J=(J<<IX^(J>>SN)*_N)%vN,J&IN)Y^=IX<<(IX<<BigInt(q))-IX;GW.push(Y)}qW=fw(GW,!0),W4=qW[0],j4=qW[1],K4=class Q extends $4{constructor(J,X,G,Y=!1,q=24){super();if(this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=J,this.suffix=X,this.outputLen=G,this.enableXOF=Y,this.rounds=q,EN(G),!(0<J&&J<200))throw Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=bw(this.state)}clone(){return this._cloneInto()}keccak(){ZW(this.state32),tw(this.state32,this.rounds),ZW(this.state32),this.posOut=0,this.pos=0}update(J){wN(this),J=q4(J),oq(J);let{blockLen:X,state:G}=this,Y=J.length;for(let q=0;q<Y;){let $=Math.min(X-this.pos,Y-q);for(let W=0;W<$;W++)G[this.pos++]^=J[q++];if(this.pos===X)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:J,suffix:X,pos:G,blockLen:Y}=this;if(J[G]^=X,(X&128)!==0&&G===Y-1)this.keccak();J[Y-1]^=128,this.keccak()}writeInto(J){wN(this,!1),oq(J),this.finish();let X=this.state,{blockLen:G}=this;for(let Y=0,q=J.length;Y<q;){if(this.posOut>=G)this.keccak();let $=Math.min(G-this.posOut,q-Y);J.set(X.subarray(this.posOut,this.posOut+$),Y),this.posOut+=$,Y+=$}return J}xofInto(J){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(J)}xof(J){return EN(J),this.xofInto(new Uint8Array(J))}digestInto(J){if(pw(J,this),this.finished)throw Error("digest() was already called");return this.writeInto(J),this.destroy(),J}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,G4(this.state)}_cloneInto(J){let{blockLen:X,suffix:G,outputLen:Y,rounds:q,enableXOF:$}=this;return J||(J=new Q(X,G,Y,$,q)),J.state32.set(this.state32),J.pos=this.pos,J.posOut=this.posOut,J.finished=this.finished,J.rounds=q,J.suffix=G,J.outputLen=Y,J.enableXOF=$,J.destroyed=this.destroyed,J}},z4=(()=>nw(1,136,32))()});function P5(Q,J){let X=J||"hex",G=z4(YY(Q,{strict:!1})?J4(Q):Q);if(X==="bytes")return G;return Zw(G)}var k5=T(()=>{aw(),S$(),HJ()});function N4(Q,J){if(gq.has(`${Q}.${J}`))return gq.get(`${Q}.${J}`);let X=J?`${J}${Q.toLowerCase()}`:Q.substring(2).toLowerCase(),G=P5(X4(X),"bytes"),Y=(J?X.substring(`${J}0x`.length):X).split("");for(let $=0;$<40;$+=2){if(G[$>>1]>>4>=8&&Y[$])Y[$]=Y[$].toUpperCase();if((G[$>>1]&15)>=8&&Y[$+1])Y[$+1]=Y[$+1].toUpperCase()}let q=`0x${Y.join("")}`;return gq.set(`${Q}.${J}`,q),q}var gq,U4=T(()=>{S$(),k5(),iM(),gq=new w5(8192)});function lQ(Q,J){let{strict:X=!0}=J??{},G=`${Q}.${X}`;if(fq.has(G))return fq.get(G);let Y=(()=>{if(!M4.test(Q))return!1;if(Q.toLowerCase()===Q)return!0;if(X)return N4(Q)===Q;return!0})();return fq.set(G,Y),Y}var M4,fq,OG=T(()=>{iM(),U4(),M4=/^0x[a-fA-F0-9]{40}$/,fq=new w5(8192)});function tJ(Q){if(typeof Q[0]==="string")return v$(Q);return ew(Q)}function ew(Q){let J=0;for(let Y of Q)J+=Y.length;let X=new Uint8Array(J),G=0;for(let Y of Q)X.set(Y,G),G+=Y.length;return X}function v$(Q){return`0x${Q.reduce((J,X)=>J+X.replace("0x",""),"")}`}function yX(Q,J,X,{strict:G}={}){if(YY(Q,{strict:!1}))return QC(Q,J,X,{strict:G});return B4(Q,J,X,{strict:G})}function D4(Q,J){if(typeof J==="number"&&J>0&&J>q8(Q)-1)throw new C5({offset:J,position:"start",size:q8(Q)})}function O4(Q,J,X){if(typeof J==="number"&&typeof X==="number"&&q8(Q)!==X-J)throw new C5({offset:X,position:"end",size:q8(Q)})}function B4(Q,J,X,{strict:G}={}){D4(Q,J);let Y=Q.slice(J,X);if(G)O4(Y,J,X);return Y}function QC(Q,J,X,{strict:G}={}){D4(Q,J);let Y=`0x${Q.replace("0x","").slice((J??0)*2,(X??Q.length)*2)}`;if(G)O4(Y,J,X);return Y}var BG=T(()=>{I5(),DG()}),R4,JC=T(()=>{R4=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/});function qY(Q,J){if(Q.length!==J.length)throw new lM({expectedLength:Q.length,givenLength:J.length});let X=XC({params:Q,values:J}),G=T5(X);if(G.length===0)return"0x";return G}function XC({params:Q,values:J}){let X=[];for(let G=0;G<Q.length;G++)X.push(Z5({param:Q[G],value:J[G]}));return X}function Z5({param:Q,value:J}){let X=x5(Q.type);if(X){let[G,Y]=X;return GC(J,{length:G,param:{...Q,type:Y}})}if(Q.type==="tuple")return KC(J,{param:Q});if(Q.type==="address")return YC(J);if(Q.type==="bool")return $C(J);if(Q.type.startsWith("uint")||Q.type.startsWith("int")){let G=Q.type.startsWith("int"),[,,Y="256"]=R4.exec(Q.type)??[];return WC(J,{signed:G,size:Number(Y)})}if(Q.type.startsWith("bytes"))return qC(J,{param:Q});if(Q.type==="string")return jC(J);throw new bM(Q.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function T5(Q){let J=0;for(let q=0;q<Q.length;q++){let{dynamic:$,encoded:W}=Q[q];if($)J+=32;else J+=q8(W)}let X=[],G=[],Y=0;for(let q=0;q<Q.length;q++){let{dynamic:$,encoded:W}=Q[q];if($)X.push(F0(J+Y,{size:32})),G.push(W),Y+=q8(W);else X.push(W)}return tJ([...X,...G])}function YC(Q){if(!lQ(Q))throw new iJ({address:Q});return{dynamic:!1,encoded:zJ(Q.toLowerCase())}}function GC(Q,{length:J,param:X}){let G=J===null;if(!Array.isArray(Q))throw new E5(Q);if(!G&&Q.length!==J)throw new mM({expectedLength:J,givenLength:Q.length,type:`${X.type}[${J}]`});let Y=!1,q=[];for(let $=0;$<Q.length;$++){let W=Z5({param:X,value:Q[$]});if(W.dynamic)Y=!0;q.push(W)}if(G||Y){let $=T5(q);if(G){let W=F0(q.length,{size:32});return{dynamic:!0,encoded:q.length>0?tJ([W,$]):W}}if(Y)return{dynamic:!0,encoded:$}}return{dynamic:!1,encoded:tJ(q.map(({encoded:$})=>$))}}function qC(Q,{param:J}){let[,X]=J.type.split("bytes"),G=q8(Q);if(!X){let Y=Q;if(G%32!==0)Y=zJ(Y,{dir:"right",size:Math.ceil((Q.length-2)/2/32)*32});return{dynamic:!0,encoded:tJ([zJ(F0(G,{size:32})),Y])}}if(G!==Number.parseInt(X,10))throw new yM({expectedSize:Number.parseInt(X,10),value:Q});return{dynamic:!1,encoded:zJ(Q,{dir:"right"})}}function $C(Q){if(typeof Q!=="boolean")throw new o(`Invalid boolean value: "${Q}" (type: ${typeof Q}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:zJ(nM(Q))}}function WC(Q,{signed:J,size:X=256}){if(typeof X==="number"){let G=2n**(BigInt(X)-(J?1n:0n))-1n,Y=J?-G-1n:0n;if(Q>G||Q<Y)throw new A$({max:G.toString(),min:Y.toString(),signed:J,size:X/8,value:Q.toString()})}return{dynamic:!1,encoded:F0(Q,{size:32,signed:J})}}function jC(Q){let J=aM(Q),X=Math.ceil(q8(J)/32),G=[];for(let Y=0;Y<X;Y++)G.push(zJ(yX(J,Y*32,(Y+1)*32),{dir:"right"}));return{dynamic:!0,encoded:tJ([zJ(F0(q8(J),{size:32})),...G])}}function KC(Q,{param:J}){let X=!1,G=[];for(let Y=0;Y<J.components.length;Y++){let q=J.components[Y],$=Array.isArray(Q)?Y:q.name,W=Z5({param:q,value:Q[$]});if(G.push(W),W.dynamic)X=!0}return{dynamic:X,encoded:X?T5(G):tJ(G.map(({encoded:Y})=>Y))}}function x5(Q){let J=Q.match(/^(.*)\[(\d+)?\]$/);return J?[J[2]?Number(J[2]):null,J[1]]:void 0}var qX=T(()=>{Z8(),C$(),e0(),I$(),OG(),S5(),DG(),BG(),HJ(),JC()}),gW,H4,V4,zC=T(()=>{e0(),gW=class extends o{constructor({offset:J}){super(`Offset \`${J}\` cannot be negative.`,{name:"NegativeOffsetError"})}},H4=class extends o{constructor({length:J,position:X}){super(`Position \`${X}\` is out of bounds (\`0 < position < ${J}\`).`,{name:"PositionOutOfBoundsError"})}},V4=class extends o{constructor({count:J,limit:X}){super(`Recursive read limit of \`${X}\` exceeded (recursive read count: \`${J}\`).`,{name:"RecursiveReadLimitExceededError"})}}});function NC(Q,{recursiveReadLimit:J=8192}={}){let X=Object.create(L4);return X.bytes=Q,X.dataView=new DataView(Q.buffer??Q,Q.byteOffset,Q.byteLength),X.positionReadCount=new Map,X.recursiveReadLimit=J,X}var L4,UC=T(()=>{zC(),L4={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new V4({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(Q){if(Q<0||Q>this.bytes.length-1)throw new H4({length:this.bytes.length,position:Q})},decrementPosition(Q){if(Q<0)throw new gW({offset:Q});let J=this.position-Q;this.assertPosition(J),this.position=J},getReadCount(Q){return this.positionReadCount.get(Q||this.position)||0},incrementPosition(Q){if(Q<0)throw new gW({offset:Q});let J=this.position+Q;this.assertPosition(J),this.position=J},inspectByte(Q){let J=Q??this.position;return this.assertPosition(J),this.bytes[J]},inspectBytes(Q,J){let X=J??this.position;return this.assertPosition(X+Q-1),this.bytes.subarray(X,X+Q)},inspectUint8(Q){let J=Q??this.position;return this.assertPosition(J),this.bytes[J]},inspectUint16(Q){let J=Q??this.position;return this.assertPosition(J+1),this.dataView.getUint16(J)},inspectUint24(Q){let J=Q??this.position;return this.assertPosition(J+2),(this.dataView.getUint16(J)<<8)+this.dataView.getUint8(J+2)},inspectUint32(Q){let J=Q??this.position;return this.assertPosition(J+3),this.dataView.getUint32(J)},pushByte(Q){this.assertPosition(this.position),this.bytes[this.position]=Q,this.position++},pushBytes(Q){this.assertPosition(this.position+Q.length-1),this.bytes.set(Q,this.position),this.position+=Q.length},pushUint8(Q){this.assertPosition(this.position),this.bytes[this.position]=Q,this.position++},pushUint16(Q){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,Q),this.position+=2},pushUint24(Q){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,Q>>8),this.dataView.setUint8(this.position+2,Q&255),this.position+=3},pushUint32(Q){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,Q),this.position+=4},readByte(){this.assertReadLimit(),this._touch();let Q=this.inspectByte();return this.position++,Q},readBytes(Q,J){this.assertReadLimit(),this._touch();let X=this.inspectBytes(Q);return this.position+=J??Q,X},readUint8(){this.assertReadLimit(),this._touch();let Q=this.inspectUint8();return this.position+=1,Q},readUint16(){this.assertReadLimit(),this._touch();let Q=this.inspectUint16();return this.position+=2,Q},readUint24(){this.assertReadLimit(),this._touch();let Q=this.inspectUint24();return this.position+=3,Q},readUint32(){this.assertReadLimit(),this._touch();let Q=this.inspectUint32();return this.position+=4,Q},get remaining(){return this.bytes.length-this.position},setPosition(Q){let J=this.position;return this.assertPosition(Q),this.position=Q,()=>this.position=J},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;let Q=this.getReadCount();if(this.positionReadCount.set(this.position,Q+1),Q>0)this.recursiveReadCount++}}});function MC(Q,J={}){if(typeof J.size<"u")BQ(Q,{size:J.size});let X=yQ(Q,J);return tM(X,J)}function DC(Q,J={}){let X=Q;if(typeof J.size<"u")BQ(X,{size:J.size}),X=v5(X);if(X.length>1||X[0]>1)throw new rM(X);return Boolean(X[0])}function gQ(Q,J={}){if(typeof J.size<"u")BQ(Q,{size:J.size});let X=yQ(Q,J);return kw(X,J)}function OC(Q,J={}){let X=Q;if(typeof J.size<"u")BQ(X,{size:J.size}),X=v5(X,{dir:"right"});return new TextDecoder().decode(X)}var BC=T(()=>{I$(),_5(),HJ()});function g5(Q,J){let X=typeof J==="string"?F5(J):J,G=NC(X);if(q8(X)===0&&Q.length>0)throw new H5;if(q8(J)&&q8(J)<32)throw new hM({data:typeof J==="string"?J:yQ(J),params:Q,size:q8(J)});let Y=0,q=[];for(let $=0;$<Q.length;++$){let W=Q[$];G.setPosition(Y);let[j,K]=TX(G,W,{staticPosition:0});Y+=K,q.push(j)}return q}function TX(Q,J,{staticPosition:X}){let G=x5(J.type);if(G){let[Y,q]=G;return HC(Q,{...J,type:q},{length:Y,staticPosition:X})}if(J.type==="tuple")return wC(Q,J,{staticPosition:X});if(J.type==="address")return RC(Q);if(J.type==="bool")return VC(Q);if(J.type.startsWith("bytes"))return LC(Q,J,{staticPosition:X});if(J.type.startsWith("uint")||J.type.startsWith("int"))return EC(Q,J);if(J.type==="string")return CC(Q,{staticPosition:X});throw new oM(J.type,{docsPath:"/docs/contract/decodeAbiParameters"})}function RC(Q){let J=Q.readBytes(32);return[N4(yQ(B4(J,-20))),32]}function HC(Q,J,{length:X,staticPosition:G}){if(!X){let $=gQ(Q.readBytes(fW)),W=G+$,j=W+kN;Q.setPosition(W);let K=gQ(Q.readBytes(kN)),z=tY(J),N=0,U=[];for(let M=0;M<K;++M){Q.setPosition(j+(z?M*32:N));let[D,O]=TX(Q,J,{staticPosition:j});N+=O,U.push(D)}return Q.setPosition(G+32),[U,32]}if(tY(J)){let $=gQ(Q.readBytes(fW)),W=G+$,j=[];for(let K=0;K<X;++K){Q.setPosition(W+K*32);let[z]=TX(Q,J,{staticPosition:W});j.push(z)}return Q.setPosition(G+32),[j,32]}let Y=0,q=[];for(let $=0;$<X;++$){let[W,j]=TX(Q,J,{staticPosition:G+Y});Y+=j,q.push(W)}return[q,Y]}function VC(Q){return[DC(Q.readBytes(32),{size:32}),32]}function LC(Q,J,{staticPosition:X}){let[G,Y]=J.type.split("bytes");if(!Y){let q=gQ(Q.readBytes(32));Q.setPosition(X+q);let $=gQ(Q.readBytes(32));if($===0)return Q.setPosition(X+32),["0x",32];let W=Q.readBytes($);return Q.setPosition(X+32),[yQ(W),32]}return[yQ(Q.readBytes(Number.parseInt(Y,10),32)),32]}function EC(Q,J){let X=J.type.startsWith("int"),G=Number.parseInt(J.type.split("int")[1]||"256",10),Y=Q.readBytes(32);return[G>48?MC(Y,{signed:X}):gQ(Y,{signed:X}),32]}function wC(Q,J,{staticPosition:X}){let G=J.components.length===0||J.components.some(({name:$})=>!$),Y=G?[]:{},q=0;if(tY(J)){let $=gQ(Q.readBytes(fW)),W=X+$;for(let j=0;j<J.components.length;++j){let K=J.components[j];Q.setPosition(W+q);let[z,N]=TX(Q,K,{staticPosition:W});q+=N,Y[G?j:K?.name]=z}return Q.setPosition(X+32),[Y,32]}for(let $=0;$<J.components.length;++$){let W=J.components[$],[j,K]=TX(Q,W,{staticPosition:X});Y[G?$:W?.name]=j,q+=K}return[Y,q]}function CC(Q,{staticPosition:J}){let X=gQ(Q.readBytes(32)),G=J+X;Q.setPosition(G);let Y=gQ(Q.readBytes(32));if(Y===0)return Q.setPosition(J+32),["",32];let q=Q.readBytes(Y,32),$=OC(v5(q));return Q.setPosition(J+32),[$,32]}function tY(Q){let{type:J}=Q;if(J==="string")return!0;if(J==="bytes")return!0;if(J.endsWith("[]"))return!0;if(J==="tuple")return Q.components?.some(tY);let X=x5(Q.type);if(X&&tY({...Q,type:X[1]}))return!0;return!1}var kN=32,fW=32,f5=T(()=>{Z8(),U4(),UC(),DG(),BG(),BC(),S$(),HJ(),qX()});function AC(Q){return IC(Q)}var IC=(Q)=>P5(J4(Q)),SC=T(()=>{S$(),k5()});function bQ(Q,J){return Q.exec(J)?.groups}var h5,m5,y5,_$=T(()=>{h5=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,m5=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,y5=/^\(.+?\).*?$/});function hW(Q){let J=Q.type;if(mW.test(Q.type)&&"components"in Q){J="(";let X=Q.components.length;for(let Y=0;Y<X;Y++){let q=Q.components[Y];if(J+=hW(q),Y<X-1)J+=", "}let G=bQ(mW,Q.type);return J+=`)${G?.array||""}`,hW({...Q,type:J})}if("indexed"in Q&&Q.indexed)J=`${J} indexed`;if(Q.name)return`${J} ${Q.name}`;return J}var mW,vC=T(()=>{_$(),mW=/^tuple(?<array>(\[(\d*)\])*)$/});function hY(Q){let J="",X=Q.length;for(let G=0;G<X;G++){let Y=Q[G];if(J+=hW(Y),G!==X-1)J+=", "}return J}var _C=T(()=>{vC()});function FC(Q){if(Q.type==="function")return`function ${Q.name}(${hY(Q.inputs)})${Q.stateMutability&&Q.stateMutability!=="nonpayable"?` ${Q.stateMutability}`:""}${Q.outputs?.length?` returns (${hY(Q.outputs)})`:""}`;if(Q.type==="event")return`event ${Q.name}(${hY(Q.inputs)})`;if(Q.type==="error")return`error ${Q.name}(${hY(Q.inputs)})`;if(Q.type==="constructor")return`constructor(${hY(Q.inputs)})${Q.stateMutability==="payable"?" payable":""}`;if(Q.type==="fallback")return`fallback() external${Q.stateMutability==="payable"?" payable":""}`;return"receive() external payable"}var PC=T(()=>{_C()});function kC(Q){return l5.test(Q)}function ZC(Q){return bQ(l5,Q)}function TC(Q){return u5.test(Q)}function xC(Q){return bQ(u5,Q)}function gC(Q){return c5.test(Q)}function fC(Q){return bQ(c5,Q)}function E4(Q){return p5.test(Q)}function hC(Q){return bQ(p5,Q)}function mC(Q){return b5.test(Q)}function yC(Q){return bQ(b5,Q)}function lC(Q){return o5.test(Q)}function uC(Q){return bQ(o5,Q)}function cC(Q){return w4.test(Q)}var l5,u5,c5,p5,b5,o5,w4,C4,dq,d5=T(()=>{_$(),l5=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/,u5=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/,c5=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/,p5=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/,b5=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/,o5=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/,w4=/^receive\(\) external payable$/,C4=new Set(["indexed"]),dq=new Set(["calldata","memory","storage"])}),pC="1.2.3",P8,RG=T(()=>{P8=class Q extends Error{constructor(J,X={}){let G=X.cause instanceof Q?X.cause.details:X.cause?.message?X.cause.message:X.details,Y=X.cause instanceof Q?X.cause.docsPath||X.docsPath:X.docsPath,q=[J||"An error occurred.","",...X.metaMessages?[...X.metaMessages,""]:[],...Y?[`Docs: https://abitype.dev${Y}`]:[],...G?[`Details: ${G}`]:[],`Version: abitype@${pC}`].join(`
|
|
18
|
+
`);super(q);if(Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),X.cause)this.cause=X.cause;this.details=G,this.docsPath=Y,this.metaMessages=X.metaMessages,this.shortMessage=J}}}),A4,I4,S4=T(()=>{RG(),A4=class extends P8{constructor({type:J}){super("Unknown type.",{metaMessages:[`Type "${J}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}},I4=class extends P8{constructor({type:J}){super("Unknown type.",{metaMessages:[`Type "${J}" is not a valid ABI type.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}}),v4,_4,F4,P4,k4,Z4=T(()=>{RG(),v4=class extends P8{constructor({param:J}){super("Invalid ABI parameter.",{details:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}},_4=class extends P8{constructor({param:J,name:X}){super("Invalid ABI parameter.",{details:J,metaMessages:[`"${X}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}},F4=class extends P8{constructor({param:J,type:X,modifier:G}){super("Invalid ABI parameter.",{details:J,metaMessages:[`Modifier "${G}" not allowed${X?` in "${X}" type`:""}.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}},P4=class extends P8{constructor({param:J,type:X,modifier:G}){super("Invalid ABI parameter.",{details:J,metaMessages:[`Modifier "${G}" not allowed${X?` in "${X}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${G}" was given.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}},k4=class extends P8{constructor({abiParameter:J}){super("Invalid ABI parameter.",{details:JSON.stringify(J,null,2),metaMessages:["ABI parameter type is invalid."]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}}),$X,T4,x4,g4=T(()=>{RG(),$X=class extends P8{constructor({signature:J,type:X}){super(`Invalid ${X} signature.`,{details:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}},T4=class extends P8{constructor({signature:J}){super("Unknown signature.",{details:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}},x4=class extends P8{constructor({signature:J}){super("Invalid struct signature.",{details:J,metaMessages:["No properties exist."]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}}),f4,bC=T(()=>{RG(),f4=class extends P8{constructor({type:J}){super("Circular reference detected.",{metaMessages:[`Struct "${J}" is a circular reference.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}}),h4,oC=T(()=>{RG(),h4=class extends P8{constructor({current:J,depth:X}){super("Unbalanced parentheses.",{metaMessages:[`"${J.trim()}" has too many ${X>0?"opening":"closing"} parentheses.`],details:`Depth "${X}"`});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}});function dC(Q,J,X){let G="";if(X)for(let Y of Object.entries(X)){if(!Y)continue;let q="";for(let $ of Y[1])q+=`[${$.type}${$.name?`:${$.name}`:""}]`;G+=`(${Y[0]}{${q}})`}if(J)return`${J}:${Q}${G}`;return`${Q}${G}`}var hq,rC=T(()=>{hq=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]])});function sC(Q,J={}){if(gC(Q))return iC(Q,J);if(TC(Q))return tC(Q,J);if(kC(Q))return nC(Q,J);if(mC(Q))return aC(Q,J);if(lC(Q))return eC(Q);if(cC(Q))return{type:"receive",stateMutability:"payable"};throw new T4({signature:Q})}function iC(Q,J={}){let X=fC(Q);if(!X)throw new $X({signature:Q,type:"function"});let G=n8(X.parameters),Y=[],q=G.length;for(let W=0;W<q;W++)Y.push(nJ(G[W],{modifiers:dq,structs:J,type:"function"}));let $=[];if(X.returns){let W=n8(X.returns),j=W.length;for(let K=0;K<j;K++)$.push(nJ(W[K],{modifiers:dq,structs:J,type:"function"}))}return{name:X.name,type:"function",stateMutability:X.stateMutability??"nonpayable",inputs:Y,outputs:$}}function tC(Q,J={}){let X=xC(Q);if(!X)throw new $X({signature:Q,type:"event"});let G=n8(X.parameters),Y=[],q=G.length;for(let $=0;$<q;$++)Y.push(nJ(G[$],{modifiers:C4,structs:J,type:"event"}));return{name:X.name,type:"event",inputs:Y}}function nC(Q,J={}){let X=ZC(Q);if(!X)throw new $X({signature:Q,type:"error"});let G=n8(X.parameters),Y=[],q=G.length;for(let $=0;$<q;$++)Y.push(nJ(G[$],{structs:J,type:"error"}));return{name:X.name,type:"error",inputs:Y}}function aC(Q,J={}){let X=yC(Q);if(!X)throw new $X({signature:Q,type:"constructor"});let G=n8(X.parameters),Y=[],q=G.length;for(let $=0;$<q;$++)Y.push(nJ(G[$],{structs:J,type:"constructor"}));return{type:"constructor",stateMutability:X.stateMutability??"nonpayable",inputs:Y}}function eC(Q){let J=uC(Q);if(!J)throw new $X({signature:Q,type:"fallback"});return{type:"fallback",stateMutability:J.stateMutability??"nonpayable"}}function nJ(Q,J){let X=dC(Q,J?.type,J?.structs);if(hq.has(X))return hq.get(X);let G=y5.test(Q),Y=bQ(G?l4:y4,Q);if(!Y)throw new v4({param:Q});if(Y.name&&QA(Y.name))throw new _4({param:Q,name:Y.name});let q=Y.name?{name:Y.name}:{},$=Y.modifier==="indexed"?{indexed:!0}:{},W=J?.structs??{},j,K={};if(G){j="tuple";let N=n8(Y.type),U=[],M=N.length;for(let D=0;D<M;D++)U.push(nJ(N[D],{structs:W}));K={components:U}}else if(Y.type in W)j="tuple",K={components:W[Y.type]};else if(u4.test(Y.type))j=`${Y.type}256`;else if(Y.type==="address payable")j="address";else if(j=Y.type,J?.type!=="struct"&&!m4(j))throw new I4({type:j});if(Y.modifier){if(!J?.modifiers?.has?.(Y.modifier))throw new F4({param:Q,type:J?.type,modifier:Y.modifier});if(dq.has(Y.modifier)&&!JA(j,!!Y.array))throw new P4({param:Q,type:J?.type,modifier:Y.modifier})}let z={type:`${j}${Y.array??""}`,...q,...$,...K};return hq.set(X,z),z}function n8(Q,J=[],X="",G=0){let Y=Q.trim().length;for(let q=0;q<Y;q++){let $=Q[q],W=Q.slice(q+1);switch($){case",":return G===0?n8(W,[...J,X.trim()]):n8(W,J,`${X}${$}`,G);case"(":return n8(W,J,`${X}${$}`,G+1);case")":return n8(W,J,`${X}${$}`,G-1);default:return n8(W,J,`${X}${$}`,G)}}if(X==="")return J;if(G!==0)throw new h4({current:X,depth:G});return J.push(X.trim()),J}function m4(Q){return Q==="address"||Q==="bool"||Q==="function"||Q==="string"||h5.test(Q)||m5.test(Q)}function QA(Q){return Q==="address"||Q==="bool"||Q==="function"||Q==="string"||Q==="tuple"||h5.test(Q)||m5.test(Q)||c4.test(Q)}function JA(Q,J){return J||Q==="bytes"||Q==="string"||Q==="tuple"}var y4,l4,u4,c4,p4=T(()=>{_$(),S4(),Z4(),g4(),oC(),rC(),d5(),y4=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,l4=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,u4=/^u?int$/,c4=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/});function XA(Q){let J={},X=Q.length;for(let $=0;$<X;$++){let W=Q[$];if(!E4(W))continue;let j=hC(W);if(!j)throw new $X({signature:W,type:"struct"});let K=j.properties.split(";"),z=[],N=K.length;for(let U=0;U<N;U++){let M=K[U].trim();if(!M)continue;let D=nJ(M,{type:"struct"});z.push(D)}if(!z.length)throw new x4({signature:W});J[j.name]=z}let G={},Y=Object.entries(J),q=Y.length;for(let $=0;$<q;$++){let[W,j]=Y[$];G[W]=b4(j,J)}return G}function b4(Q=[],J={},X=new Set){let G=[],Y=Q.length;for(let q=0;q<Y;q++){let $=Q[q];if(y5.test($.type))G.push($);else{let W=bQ(o4,$.type);if(!W?.type)throw new k4({abiParameter:$});let{array:j,type:K}=W;if(K in J){if(X.has(K))throw new f4({type:K});G.push({...$,type:`tuple${j??""}`,components:b4(J[K],J,new Set([...X,K]))})}else if(m4(K))G.push($);else throw new A4({type:K})}}return G}var o4,YA=T(()=>{_$(),S4(),Z4(),g4(),bC(),d5(),p4(),o4=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/});function d4(Q){let J=XA(Q),X=[],G=Q.length;for(let Y=0;Y<G;Y++){let q=Q[Y];if(E4(q))continue;X.push(sC(q,J))}return X}var GA=T(()=>{d5(),YA(),p4()}),r4=T(()=>{PC(),GA()});function qA(Q){let J=!0,X="",G=0,Y="",q=!1;for(let $=0;$<Q.length;$++){let W=Q[$];if(["(",")",","].includes(W))J=!0;if(W==="(")G++;if(W===")")G--;if(!J)continue;if(G===0){if(W===" "&&["event","function",""].includes(Y))Y="";else if(Y+=W,W===")"){q=!0;break}continue}if(W===" "){if(Q[$-1]!==","&&X!==","&&X!==",(")X="",J=!1;continue}Y+=W,X+=W}if(!q)throw new o("Unable to normalize signature.");return Y}var $A=T(()=>{e0()}),WA=(Q)=>{let J=(()=>{if(typeof Q==="string")return Q;return FC(Q)})();return qA(J)},jA=T(()=>{r4(),$A()});function s4(Q){return AC(WA(Q))}var i4=T(()=>{SC(),jA()}),t4,KA=T(()=>{i4(),t4=s4}),HG=(Q)=>yX(s4(Q),0,4),VG=T(()=>{BG(),i4()});function LG(Q){let{abi:J,args:X=[],name:G}=Q,Y=YY(G,{strict:!1}),q=J.filter((W)=>{if(Y){if(W.type==="function")return HG(W)===G;if(W.type==="event")return t4(W)===G;return!1}return"name"in W&&W.name===G});if(q.length===0)return;if(q.length===1)return q[0];let $;for(let W of q){if(!("inputs"in W))continue;if(!X||X.length===0){if(!W.inputs||W.inputs.length===0)return W;continue}if(!W.inputs)continue;if(W.inputs.length===0)continue;if(W.inputs.length!==X.length)continue;if(X.every((j,K)=>{let z="inputs"in W&&W.inputs[K];if(!z)return!1;return yW(j,z)})){if($&&"inputs"in $&&$.inputs){let j=n4(W.inputs,$.inputs,X);if(j)throw new pM({abiItem:W,type:j[0]},{abiItem:$,type:j[1]})}$=W}}if($)return $;return q[0]}function yW(Q,J){let X=typeof Q,G=J.type;switch(G){case"address":return lQ(Q,{strict:!1});case"bool":return X==="boolean";case"function":return X==="string";case"string":return X==="string";default:{if(G==="tuple"&&"components"in J)return Object.values(J.components).every((Y,q)=>{return X==="object"&&yW(Object.values(Q)[q],Y)});if(/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(G))return X==="number"||X==="bigint";if(/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(G))return X==="string"||Q instanceof Uint8Array;if(/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(G))return Array.isArray(Q)&&Q.every((Y)=>yW(Y,{...J,type:G.replace(/(\[[0-9]{0,}\])$/,"")}));return!1}}}function n4(Q,J,X){for(let G in Q){let Y=Q[G],q=J[G];if(Y.type==="tuple"&&q.type==="tuple"&&"components"in Y&&"components"in q)return n4(Y.components,q.components,X[G]);let $=[Y.type,q.type];if((()=>{if($.includes("address")&&$.includes("bytes20"))return!0;if($.includes("address")&&$.includes("string"))return lQ(X[G],{strict:!1});if($.includes("address")&&$.includes("bytes"))return lQ(X[G],{strict:!1});return!1})())return $}return}var EG=T(()=>{Z8(),OG(),KA(),VG()});function zA(Q){let{abi:J,args:X,functionName:G,data:Y}=Q,q=J[0];if(G){let W=LG({abi:J,args:X,name:G});if(!W)throw new sJ(G,{docsPath:$W});q=W}if(q.type!=="function")throw new sJ(void 0,{docsPath:$W});if(!q.outputs)throw new L5(q.name,{docsPath:$W});let $=g5(q.outputs,Y);if($&&$.length>1)return $;if($&&$.length===1)return $[0];return}var $W="/docs/contract/decodeFunctionResult",a4=T(()=>{Z8(),f5(),EG()});function NA(Q){let{abi:J,args:X,functionName:G}=Q,Y=J[0];if(G){let q=LG({abi:J,args:X,name:G});if(!q)throw new sJ(G,{docsPath:ZN});Y=q}if(Y.type!=="function")throw new sJ(void 0,{docsPath:ZN});return{abi:[Y],functionName:HG(MJ(Y))}}var ZN="/docs/contract/encodeFunctionData",UA=T(()=>{Z8(),VG(),XY(),EG()});function MA(Q){let{args:J}=Q,{abi:X,functionName:G}=(()=>{if(Q.abi.length===1&&Q.functionName?.startsWith("0x"))return Q;return NA(Q)})(),Y=X[0],q=G,$="inputs"in Y&&Y.inputs?qY(Y.inputs,J??[]):void 0;return v$([q,$??"0x"])}var e4=T(()=>{qX(),UA()});function r5(Q){if(typeof Q==="string")return{address:Q,type:"json-rpc"};return Q}var QD,s5,JD,i5=T(()=>{QD={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},s5={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},JD={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"}});function XD(Q){let{abi:J,data:X}=Q,G=yX(X,0,4);if(G==="0x")throw new H5;let Y=[...J||[],s5,JD].find((q)=>q.type==="error"&&G===HG(MJ(q)));if(!Y)throw new V5(G,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:Y,args:"inputs"in Y&&Y.inputs&&Y.inputs.length>0?g5(Y.inputs,yX(X,4)):void 0,errorName:Y.name}}var YD=T(()=>{i5(),Z8(),BG(),VG(),f5(),XY()}),nY=(Q,J,X)=>JSON.stringify(Q,(G,Y)=>{let q=typeof Y==="bigint"?Y.toString():Y;return typeof J==="function"?J(G,q):q},X);function TN({abiItem:Q,args:J,includeFunctionName:X=!0,includeName:G=!1}){if(!("name"in Q))return;if(!("inputs"in Q))return;if(!Q.inputs)return;return`${X?Q.name:""}(${Q.inputs.map((Y,q)=>`${G&&Y.name?`${Y.name}: `:""}${typeof J[q]==="object"?nY(J[q]):J[q]}`).join(", ")})`}var DA=()=>{},GD,qD,$D=T(()=>{GD={gwei:9,wei:18},qD={ether:-9,wei:9}});function WD(Q,J){let X=Q.toString(),G=X.startsWith("-");if(G)X=X.slice(1);X=X.padStart(J,"0");let[Y,q]=[X.slice(0,X.length-J),X.slice(X.length-J)];return q=q.replace(/(0+)$/,""),`${G?"-":""}${Y||"0"}${q?`.${q}`:""}`}function OA(Q,J="wei"){return WD(Q,GD[J])}var BA=T(()=>{$D()});function lJ(Q,J="wei"){return WD(Q,qD[J])}var jD=T(()=>{$D()});function xN(Q){return Q.reduce((J,{slot:X,value:G})=>{return`${J} ${X}: ${G}
|
|
19
|
+
`},"")}function RA(Q){return Q.reduce((J,{address:X,...G})=>{let Y=`${J} ${X}:
|
|
20
|
+
`;if(G.nonce)Y+=` nonce: ${G.nonce}
|
|
21
|
+
`;if(G.balance)Y+=` balance: ${G.balance}
|
|
22
|
+
`;if(G.code)Y+=` code: ${G.code}
|
|
23
|
+
`;if(G.state)Y+=` state:
|
|
24
|
+
`,Y+=xN(G.state);if(G.stateDiff)Y+=` stateDiff:
|
|
25
|
+
`,Y+=xN(G.stateDiff);return Y},` State Override:
|
|
26
|
+
`).slice(0,-1)}var KD,zD,ND=T(()=>{e0(),KD=class extends o{constructor({address:J}){super(`State for account "${J}" is set multiple times.`,{name:"AccountStateConflictError"})}},zD=class extends o{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}});function gN(Q){let J=Object.entries(Q).map(([G,Y])=>{if(Y===void 0||Y===!1)return null;return[G,Y]}).filter(Boolean),X=J.reduce((G,[Y])=>Math.max(G,Y.length),0);return J.map(([G,Y])=>` ${`${G}:`.padEnd(X+1)} ${Y}`).join(`
|
|
27
|
+
`)}var HA=()=>{},VA=(Q)=>Q,rq=(Q)=>Q,UD,LA,EA,wA,MD,DD,t5=T(()=>{i5(),YD(),XY(),DA(),EG(),BA(),jD(),Z8(),e0(),ND(),HA(),UD=class extends o{constructor(J,{account:X,docsPath:G,chain:Y,data:q,gas:$,gasPrice:W,maxFeePerGas:j,maxPriorityFeePerGas:K,nonce:z,to:N,value:U,stateOverride:M}){let D=X?r5(X):void 0,O=gN({from:D?.address,to:N,value:typeof U<"u"&&`${OA(U)} ${Y?.nativeCurrency?.symbol||"ETH"}`,data:q,gas:$,gasPrice:typeof W<"u"&&`${lJ(W)} gwei`,maxFeePerGas:typeof j<"u"&&`${lJ(j)} gwei`,maxPriorityFeePerGas:typeof K<"u"&&`${lJ(K)} gwei`,nonce:z});if(M)O+=`
|
|
28
|
+
${RA(M)}`;super(J.shortMessage,{cause:J,docsPath:G,metaMessages:[...J.metaMessages?[...J.metaMessages," "]:[],"Raw Call Arguments:",O].filter(Boolean),name:"CallExecutionError"});Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=J}},LA=class extends o{constructor(J,{abi:X,args:G,contractAddress:Y,docsPath:q,functionName:$,sender:W}){let j=LG({abi:X,args:G,name:$}),K=j?TN({abiItem:j,args:G,includeFunctionName:!1,includeName:!1}):void 0,z=j?MJ(j,{includeName:!0}):void 0,N=gN({address:Y&&VA(Y),function:z,args:K&&K!=="()"&&`${[...Array($?.length??0).keys()].map(()=>" ").join("")}${K}`,sender:W});super(J.shortMessage||`An unknown error occurred while executing the contract function "${$}".`,{cause:J,docsPath:q,metaMessages:[...J.metaMessages?[...J.metaMessages," "]:[],N&&"Contract Call:",N].filter(Boolean),name:"ContractFunctionExecutionError"});Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=X,this.args=G,this.cause=J,this.contractAddress=Y,this.functionName=$,this.sender=W}},EA=class extends o{constructor({abi:J,data:X,functionName:G,message:Y}){let q,$,W,j;if(X&&X!=="0x")try{$=XD({abi:J,data:X});let{abiItem:z,errorName:N,args:U}=$;if(N==="Error")j=U[0];else if(N==="Panic"){let[M]=U;j=QD[M]}else{let M=z?MJ(z,{includeName:!0}):void 0,D=z&&U?TN({abiItem:z,args:U,includeFunctionName:!1,includeName:!1}):void 0;W=[M?`Error: ${M}`:"",D&&D!=="()"?` ${[...Array(N?.length??0).keys()].map(()=>" ").join("")}${D}`:""]}}catch(z){q=z}else if(Y)j=Y;let K;if(q instanceof V5)K=q.signature,W=[`Unable to decode signature "${K}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${K}.`];super(j&&j!=="execution reverted"||K?[`The contract function "${G}" reverted with the following ${K?"signature":"reason"}:`,j||K].join(`
|
|
29
|
+
`):`The contract function "${G}" reverted.`,{cause:q,metaMessages:W,name:"ContractFunctionRevertedError"});Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=$,this.raw=X,this.reason=j,this.signature=K}},wA=class extends o{constructor({functionName:J}){super(`The contract function "${J}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${J}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}},MD=class extends o{constructor({factory:J}){super(`Deployment for counterfactual contract call failed${J?` for factory "${J}".`:""}`,{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}},DD=class extends o{constructor({data:J,message:X}){super(X||"",{name:"RawContractError"});Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=J}}}),lW,OD,n5=T(()=>{e0(),lW=class extends o{constructor({body:J,cause:X,details:G,headers:Y,status:q,url:$}){super("HTTP request failed.",{cause:X,details:G,metaMessages:[q&&`Status: ${q}`,`URL: ${rq($)}`,J&&`Request body: ${nY(J)}`].filter(Boolean),name:"HttpRequestError"});Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=J,this.headers=Y,this.status=q,this.url=$}},OD=class extends o{constructor({body:J,error:X,url:G}){super("RPC Request failed.",{cause:X,details:X.message,metaMessages:[`URL: ${rq(G)}`,`Request body: ${nY(J)}`],name:"RpcRequestError"});Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=X.code,this.data=X.data,this.url=G}}}),CA=-1,H8,V8,fN,hN,mN,yN,lN,uN,cN,pN,bN,oN,dN,rN,sN,iN,tN,nN,aN,eN,QU,JU,XU,YU,GU,qU,$U,AA=T(()=>{e0(),n5(),H8=class extends o{constructor(J,{code:X,docsPath:G,metaMessages:Y,name:q,shortMessage:$}){super($,{cause:J,docsPath:G,metaMessages:Y||J?.metaMessages,name:q||"RpcError"});Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=q||J.name,this.code=J instanceof OD?J.code:X??CA}},V8=class extends H8{constructor(J,X){super(J,X);Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=X.data}},fN=class Q extends H8{constructor(J){super(J,{code:Q.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}},Object.defineProperty(fN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700}),hN=class Q extends H8{constructor(J){super(J,{code:Q.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}},Object.defineProperty(hN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600}),mN=class Q extends H8{constructor(J,{method:X}={}){super(J,{code:Q.code,name:"MethodNotFoundRpcError",shortMessage:`The method${X?` "${X}"`:""} does not exist / is not available.`})}},Object.defineProperty(mN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601}),yN=class Q extends H8{constructor(J){super(J,{code:Q.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(`
|
|
30
|
+
`)})}},Object.defineProperty(yN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602}),lN=class Q extends H8{constructor(J){super(J,{code:Q.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}},Object.defineProperty(lN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603}),uN=class Q extends H8{constructor(J){super(J,{code:Q.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(`
|
|
31
|
+
`)})}},Object.defineProperty(uN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32000}),cN=class Q extends H8{constructor(J){super(J,{code:Q.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}},Object.defineProperty(cN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001}),pN=class Q extends H8{constructor(J){super(J,{code:Q.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}},Object.defineProperty(pN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002}),bN=class Q extends H8{constructor(J){super(J,{code:Q.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}},Object.defineProperty(bN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003}),oN=class Q extends H8{constructor(J,{method:X}={}){super(J,{code:Q.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${X?` "${X}"`:""} is not supported.`})}},Object.defineProperty(oN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004}),dN=class Q extends H8{constructor(J){super(J,{code:Q.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}},Object.defineProperty(dN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005}),rN=class Q extends H8{constructor(J){super(J,{code:Q.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}},Object.defineProperty(rN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006}),sN=class Q extends V8{constructor(J){super(J,{code:Q.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}},Object.defineProperty(sN,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001}),iN=class Q extends V8{constructor(J){super(J,{code:Q.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}},Object.defineProperty(iN,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100}),tN=class Q extends V8{constructor(J,{method:X}={}){super(J,{code:Q.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${X?` " ${X}"`:""}.`})}},Object.defineProperty(tN,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200}),nN=class Q extends V8{constructor(J){super(J,{code:Q.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}},Object.defineProperty(nN,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900}),aN=class Q extends V8{constructor(J){super(J,{code:Q.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}},Object.defineProperty(aN,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901}),eN=class Q extends V8{constructor(J){super(J,{code:Q.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}},Object.defineProperty(eN,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902}),QU=class Q extends V8{constructor(J){super(J,{code:Q.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}},Object.defineProperty(QU,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700}),JU=class Q extends V8{constructor(J){super(J,{code:Q.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}},Object.defineProperty(JU,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710}),XU=class Q extends V8{constructor(J){super(J,{code:Q.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}},Object.defineProperty(XU,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720}),YU=class Q extends V8{constructor(J){super(J,{code:Q.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}},Object.defineProperty(YU,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730}),GU=class Q extends V8{constructor(J){super(J,{code:Q.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}},Object.defineProperty(GU,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740}),qU=class Q extends V8{constructor(J){super(J,{code:Q.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}},Object.defineProperty(qU,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750}),$U=class Q extends V8{constructor(J){super(J,{code:Q.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}},Object.defineProperty($U,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760})}),IA="0.1.1";function SA(){return IA}var vA=()=>{};function BD(Q,J){if(J?.(Q))return Q;if(Q&&typeof Q==="object"&&"cause"in Q&&Q.cause)return BD(Q.cause,J);return J?null:Q}var PX,_A=T(()=>{vA(),PX=class Q extends Error{static setStaticOptions(J){Q.prototype.docsOrigin=J.docsOrigin,Q.prototype.showVersion=J.showVersion,Q.prototype.version=J.version}constructor(J,X={}){let G=(()=>{if(X.cause instanceof Q){if(X.cause.details)return X.cause.details;if(X.cause.shortMessage)return X.cause.shortMessage}if(X.cause&&"details"in X.cause&&typeof X.cause.details==="string")return X.cause.details;if(X.cause?.message)return X.cause.message;return X.details})(),Y=(()=>{if(X.cause instanceof Q)return X.cause.docsPath||X.docsPath;return X.docsPath})(),q=X.docsOrigin??Q.prototype.docsOrigin,$=`${q}${Y??""}`,W=Boolean(X.version??Q.prototype.showVersion),j=X.version??Q.prototype.version,K=[J||"An error occurred.",...X.metaMessages?["",...X.metaMessages]:[],...G||Y||W?["",G?`Details: ${G}`:void 0,Y?`See: ${$}`:void 0,W?`Version: ${j}`:void 0]:[]].filter((z)=>typeof z==="string").join(`
|
|
32
|
+
`);super(K,X.cause?{cause:X.cause}:void 0);Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsOrigin",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"showVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.cause=X.cause,this.details=G,this.docs=$,this.docsOrigin=q,this.docsPath=Y,this.shortMessage=J,this.showVersion=W,this.version=j}walk(J){return BD(this,J)}},Object.defineProperty(PX,"defaultStaticOptions",{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:"https://oxlib.sh",showVersion:!1,version:`ox@${SA()}`}}),(()=>{PX.setStaticOptions(PX.defaultStaticOptions)})()});function FA(Q,J={}){let{dir:X,size:G=32}=J;if(G===0)return Q;let Y=Q.replace("0x","");if(Y.length>G*2)throw new HD({size:Math.ceil(Y.length/2),targetSize:G,type:"Hex"});return`0x${Y[X==="right"?"padEnd":"padStart"](G*2,"0")}`}var PA=T(()=>{a5()});function FQ(Q,J={}){let{signed:X,size:G}=J,Y=BigInt(Q),q;if(G)if(X)q=(1n<<BigInt(G)*8n-1n)-1n;else q=2n**(BigInt(G)*8n)-1n;else if(typeof Q==="number")q=BigInt(Number.MAX_SAFE_INTEGER);let $=typeof q==="bigint"&&X?-q-1n:0;if(q&&Y>q||Y<$){let j=typeof Q==="bigint"?"n":"";throw new RD({max:q?`${q}${j}`:void 0,min:`${$}${j}`,signed:X,size:G,value:`${Q}${j}`})}let W=`0x${(X&&Y<0?BigInt.asUintN(G*8,BigInt(Y)):Y).toString(16)}`;if(G)return kA(W,G);return W}function kA(Q,J){return FA(Q,{dir:"left",size:J})}var RD,HD,a5=T(()=>{_A(),PA(),RD=class extends PX{constructor({max:J,min:X,signed:G,size:Y,value:q}){super(`Number \`${q}\` is not in safe${Y?` ${Y*8}-bit`:""}${G?" signed":" unsigned"} integer range ${J?`(\`${X}\` to \`${J}\`)`:`(above \`${X}\`)`}`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}},HD=class extends PX{constructor({size:J,targetSize:X,type:G}){super(`${G.charAt(0).toUpperCase()}${G.slice(1).toLowerCase()} size (\`${J}\`) exceeds padding size (\`${X}\`).`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}});function ZA(Q){return{address:Q.address,amount:FQ(Q.amount),index:FQ(Q.index),validatorIndex:FQ(Q.validatorIndex)}}var TA=T(()=>{a5()});function xA(Q){return{...typeof Q.baseFeePerGas==="bigint"&&{baseFeePerGas:FQ(Q.baseFeePerGas)},...typeof Q.blobBaseFee==="bigint"&&{blobBaseFee:FQ(Q.blobBaseFee)},...typeof Q.feeRecipient==="string"&&{feeRecipient:Q.feeRecipient},...typeof Q.gasLimit==="bigint"&&{gasLimit:FQ(Q.gasLimit)},...typeof Q.number==="bigint"&&{number:FQ(Q.number)},...typeof Q.prevRandao==="bigint"&&{prevRandao:FQ(Q.prevRandao)},...typeof Q.time==="bigint"&&{time:FQ(Q.time)},...Q.withdrawals&&{withdrawals:Q.withdrawals.map(ZA)}}}var gA=T(()=>{a5(),TA()}),uW,sq,WW,fA,hA,VD=T(()=>{uW=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"}],sq=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}],WW=[{inputs:[{name:"dns",type:"bytes"}],name:"DNSDecodingFailed",type:"error"},{inputs:[{name:"ens",type:"string"}],name:"DNSEncodingFailed",type:"error"},{inputs:[],name:"EmptyAddress",type:"error"},{inputs:[{name:"status",type:"uint16"},{name:"message",type:"string"}],name:"HttpError",type:"error"},{inputs:[],name:"InvalidBatchGatewayResponse",type:"error"},{inputs:[{name:"errorData",type:"bytes"}],name:"ResolverError",type:"error"},{inputs:[{name:"name",type:"bytes"},{name:"resolver",type:"address"}],name:"ResolverNotContract",type:"error"},{inputs:[{name:"name",type:"bytes"}],name:"ResolverNotFound",type:"error"},{inputs:[{name:"primary",type:"string"},{name:"primaryAddress",type:"bytes"}],name:"ReverseAddressMismatch",type:"error"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"}],name:"UnsupportedResolverProfile",type:"error"}],fA=[...WW,{name:"resolveWithGateways",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"},{name:"gateways",type:"string[]"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],hA=[...WW,{name:"reverseWithGateways",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"},{type:"uint256",name:"coinType"},{type:"string[]",name:"gateways"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolver"},{type:"address",name:"reverseResolver"}]}]}),mA="0x82ad56cb",yA="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",lA="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",uA="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033",iq,e5,LD=T(()=>{e0(),iq=class extends o{constructor({blockNumber:J,chain:X,contract:G}){super(`Chain "${X.name}" does not support contract "${G.name}".`,{metaMessages:["This could be due to any of the following:",...J&&G.blockCreated&&G.blockCreated>J?[`- The contract "${G.name}" was not deployed until block ${G.blockCreated} (current block ${J}).`]:[`- The chain does not have the contract "${G.name}" configured.`]],name:"ChainDoesNotSupportContract"})}},e5=class extends o{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}}});function ED(Q){let{abi:J,args:X,bytecode:G}=Q;if(!X||X.length===0)return G;let Y=J.find(($)=>("type"in $)&&$.type==="constructor");if(!Y)throw new fM({docsPath:jW});if(!("inputs"in Y))throw new _W({docsPath:jW});if(!Y.inputs||Y.inputs.length===0)throw new _W({docsPath:jW});let q=qY(Y.inputs,X);return v$([G,q])}var jW="/docs/contract/encodeDeployData",cA=T(()=>{Z8(),qX()});function pA({blockNumber:Q,chain:J,contract:X}){let G=J?.contracts?.[X];if(!G)throw new iq({chain:J,contract:{name:X}});if(Q&&G.blockCreated&&G.blockCreated>Q)throw new iq({blockNumber:Q,chain:J,contract:{name:X,blockCreated:G.blockCreated}});return G.address}var bA=T(()=>{LD()}),uJ,aY,tq,nq,aq,eq,Q$,J$,X$,Y$,eY,Qj,Jj=T(()=>{jD(),e0(),uJ=class extends o{constructor({cause:J,message:X}={}){let G=X?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${G?`with reason: ${G}`:"for an unknown reason"}.`,{cause:J,name:"ExecutionRevertedError"})}},Object.defineProperty(uJ,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(uJ,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted|gas required exceeds allowance/}),aY=class extends o{constructor({cause:J,maxFeePerGas:X}={}){super(`The fee cap (\`maxFeePerGas\`${X?` = ${lJ(X)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:J,name:"FeeCapTooHighError"})}},Object.defineProperty(aY,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/}),tq=class extends o{constructor({cause:J,maxFeePerGas:X}={}){super(`The fee cap (\`maxFeePerGas\`${X?` = ${lJ(X)}`:""} gwei) cannot be lower than the block base fee.`,{cause:J,name:"FeeCapTooLowError"})}},Object.defineProperty(tq,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/}),nq=class extends o{constructor({cause:J,nonce:X}={}){super(`Nonce provided for the transaction ${X?`(${X}) `:""}is higher than the next one expected.`,{cause:J,name:"NonceTooHighError"})}},Object.defineProperty(nq,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/}),aq=class extends o{constructor({cause:J,nonce:X}={}){super([`Nonce provided for the transaction ${X?`(${X}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(`
|
|
33
|
+
`),{cause:J,name:"NonceTooLowError"})}},Object.defineProperty(aq,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/}),eq=class extends o{constructor({cause:J,nonce:X}={}){super(`Nonce provided for the transaction ${X?`(${X}) `:""}exceeds the maximum allowed nonce.`,{cause:J,name:"NonceMaxValueError"})}},Object.defineProperty(eq,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/}),Q$=class extends o{constructor({cause:J}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(`
|
|
34
|
+
`),{cause:J,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}},Object.defineProperty(Q$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/}),J$=class extends o{constructor({cause:J,gas:X}={}){super(`The amount of gas ${X?`(${X}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:J,name:"IntrinsicGasTooHighError"})}},Object.defineProperty(J$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/}),X$=class extends o{constructor({cause:J,gas:X}={}){super(`The amount of gas ${X?`(${X}) `:""}provided for the transaction is too low.`,{cause:J,name:"IntrinsicGasTooLowError"})}},Object.defineProperty(X$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/}),Y$=class extends o{constructor({cause:J}){super("The transaction type is not supported for this chain.",{cause:J,name:"TransactionTypeNotSupportedError"})}},Object.defineProperty(Y$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/}),eY=class extends o{constructor({cause:J,maxPriorityFeePerGas:X,maxFeePerGas:G}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${X?` = ${lJ(X)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${G?` = ${lJ(G)} gwei`:""}).`].join(`
|
|
35
|
+
`),{cause:J,name:"TipAboveFeeCapError"})}},Object.defineProperty(eY,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/}),Qj=class extends o{constructor({cause:J}){super(`An error occurred while executing: ${J?.shortMessage}`,{cause:J,name:"UnknownNodeError"})}}});function oA(Q,J){let X=(Q.details||"").toLowerCase(),G=Q instanceof o?Q.walk((Y)=>Y?.code===uJ.code):Q;if(G instanceof o)return new uJ({cause:Q,message:G.details});if(uJ.nodeMessage.test(X))return new uJ({cause:Q,message:Q.details});if(aY.nodeMessage.test(X))return new aY({cause:Q,maxFeePerGas:J?.maxFeePerGas});if(tq.nodeMessage.test(X))return new tq({cause:Q,maxFeePerGas:J?.maxFeePerGas});if(nq.nodeMessage.test(X))return new nq({cause:Q,nonce:J?.nonce});if(aq.nodeMessage.test(X))return new aq({cause:Q,nonce:J?.nonce});if(eq.nodeMessage.test(X))return new eq({cause:Q,nonce:J?.nonce});if(Q$.nodeMessage.test(X))return new Q$({cause:Q});if(J$.nodeMessage.test(X))return new J$({cause:Q,gas:J?.gas});if(X$.nodeMessage.test(X))return new X$({cause:Q,gas:J?.gas});if(Y$.nodeMessage.test(X))return new Y$({cause:Q});if(eY.nodeMessage.test(X))return new eY({cause:Q,maxFeePerGas:J?.maxFeePerGas,maxPriorityFeePerGas:J?.maxPriorityFeePerGas});return new Qj({cause:Q})}var dA=T(()=>{e0(),Jj()});function rA(Q,{docsPath:J,...X}){let G=(()=>{let Y=oA(Q,X);if(Y instanceof Qj)return Q;return Y})();return new UD(G,{docsPath:J,...X})}var sA=T(()=>{t5(),Jj(),dA()});function iA(Q,{format:J}){if(!J)return{};let X={};function G(q){let $=Object.keys(q);for(let W of $){if(W in Q)X[W]=Q[W];if(q[W]&&typeof q[W]==="object"&&!Array.isArray(q[W]))G(q[W])}}let Y=J(Q||{});return G(Y),X}function tA(Q,J){let X={};if(typeof Q.authorizationList<"u")X.authorizationList=nA(Q.authorizationList);if(typeof Q.accessList<"u")X.accessList=Q.accessList;if(typeof Q.blobVersionedHashes<"u")X.blobVersionedHashes=Q.blobVersionedHashes;if(typeof Q.blobs<"u")if(typeof Q.blobs[0]!=="string")X.blobs=Q.blobs.map((G)=>yQ(G));else X.blobs=Q.blobs;if(typeof Q.data<"u")X.data=Q.data;if(Q.account)X.from=Q.account.address;if(typeof Q.from<"u")X.from=Q.from;if(typeof Q.gas<"u")X.gas=F0(Q.gas);if(typeof Q.gasPrice<"u")X.gasPrice=F0(Q.gasPrice);if(typeof Q.maxFeePerBlobGas<"u")X.maxFeePerBlobGas=F0(Q.maxFeePerBlobGas);if(typeof Q.maxFeePerGas<"u")X.maxFeePerGas=F0(Q.maxFeePerGas);if(typeof Q.maxPriorityFeePerGas<"u")X.maxPriorityFeePerGas=F0(Q.maxPriorityFeePerGas);if(typeof Q.nonce<"u")X.nonce=F0(Q.nonce);if(typeof Q.to<"u")X.to=Q.to;if(typeof Q.type<"u")X.type=wD[Q.type];if(typeof Q.value<"u")X.value=F0(Q.value);return X}function nA(Q){return Q.map((J)=>({address:J.address,r:J.r?F0(BigInt(J.r)):J.r,s:J.s?F0(BigInt(J.s)):J.s,chainId:F0(J.chainId),nonce:F0(J.nonce),...typeof J.yParity<"u"?{yParity:F0(J.yParity)}:{},...typeof J.v<"u"&&typeof J.yParity>"u"?{v:F0(J.v)}:{}}))}var wD,aA=T(()=>{HJ(),wD={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"}});function eA(){let Q=()=>{return},J=()=>{return};return{promise:new Promise((X,G)=>{Q=X,J=G}),resolve:Q,reject:J}}function QI({fn:Q,id:J,shouldSplitBatch:X,wait:G=0,sort:Y}){let q=async()=>{let z=j();$();let N=z.map(({args:U})=>U);if(N.length===0)return;Q(N).then((U)=>{if(Y&&Array.isArray(U))U.sort(Y);for(let M=0;M<z.length;M++){let{resolve:D}=z[M];D?.([U[M],U])}}).catch((U)=>{for(let M=0;M<z.length;M++){let{reject:D}=z[M];D?.(U)}})},$=()=>mq.delete(J),W=()=>j().map(({args:z})=>z),j=()=>mq.get(J)||[],K=(z)=>mq.set(J,[...j(),z]);return{flush:$,async schedule(z){let{promise:N,resolve:U,reject:M}=eA();if(X?.([...W(),z]))q();if(j().length>0)return K({args:z,resolve:U,reject:M}),N;return K({args:z,resolve:U,reject:M}),setTimeout(q,G),N}}}var mq,JI=T(()=>{mq=new Map});function WU(Q){if(!Q||Q.length===0)return;return Q.reduce((J,{slot:X,value:G})=>{if(X.length!==66)throw new PW({size:X.length,targetSize:66,type:"hex"});if(G.length!==66)throw new PW({size:G.length,targetSize:66,type:"hex"});return J[X]=G,J},{})}function XI(Q){let{balance:J,nonce:X,state:G,stateDiff:Y,code:q}=Q,$={};if(q!==void 0)$.code=q;if(J!==void 0)$.balance=F0(J);if(X!==void 0)$.nonce=F0(X);if(G!==void 0)$.state=WU(G);if(Y!==void 0){if($.state)throw new zD;$.stateDiff=WU(Y)}return $}function YI(Q){if(!Q)return;let J={};for(let{address:X,...G}of Q){if(!lQ(X,{strict:!1}))throw new iJ({address:X});if(J[X])throw new KD({address:X});J[X]=XI(G)}return J}var GI=T(()=>{C$(),I5(),ND(),OG(),HJ()}),qI,$I,WI,jI,KI,zI,NI,UI,MI,DI,OI,BI,RI,HI,VI,LI,EI,wI,CI,AI,II,SI,vI,_I,FI,PI,kI,ZI,TI,xI,gI,fI,hI,mI,yI,lI,uI,cI,pI,bI,oI,dI,rI,sI,iI,tI,nI,aI,eI,QS,JS,XS,YS,GS,qS,$S,WS,jS,KS,zS,NS,US,MS,DS,OS,BS,RS,HS,VS,LS,ES,wS,CS,AS,IS,SS,vS,_S,FS,PS,kS,ZS,TS,xS,gS,fS,hS,mS,yS,lS,uS,cS,pS,bS,oS,CD,dS=T(()=>{qI=2n**(8n-1n)-1n,$I=2n**(16n-1n)-1n,WI=2n**(24n-1n)-1n,jI=2n**(32n-1n)-1n,KI=2n**(40n-1n)-1n,zI=2n**(48n-1n)-1n,NI=2n**(56n-1n)-1n,UI=2n**(64n-1n)-1n,MI=2n**(72n-1n)-1n,DI=2n**(80n-1n)-1n,OI=2n**(88n-1n)-1n,BI=2n**(96n-1n)-1n,RI=2n**(104n-1n)-1n,HI=2n**(112n-1n)-1n,VI=2n**(120n-1n)-1n,LI=2n**(128n-1n)-1n,EI=2n**(136n-1n)-1n,wI=2n**(144n-1n)-1n,CI=2n**(152n-1n)-1n,AI=2n**(160n-1n)-1n,II=2n**(168n-1n)-1n,SI=2n**(176n-1n)-1n,vI=2n**(184n-1n)-1n,_I=2n**(192n-1n)-1n,FI=2n**(200n-1n)-1n,PI=2n**(208n-1n)-1n,kI=2n**(216n-1n)-1n,ZI=2n**(224n-1n)-1n,TI=2n**(232n-1n)-1n,xI=2n**(240n-1n)-1n,gI=2n**(248n-1n)-1n,fI=2n**(256n-1n)-1n,hI=-(2n**(8n-1n)),mI=-(2n**(16n-1n)),yI=-(2n**(24n-1n)),lI=-(2n**(32n-1n)),uI=-(2n**(40n-1n)),cI=-(2n**(48n-1n)),pI=-(2n**(56n-1n)),bI=-(2n**(64n-1n)),oI=-(2n**(72n-1n)),dI=-(2n**(80n-1n)),rI=-(2n**(88n-1n)),sI=-(2n**(96n-1n)),iI=-(2n**(104n-1n)),tI=-(2n**(112n-1n)),nI=-(2n**(120n-1n)),aI=-(2n**(128n-1n)),eI=-(2n**(136n-1n)),QS=-(2n**(144n-1n)),JS=-(2n**(152n-1n)),XS=-(2n**(160n-1n)),YS=-(2n**(168n-1n)),GS=-(2n**(176n-1n)),qS=-(2n**(184n-1n)),$S=-(2n**(192n-1n)),WS=-(2n**(200n-1n)),jS=-(2n**(208n-1n)),KS=-(2n**(216n-1n)),zS=-(2n**(224n-1n)),NS=-(2n**(232n-1n)),US=-(2n**(240n-1n)),MS=-(2n**(248n-1n)),DS=-(2n**(256n-1n)),OS=2n**8n-1n,BS=2n**16n-1n,RS=2n**24n-1n,HS=2n**32n-1n,VS=2n**40n-1n,LS=2n**48n-1n,ES=2n**56n-1n,wS=2n**64n-1n,CS=2n**72n-1n,AS=2n**80n-1n,IS=2n**88n-1n,SS=2n**96n-1n,vS=2n**104n-1n,_S=2n**112n-1n,FS=2n**120n-1n,PS=2n**128n-1n,kS=2n**136n-1n,ZS=2n**144n-1n,TS=2n**152n-1n,xS=2n**160n-1n,gS=2n**168n-1n,fS=2n**176n-1n,hS=2n**184n-1n,mS=2n**192n-1n,yS=2n**200n-1n,lS=2n**208n-1n,uS=2n**216n-1n,cS=2n**224n-1n,pS=2n**232n-1n,bS=2n**240n-1n,oS=2n**248n-1n,CD=2n**256n-1n});function rS(Q){let{account:J,maxFeePerGas:X,maxPriorityFeePerGas:G,to:Y}=Q,q=J?r5(J):void 0;if(q&&!lQ(q.address))throw new iJ({address:q.address});if(Y&&!lQ(Y))throw new iJ({address:Y});if(X&&X>CD)throw new aY({maxFeePerGas:X});if(G&&X&&G>X)throw new eY({maxFeePerGas:X,maxPriorityFeePerGas:G})}var sS=T(()=>{dS(),C$(),Jj(),OG()}),AD,ID,SD,iS=T(()=>{e0(),AD=class extends o{constructor({callbackSelector:J,cause:X,data:G,extraData:Y,sender:q,urls:$}){super(X.shortMessage||"An error occurred while fetching for an offchain result.",{cause:X,metaMessages:[...X.metaMessages||[],X.metaMessages?.length?"":[],"Offchain Gateway Call:",$&&[" Gateway URL(s):",...$.map((W)=>` ${rq(W)}`)],` Sender: ${q}`,` Data: ${G}`,` Callback selector: ${J}`,` Extra data: ${Y}`].flat(),name:"OffchainLookupError"})}},ID=class extends o{constructor({result:J,url:X}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${rq(X)}`,`Response: ${nY(J)}`],name:"OffchainLookupResponseMalformedError"})}},SD=class extends o{constructor({sender:J,to:X}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${X}`,`OffchainLookup sender address: ${J}`],name:"OffchainLookupSenderMismatchError"})}}});function tS(Q,J){if(!lQ(Q,{strict:!1}))throw new iJ({address:Q});if(!lQ(J,{strict:!1}))throw new iJ({address:J});return Q.toLowerCase()===J.toLowerCase()}var nS=T(()=>{C$(),OG()});function aS(Q){let{abi:J,data:X}=Q,G=yX(X,0,4),Y=J.find((q)=>q.type==="function"&&G===HG(MJ(q)));if(!Y)throw new cM(G,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:Y.name,args:"inputs"in Y&&Y.inputs&&Y.inputs.length>0?g5(Y.inputs,yX(X,4)):void 0}}var eS=T(()=>{Z8(),BG(),VG(),f5(),XY()});function jU(Q){let{abi:J,errorName:X,args:G}=Q,Y=J[0];if(X){let j=LG({abi:J,args:G,name:X});if(!j)throw new FW(X,{docsPath:KW});Y=j}if(Y.type!=="error")throw new FW(void 0,{docsPath:KW});let q=MJ(Y),$=HG(q),W="0x";if(G&&G.length>0){if(!Y.inputs)throw new uM(Y.name,{docsPath:KW});W=qY(Y.inputs,G)}return v$([$,W])}var KW="/docs/contract/encodeErrorResult",Q3=T(()=>{Z8(),VG(),qX(),XY(),EG()});function J3(Q){let{abi:J,functionName:X,result:G}=Q,Y=J[0];if(X){let $=LG({abi:J,name:X});if(!$)throw new sJ(X,{docsPath:zW});Y=$}if(Y.type!=="function")throw new sJ(void 0,{docsPath:zW});if(!Y.outputs)throw new L5(Y.name,{docsPath:zW});let q=(()=>{if(Y.outputs.length===0)return[];if(Y.outputs.length===1)return[G];if(Array.isArray(G))return G;throw new E5(G)})();return qY(Y.outputs,q)}var zW="/docs/contract/encodeFunctionResult",X3=T(()=>{Z8(),qX(),EG()});async function vD(Q){let{data:J,ccipRequest:X}=Q,{args:[G]}=aS({abi:sq,data:J}),Y=[],q=[];return await Promise.all(G.map(async($,W)=>{try{q[W]=$.urls.includes(_D)?await vD({data:$.data,ccipRequest:X}):await X($),Y[W]=!1}catch(j){Y[W]=!0,q[W]=Y3(j)}})),J3({abi:sq,functionName:"query",result:[Y,q]})}function Y3(Q){if(Q.name==="HttpRequestError"&&Q.status)return jU({abi:sq,errorName:"HttpError",args:[Q.status,Q.shortMessage]});return jU({abi:[s5],errorName:"Error",args:["shortMessage"in Q?Q.shortMessage:Q.message]})}var _D="x-batch-gateway:true",G3=T(()=>{VD(),i5(),eS(),Q3(),X3()}),FD={};QQ(FD,{offchainLookupSignature:()=>$3,offchainLookupAbiItem:()=>Xj,offchainLookup:()=>q3,ccipRequest:()=>PD});async function q3(Q,{blockNumber:J,blockTag:X,data:G,to:Y}){let{args:q}=XD({data:G,abi:[Xj]}),[$,W,j,K,z]=q,{ccipRead:N}=Q,U=N&&typeof N?.request==="function"?N.request:PD;try{if(!tS(Y,$))throw new SD({sender:$,to:Y});let M=W.includes(_D)?await vD({data:j,ccipRequest:U}):await U({data:j,sender:$,urls:W}),{data:D}=await j3(Q,{blockNumber:J,blockTag:X,data:tJ([K,qY([{type:"bytes"},{type:"bytes"}],[M,z])]),to:Y});return D}catch(M){throw new AD({callbackSelector:K,cause:M,data:G,extraData:z,sender:$,urls:W})}}async function PD({data:Q,sender:J,urls:X}){let G=Error("An unknown error occurred.");for(let Y=0;Y<X.length;Y++){let q=X[Y],$=q.includes("{data}")?"GET":"POST",W=$==="POST"?{data:Q,sender:J}:void 0,j=$==="POST"?{"Content-Type":"application/json"}:{};try{let K=await fetch(q.replace("{sender}",J.toLowerCase()).replace("{data}",Q),{body:JSON.stringify(W),headers:j,method:$}),z;if(K.headers.get("Content-Type")?.startsWith("application/json"))z=(await K.json()).data;else z=await K.text();if(!K.ok){G=new lW({body:W,details:z?.error?nY(z.error):K.statusText,headers:K.headers,status:K.status,url:q});continue}if(!YY(z)){G=new ID({result:z,url:q});continue}return z}catch(K){G=new lW({body:W,details:K.message,url:q})}}throw G}var $3="0x556f1830",Xj,W3=T(()=>{ZD(),iS(),n5(),YD(),qX(),nS(),G3(),Xj={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]}});async function j3(Q,J){let{account:X=Q.account,authorizationList:G,batch:Y=Boolean(Q.batch?.multicall),blockNumber:q,blockTag:$=Q.experimental_blockTag??"latest",accessList:W,blobs:j,blockOverrides:K,code:z,data:N,factory:U,factoryData:M,gas:D,gasPrice:O,maxFeePerBlobGas:w,maxFeePerGas:C,maxPriorityFeePerGas:I,nonce:H,to:E,value:A,stateOverride:v,...P}=J,c=X?r5(X):void 0;if(z&&(U||M))throw new o("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(z&&E)throw new o("Cannot provide both `code` & `to` as parameters.");let h=z&&N,g=U&&M&&E&&N,s=h||g,i=(()=>{if(h)return kD({code:z,data:N});if(g)return N3({data:N,factory:U,factoryData:M,to:E});return N})();try{rS(J);let H0=(typeof q==="bigint"?F0(q):void 0)||$,a=K?xA(K):void 0,R=YI(v),S=Q.chain?.formatters?.transactionRequest?.format,f=(S||tA)({...iA(P,{format:S}),accessList:W,account:c,authorizationList:G,blobs:j,data:i,gas:D,gasPrice:O,maxFeePerBlobGas:w,maxFeePerGas:C,maxPriorityFeePerGas:I,nonce:H,to:s?void 0:E,value:A},"call");if(Y&&K3({request:f})&&!R&&!a)try{return await z3(Q,{...f,blockNumber:q,blockTag:$})}catch(b){if(!(b instanceof e5)&&!(b instanceof iq))throw b}let n=(()=>{let b=[f,H0];if(R&&a)return[...b,R,a];if(R)return[...b,R];if(a)return[...b,{},a];return b})(),u=await Q.request({method:"eth_call",params:n});if(u==="0x")return{data:void 0};return{data:u}}catch(H0){let a=U3(H0),{offchainLookup:R,offchainLookupSignature:S}=await Promise.resolve().then(()=>(W3(),FD));if(Q.ccipRead!==!1&&a?.slice(0,10)===S&&E)return{data:await R(Q,{data:a,to:E})};if(s&&a?.slice(0,10)==="0x101bb98d")throw new MD({factory:U});throw rA(H0,{...J,account:c,chain:Q.chain})}}function K3({request:Q}){let{data:J,to:X,...G}=Q;if(!J)return!1;if(J.startsWith(mA))return!1;if(!X)return!1;if(Object.values(G).filter((Y)=>typeof Y<"u").length>0)return!1;return!0}async function z3(Q,J){let{batchSize:X=1024,deployless:G=!1,wait:Y=0}=typeof Q.batch?.multicall==="object"?Q.batch.multicall:{},{blockNumber:q,blockTag:$=Q.experimental_blockTag??"latest",data:W,to:j}=J,K=(()=>{if(G)return null;if(J.multicallAddress)return J.multicallAddress;if(Q.chain)return pA({blockNumber:q,chain:Q.chain,contract:"multicall3"});throw new e5})(),z=(typeof q==="bigint"?F0(q):void 0)||$,{schedule:N}=QI({id:`${Q.uid}.${z}`,wait:Y,shouldSplitBatch(D){return D.reduce((O,{data:w})=>O+(w.length-2),0)>X*2},fn:async(D)=>{let O=D.map((I)=>({allowFailure:!0,callData:I.data,target:I.to})),w=MA({abi:uW,args:[O],functionName:"aggregate3"}),C=await Q.request({method:"eth_call",params:[{...K===null?{data:kD({code:uA,data:w})}:{to:K,data:w}},z]});return zA({abi:uW,args:[O],functionName:"aggregate3",data:C||"0x"})}}),[{returnData:U,success:M}]=await N({data:W,to:j});if(!M)throw new DD({data:U});if(U==="0x")return{data:void 0};return{data:U}}function kD(Q){let{code:J,data:X}=Q;return ED({abi:d4(["constructor(bytes, bytes)"]),bytecode:yA,args:[J,X]})}function N3(Q){let{data:J,factory:X,factoryData:G,to:Y}=Q;return ED({abi:d4(["constructor(address, bytes, address, bytes)"]),bytecode:lA,args:[Y,J,X,G]})}function U3(Q){if(!(Q instanceof o))return;let J=Q.walk();return typeof J?.data==="object"?J.data?.data:J.data}var ZD=T(()=>{r4(),gA(),VD(),e0(),LD(),t5(),a4(),cA(),e4(),bA(),HJ(),sA(),aA(),JI(),GI(),sS()}),L={};QQ(L,{xor:()=>iV,xid:()=>HV,void:()=>pV,uuidv7:()=>zV,uuidv6:()=>KV,uuidv4:()=>jV,uuid:()=>WV,util:()=>M0,url:()=>NV,uppercase:()=>f$,unknown:()=>QX,union:()=>U9,undefined:()=>uV,ulid:()=>RV,uint64:()=>yV,uint32:()=>fV,tuple:()=>SK,trim:()=>c$,treeifyError:()=>sD,transform:()=>D9,toUpperCase:()=>b$,toLowerCase:()=>p$,toJSONSchema:()=>mH,templateLiteral:()=>jL,symbol:()=>lV,superRefine:()=>eK,success:()=>qL,stringbool:()=>OL,stringFormat:()=>FV,string:()=>z$,strictObject:()=>rV,startsWith:()=>m$,slugify:()=>o$,size:()=>ZG,setErrorMap:()=>kF,set:()=>QL,safeParseAsync:()=>tH,safeParse:()=>iH,safeEncodeAsync:()=>YV,safeEncode:()=>JV,safeDecodeAsync:()=>GV,safeDecode:()=>XV,registry:()=>Pj,regexes:()=>jX,regex:()=>x$,refine:()=>aK,record:()=>vK,readonly:()=>dK,property:()=>JK,promise:()=>KL,prettifyError:()=>tD,preprocess:()=>RL,prefault:()=>yK,positive:()=>nj,pipe:()=>GG,partialRecord:()=>nV,parseAsync:()=>sH,parse:()=>rH,overwrite:()=>dQ,optional:()=>XG,object:()=>dV,number:()=>zK,nullish:()=>GL,nullable:()=>YG,null:()=>OK,normalize:()=>u$,nonpositive:()=>ej,nonoptional:()=>lK,nonnegative:()=>QK,never:()=>z9,negative:()=>aj,nativeEnum:()=>JL,nanoid:()=>DV,nan:()=>$L,multipleOf:()=>cX,minSize:()=>BJ,minLength:()=>eJ,mime:()=>l$,meta:()=>ML,maxSize:()=>$Y,maxLength:()=>TG,map:()=>eV,mac:()=>EV,lte:()=>u8,lt:()=>DJ,lowercase:()=>g$,looseRecord:()=>aV,looseObject:()=>sV,locales:()=>_j,literal:()=>XL,length:()=>xG,lazy:()=>iK,ksuid:()=>VV,keyof:()=>oV,jwt:()=>_V,json:()=>BL,iso:()=>GK,ipv6:()=>wV,ipv4:()=>LV,intersection:()=>AK,int64:()=>mV,int32:()=>gV,int:()=>N$,instanceof:()=>DL,includes:()=>h$,httpUrl:()=>UV,hostname:()=>PV,hex:()=>kV,hash:()=>ZV,guid:()=>$V,gte:()=>w8,gt:()=>OJ,globalRegistry:()=>l8,getErrorMap:()=>ZF,function:()=>U$,fromJSONSchema:()=>fF,formatError:()=>Wj,float64:()=>xV,float32:()=>TV,flattenError:()=>$j,file:()=>YL,exactOptional:()=>xK,enum:()=>M9,endsWith:()=>y$,encodeAsync:()=>eH,encode:()=>nH,emoji:()=>MV,email:()=>qV,e164:()=>vV,discriminatedUnion:()=>tV,describe:()=>UL,decodeAsync:()=>QV,decode:()=>aH,date:()=>bV,custom:()=>NL,cuid2:()=>BV,cuid:()=>OV,core:()=>TD,config:()=>$8,coerce:()=>VL,codec:()=>WL,clone:()=>b8,cidrv6:()=>AV,cidrv4:()=>CV,check:()=>zL,catch:()=>pK,boolean:()=>NK,bigint:()=>hV,base64url:()=>SV,base64:()=>IV,array:()=>uG,any:()=>cV,_function:()=>U$,_default:()=>hK,_ZodString:()=>d$,ZodXor:()=>EK,ZodXID:()=>e$,ZodVoid:()=>VK,ZodUnknown:()=>RK,ZodUnion:()=>pG,ZodUndefined:()=>MK,ZodUUID:()=>DQ,ZodURL:()=>hG,ZodULID:()=>a$,ZodType:()=>q0,ZodTuple:()=>IK,ZodTransform:()=>ZK,ZodTemplateLiteral:()=>rK,ZodSymbol:()=>UK,ZodSuccess:()=>uK,ZodStringFormat:()=>S0,ZodString:()=>fG,ZodSet:()=>FK,ZodRecord:()=>bG,ZodRealError:()=>x8,ZodReadonly:()=>oK,ZodPromise:()=>tK,ZodPrefault:()=>mK,ZodPipe:()=>R9,ZodOptional:()=>O9,ZodObject:()=>cG,ZodNumberFormat:()=>KX,ZodNumber:()=>mG,ZodNullable:()=>gK,ZodNull:()=>DK,ZodNonOptional:()=>B9,ZodNever:()=>HK,ZodNanoID:()=>i$,ZodNaN:()=>bK,ZodMap:()=>_K,ZodMAC:()=>KK,ZodLiteral:()=>PK,ZodLazy:()=>sK,ZodKSUID:()=>Q9,ZodJWT:()=>j9,ZodIssueCode:()=>PF,ZodIntersection:()=>CK,ZodISOTime:()=>WK,ZodISODuration:()=>jK,ZodISODateTime:()=>qK,ZodISODate:()=>$K,ZodIPv6:()=>X9,ZodIPv4:()=>J9,ZodGUID:()=>JG,ZodFunction:()=>nK,ZodFirstPartyTypeKind:()=>rW,ZodFile:()=>kK,ZodExactOptional:()=>TK,ZodError:()=>FF,ZodEnum:()=>dX,ZodEmoji:()=>s$,ZodEmail:()=>r$,ZodE164:()=>W9,ZodDiscriminatedUnion:()=>wK,ZodDefault:()=>fK,ZodDate:()=>N9,ZodCustomStringFormat:()=>WY,ZodCustom:()=>oG,ZodCodec:()=>H9,ZodCatch:()=>cK,ZodCUID2:()=>n$,ZodCUID:()=>t$,ZodCIDRv6:()=>G9,ZodCIDRv4:()=>Y9,ZodBoolean:()=>yG,ZodBigIntFormat:()=>K9,ZodBigInt:()=>lG,ZodBase64URL:()=>$9,ZodBase64:()=>q9,ZodArray:()=>LK,ZodAny:()=>BK,TimePrecision:()=>RR,NEVER:()=>xD,$output:()=>UR,$input:()=>MR,$brand:()=>gD});var TD={};QQ(TD,{version:()=>iO,util:()=>M0,treeifyError:()=>sD,toJSONSchema:()=>mH,toDotPath:()=>iD,safeParseAsync:()=>aD,safeParse:()=>nD,safeEncodeAsync:()=>b3,safeEncode:()=>c3,safeDecodeAsync:()=>o3,safeDecode:()=>p3,registry:()=>Pj,regexes:()=>jX,process:()=>C0,prettifyError:()=>tD,parseAsync:()=>bW,parse:()=>pW,meta:()=>aR,locales:()=>_j,isValidJWT:()=>LB,isValidBase64URL:()=>RB,isValidBase64:()=>Ej,initializeContext:()=>pX,globalRegistry:()=>l8,globalConfig:()=>G$,formatError:()=>Wj,flattenError:()=>$j,finalize:()=>oX,extractDefs:()=>bX,encodeAsync:()=>l3,encode:()=>m3,describe:()=>nR,decodeAsync:()=>u3,decode:()=>y3,createToJSONSchemaMethod:()=>QH,createStandardJSONSchemaMethod:()=>QG,config:()=>$8,clone:()=>b8,_xor:()=>qF,_xid:()=>uj,_void:()=>uR,_uuidv7:()=>gj,_uuidv6:()=>xj,_uuidv4:()=>Tj,_uuid:()=>Zj,_url:()=>T$,_uppercase:()=>f$,_unknown:()=>yR,_union:()=>GF,_undefined:()=>fR,_ulid:()=>lj,_uint64:()=>xR,_uint32:()=>_R,_tuple:()=>jF,_trim:()=>c$,_transform:()=>OF,_toUpperCase:()=>b$,_toLowerCase:()=>p$,_templateLiteral:()=>AF,_symbol:()=>gR,_superRefine:()=>iR,_success:()=>LF,_stringbool:()=>eR,_stringFormat:()=>gG,_string:()=>DR,_startsWith:()=>m$,_slugify:()=>o$,_size:()=>ZG,_set:()=>NF,_safeParseAsync:()=>vG,_safeParse:()=>SG,_safeEncodeAsync:()=>Dj,_safeEncode:()=>Uj,_safeDecodeAsync:()=>Oj,_safeDecode:()=>Mj,_regex:()=>x$,_refine:()=>sR,_record:()=>KF,_readonly:()=>CF,_property:()=>JK,_promise:()=>SF,_positive:()=>nj,_pipe:()=>wF,_parseAsync:()=>IG,_parse:()=>AG,_overwrite:()=>dQ,_optional:()=>BF,_number:()=>wR,_nullable:()=>RF,_null:()=>hR,_normalize:()=>u$,_nonpositive:()=>ej,_nonoptional:()=>VF,_nonnegative:()=>QK,_never:()=>lR,_negative:()=>aj,_nativeEnum:()=>MF,_nanoid:()=>hj,_nan:()=>bR,_multipleOf:()=>cX,_minSize:()=>BJ,_minLength:()=>eJ,_min:()=>w8,_mime:()=>l$,_maxSize:()=>$Y,_maxLength:()=>TG,_max:()=>u8,_map:()=>zF,_mac:()=>BR,_lte:()=>u8,_lt:()=>DJ,_lowercase:()=>g$,_literal:()=>DF,_length:()=>xG,_lazy:()=>IF,_ksuid:()=>cj,_jwt:()=>tj,_isoTime:()=>LR,_isoDuration:()=>ER,_isoDateTime:()=>HR,_isoDate:()=>VR,_ipv6:()=>bj,_ipv4:()=>pj,_intersection:()=>WF,_int64:()=>TR,_int32:()=>vR,_int:()=>AR,_includes:()=>h$,_guid:()=>K$,_gte:()=>w8,_gt:()=>OJ,_float64:()=>SR,_float32:()=>IR,_file:()=>dR,_enum:()=>UF,_endsWith:()=>y$,_encodeAsync:()=>zj,_encode:()=>jj,_emoji:()=>fj,_email:()=>kj,_e164:()=>ij,_discriminatedUnion:()=>$F,_default:()=>HF,_decodeAsync:()=>Nj,_decode:()=>Kj,_date:()=>cR,_custom:()=>rR,_cuid2:()=>yj,_cuid:()=>mj,_coercedString:()=>OR,_coercedNumber:()=>CR,_coercedDate:()=>pR,_coercedBoolean:()=>PR,_coercedBigint:()=>ZR,_cidrv6:()=>dj,_cidrv4:()=>oj,_check:()=>tR,_catch:()=>EF,_boolean:()=>FR,_bigint:()=>kR,_base64url:()=>sj,_base64:()=>rj,_array:()=>oR,_any:()=>mR,TimePrecision:()=>RR,NEVER:()=>xD,JSONSchemaGenerator:()=>yH,JSONSchema:()=>_F,Doc:()=>Lj,$output:()=>UR,$input:()=>MR,$constructor:()=>V,$brand:()=>gD,$ZodXor:()=>mB,$ZodXID:()=>qB,$ZodVoid:()=>kB,$ZodUnknown:()=>FB,$ZodUnion:()=>Z$,$ZodUndefined:()=>SB,$ZodUUID:()=>nO,$ZodURL:()=>eO,$ZodULID:()=>GB,$ZodType:()=>G0,$ZodTuple:()=>Ij,$ZodTransform:()=>rB,$ZodTemplateLiteral:()=>GR,$ZodSymbol:()=>IB,$ZodSuccess:()=>eB,$ZodStringFormat:()=>I0,$ZodString:()=>kG,$ZodSet:()=>pB,$ZodRegistry:()=>Fj,$ZodRecord:()=>uB,$ZodRealError:()=>T8,$ZodReadonly:()=>YR,$ZodPromise:()=>$R,$ZodPrefault:()=>nB,$ZodPipe:()=>XR,$ZodOptional:()=>Sj,$ZodObjectJIT:()=>hB,$ZodObject:()=>fB,$ZodNumberFormat:()=>CB,$ZodNumber:()=>wj,$ZodNullable:()=>iB,$ZodNull:()=>vB,$ZodNonOptional:()=>aB,$ZodNever:()=>PB,$ZodNanoID:()=>JB,$ZodNaN:()=>JR,$ZodMap:()=>cB,$ZodMAC:()=>MB,$ZodLiteral:()=>oB,$ZodLazy:()=>WR,$ZodKSUID:()=>$B,$ZodJWT:()=>EB,$ZodIntersection:()=>lB,$ZodISOTime:()=>KB,$ZodISODuration:()=>zB,$ZodISODateTime:()=>WB,$ZodISODate:()=>jB,$ZodIPv6:()=>UB,$ZodIPv4:()=>NB,$ZodGUID:()=>tO,$ZodFunction:()=>qR,$ZodFile:()=>dB,$ZodExactOptional:()=>sB,$ZodError:()=>qj,$ZodEnum:()=>bB,$ZodEncodeError:()=>wG,$ZodEmoji:()=>QB,$ZodEmail:()=>aO,$ZodE164:()=>VB,$ZodDiscriminatedUnion:()=>yB,$ZodDefault:()=>tB,$ZodDate:()=>ZB,$ZodCustomStringFormat:()=>wB,$ZodCustom:()=>jR,$ZodCodec:()=>vj,$ZodCheckUpperCase:()=>cO,$ZodCheckStringFormat:()=>PG,$ZodCheckStartsWith:()=>bO,$ZodCheckSizeEquals:()=>fO,$ZodCheckRegex:()=>lO,$ZodCheckProperty:()=>dO,$ZodCheckOverwrite:()=>sO,$ZodCheckNumberFormat:()=>ZO,$ZodCheckMultipleOf:()=>kO,$ZodCheckMinSize:()=>gO,$ZodCheckMinLength:()=>mO,$ZodCheckMimeType:()=>rO,$ZodCheckMaxSize:()=>xO,$ZodCheckMaxLength:()=>hO,$ZodCheckLowerCase:()=>uO,$ZodCheckLessThan:()=>Hj,$ZodCheckLengthEquals:()=>yO,$ZodCheckIncludes:()=>pO,$ZodCheckGreaterThan:()=>Vj,$ZodCheckEndsWith:()=>oO,$ZodCheckBigIntFormat:()=>TO,$ZodCheck:()=>k0,$ZodCatch:()=>QR,$ZodCUID2:()=>YB,$ZodCUID:()=>XB,$ZodCIDRv6:()=>OB,$ZodCIDRv4:()=>DB,$ZodBoolean:()=>Cj,$ZodBigIntFormat:()=>AB,$ZodBigInt:()=>Aj,$ZodBase64URL:()=>HB,$ZodBase64:()=>BB,$ZodAsyncError:()=>NJ,$ZodArray:()=>TB,$ZodAny:()=>_B});var xD=Object.freeze({status:"aborted"});function V(Q,J,X){function G(W,j){if(!W._zod)Object.defineProperty(W,"_zod",{value:{def:j,constr:$,traits:new Set},enumerable:!1});if(W._zod.traits.has(Q))return;W._zod.traits.add(Q),J(W,j);let K=$.prototype,z=Object.keys(K);for(let N=0;N<z.length;N++){let U=z[N];if(!(U in W))W[U]=K[U].bind(W)}}let Y=X?.Parent??Object;class q extends Y{}Object.defineProperty(q,"name",{value:Q});function $(W){var j;let K=X?.Parent?new q:this;G(K,W),(j=K._zod).deferred??(j.deferred=[]);for(let z of K._zod.deferred)z();return K}return Object.defineProperty($,"init",{value:G}),Object.defineProperty($,Symbol.hasInstance,{value:(W)=>{if(X?.Parent&&W instanceof X.Parent)return!0;return W?._zod?.traits?.has(Q)}}),Object.defineProperty($,"name",{value:Q}),$}var gD=Symbol("zod_brand");class NJ extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class wG extends Error{constructor(Q){super(`Encountered unidirectional transform during encode: ${Q}`);this.name="ZodEncodeError"}}var G$={};function $8(Q){if(Q)Object.assign(G$,Q);return G$}var M0={};QQ(M0,{unwrapMessage:()=>cY,uint8ArrayToHex:()=>h3,uint8ArrayToBase64url:()=>g3,uint8ArrayToBase64:()=>oD,stringifyPrimitive:()=>J0,slugify:()=>hD,shallowClone:()=>yD,safeExtend:()=>F3,required:()=>Z3,randomString:()=>w3,propertyKeyTypes:()=>$$,promiseAllObject:()=>E3,primitiveTypes:()=>lD,prefixIssues:()=>e8,pick:()=>S3,partial:()=>k3,parsedType:()=>Y0,optionalKeys:()=>uD,omit:()=>v3,objectClone:()=>H3,numKeys:()=>C3,nullish:()=>WX,normalizeParams:()=>Z,mergeDefs:()=>oQ,merge:()=>P3,jsonStringifyReplacer:()=>q$,joinValues:()=>k,issue:()=>W$,isPlainObject:()=>aJ,isObject:()=>lX,hexToUint8Array:()=>f3,getSizableOrigin:()=>P$,getParsedType:()=>A3,getLengthableOrigin:()=>k$,getEnumValues:()=>Yj,getElementAtPath:()=>L3,floatSafeRemainder:()=>fD,finalizeIssue:()=>c8,extend:()=>_3,escapeRegex:()=>uQ,esc:()=>cW,defineLazy:()=>N0,createTransparentProxy:()=>I3,cloneDef:()=>V3,clone:()=>b8,cleanRegex:()=>F$,cleanEnum:()=>T3,captureStackTrace:()=>Gj,cached:()=>CG,base64urlToUint8Array:()=>x3,base64ToUint8Array:()=>bD,assignProp:()=>VJ,assertNotEqual:()=>D3,assertNever:()=>B3,assertIs:()=>O3,assertEqual:()=>M3,assert:()=>R3,allowsEval:()=>mD,aborted:()=>cJ,NUMBER_FORMAT_RANGES:()=>cD,Class:()=>dD,BIGINT_FORMAT_RANGES:()=>pD});function M3(Q){return Q}function D3(Q){return Q}function O3(Q){}function B3(Q){throw Error("Unexpected value in exhaustive check")}function R3(Q){}function Yj(Q){let J=Object.values(Q).filter((X)=>typeof X==="number");return Object.entries(Q).filter(([X,G])=>J.indexOf(+X)===-1).map(([X,G])=>G)}function k(Q,J="|"){return Q.map((X)=>J0(X)).join(J)}function q$(Q,J){if(typeof J==="bigint")return J.toString();return J}function CG(Q){return{get value(){{let J=Q();return Object.defineProperty(this,"value",{value:J}),J}throw Error("cached value already set")}}}function WX(Q){return Q===null||Q===void 0}function F$(Q){let J=Q.startsWith("^")?1:0,X=Q.endsWith("$")?Q.length-1:Q.length;return Q.slice(J,X)}function fD(Q,J){let X=(Q.toString().split(".")[1]||"").length,G=J.toString(),Y=(G.split(".")[1]||"").length;if(Y===0&&/\d?e-\d?/.test(G)){let j=G.match(/\d?e-(\d?)/);if(j?.[1])Y=Number.parseInt(j[1])}let q=X>Y?X:Y,$=Number.parseInt(Q.toFixed(q).replace(".","")),W=Number.parseInt(J.toFixed(q).replace(".",""));return $%W/10**q}var KU=Symbol("evaluating");function N0(Q,J,X){let G=void 0;Object.defineProperty(Q,J,{get(){if(G===KU)return;if(G===void 0)G=KU,G=X();return G},set(Y){Object.defineProperty(Q,J,{value:Y})},configurable:!0})}function H3(Q){return Object.create(Object.getPrototypeOf(Q),Object.getOwnPropertyDescriptors(Q))}function VJ(Q,J,X){Object.defineProperty(Q,J,{value:X,writable:!0,enumerable:!0,configurable:!0})}function oQ(...Q){let J={};for(let X of Q){let G=Object.getOwnPropertyDescriptors(X);Object.assign(J,G)}return Object.defineProperties({},J)}function V3(Q){return oQ(Q._zod.def)}function L3(Q,J){if(!J)return Q;return J.reduce((X,G)=>X?.[G],Q)}function E3(Q){let J=Object.keys(Q),X=J.map((G)=>Q[G]);return Promise.all(X).then((G)=>{let Y={};for(let q=0;q<J.length;q++)Y[J[q]]=G[q];return Y})}function w3(Q=10){let J="";for(let X=0;X<Q;X++)J+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return J}function cW(Q){return JSON.stringify(Q)}function hD(Q){return Q.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Gj="captureStackTrace"in Error?Error.captureStackTrace:(...Q)=>{};function lX(Q){return typeof Q==="object"&&Q!==null&&!Array.isArray(Q)}var mD=CG(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return Function(""),!0}catch(Q){return!1}});function aJ(Q){if(lX(Q)===!1)return!1;let J=Q.constructor;if(J===void 0)return!0;if(typeof J!=="function")return!0;let X=J.prototype;if(lX(X)===!1)return!1;if(Object.prototype.hasOwnProperty.call(X,"isPrototypeOf")===!1)return!1;return!0}function yD(Q){if(aJ(Q))return{...Q};if(Array.isArray(Q))return[...Q];return Q}function C3(Q){let J=0;for(let X in Q)if(Object.prototype.hasOwnProperty.call(Q,X))J++;return J}var A3=(Q)=>{let J=typeof Q;switch(J){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(Q)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray(Q))return"array";if(Q===null)return"null";if(Q.then&&typeof Q.then==="function"&&Q.catch&&typeof Q.catch==="function")return"promise";if(typeof Map<"u"&&Q instanceof Map)return"map";if(typeof Set<"u"&&Q instanceof Set)return"set";if(typeof Date<"u"&&Q instanceof Date)return"date";if(typeof File<"u"&&Q instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${J}`)}},$$=new Set(["string","number","symbol"]),lD=new Set(["string","number","bigint","boolean","symbol","undefined"]);function uQ(Q){return Q.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function b8(Q,J,X){let G=new Q._zod.constr(J??Q._zod.def);if(!J||X?.parent)G._zod.parent=Q;return G}function Z(Q){let J=Q;if(!J)return{};if(typeof J==="string")return{error:()=>J};if(J?.message!==void 0){if(J?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");J.error=J.message}if(delete J.message,typeof J.error==="string")return{...J,error:()=>J.error};return J}function I3(Q){let J;return new Proxy({},{get(X,G,Y){return J??(J=Q()),Reflect.get(J,G,Y)},set(X,G,Y,q){return J??(J=Q()),Reflect.set(J,G,Y,q)},has(X,G){return J??(J=Q()),Reflect.has(J,G)},deleteProperty(X,G){return J??(J=Q()),Reflect.deleteProperty(J,G)},ownKeys(X){return J??(J=Q()),Reflect.ownKeys(J)},getOwnPropertyDescriptor(X,G){return J??(J=Q()),Reflect.getOwnPropertyDescriptor(J,G)},defineProperty(X,G,Y){return J??(J=Q()),Reflect.defineProperty(J,G,Y)}})}function J0(Q){if(typeof Q==="bigint")return Q.toString()+"n";if(typeof Q==="string")return`"${Q}"`;return`${Q}`}function uD(Q){return Object.keys(Q).filter((J)=>{return Q[J]._zod.optin==="optional"&&Q[J]._zod.optout==="optional"})}var cD={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},pD={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function S3(Q,J){let X=Q._zod.def,G=X.checks;if(G&&G.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let Y=oQ(Q._zod.def,{get shape(){let q={};for(let $ in J){if(!($ in X.shape))throw Error(`Unrecognized key: "${$}"`);if(!J[$])continue;q[$]=X.shape[$]}return VJ(this,"shape",q),q},checks:[]});return b8(Q,Y)}function v3(Q,J){let X=Q._zod.def,G=X.checks;if(G&&G.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let Y=oQ(Q._zod.def,{get shape(){let q={...Q._zod.def.shape};for(let $ in J){if(!($ in X.shape))throw Error(`Unrecognized key: "${$}"`);if(!J[$])continue;delete q[$]}return VJ(this,"shape",q),q},checks:[]});return b8(Q,Y)}function _3(Q,J){if(!aJ(J))throw Error("Invalid input to extend: expected a plain object");let X=Q._zod.def.checks;if(X&&X.length>0){let Y=Q._zod.def.shape;for(let q in J)if(Object.getOwnPropertyDescriptor(Y,q)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let G=oQ(Q._zod.def,{get shape(){let Y={...Q._zod.def.shape,...J};return VJ(this,"shape",Y),Y}});return b8(Q,G)}function F3(Q,J){if(!aJ(J))throw Error("Invalid input to safeExtend: expected a plain object");let X=oQ(Q._zod.def,{get shape(){let G={...Q._zod.def.shape,...J};return VJ(this,"shape",G),G}});return b8(Q,X)}function P3(Q,J){let X=oQ(Q._zod.def,{get shape(){let G={...Q._zod.def.shape,...J._zod.def.shape};return VJ(this,"shape",G),G},get catchall(){return J._zod.def.catchall},checks:[]});return b8(Q,X)}function k3(Q,J,X){let G=J._zod.def.checks;if(G&&G.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let Y=oQ(J._zod.def,{get shape(){let q=J._zod.def.shape,$={...q};if(X)for(let W in X){if(!(W in q))throw Error(`Unrecognized key: "${W}"`);if(!X[W])continue;$[W]=Q?new Q({type:"optional",innerType:q[W]}):q[W]}else for(let W in q)$[W]=Q?new Q({type:"optional",innerType:q[W]}):q[W];return VJ(this,"shape",$),$},checks:[]});return b8(J,Y)}function Z3(Q,J,X){let G=oQ(J._zod.def,{get shape(){let Y=J._zod.def.shape,q={...Y};if(X)for(let $ in X){if(!($ in q))throw Error(`Unrecognized key: "${$}"`);if(!X[$])continue;q[$]=new Q({type:"nonoptional",innerType:Y[$]})}else for(let $ in Y)q[$]=new Q({type:"nonoptional",innerType:Y[$]});return VJ(this,"shape",q),q}});return b8(J,G)}function cJ(Q,J=0){if(Q.aborted===!0)return!0;for(let X=J;X<Q.issues.length;X++)if(Q.issues[X]?.continue!==!0)return!0;return!1}function e8(Q,J){return J.map((X)=>{var G;return(G=X).path??(G.path=[]),X.path.unshift(Q),X})}function cY(Q){return typeof Q==="string"?Q:Q?.message}function c8(Q,J,X){let G={...Q,path:Q.path??[]};if(!Q.message){let Y=cY(Q.inst?._zod.def?.error?.(Q))??cY(J?.error?.(Q))??cY(X.customError?.(Q))??cY(X.localeError?.(Q))??"Invalid input";G.message=Y}if(delete G.inst,delete G.continue,!J?.reportInput)delete G.input;return G}function P$(Q){if(Q instanceof Set)return"set";if(Q instanceof Map)return"map";if(Q instanceof File)return"file";return"unknown"}function k$(Q){if(Array.isArray(Q))return"array";if(typeof Q==="string")return"string";return"unknown"}function Y0(Q){let J=typeof Q;switch(J){case"number":return Number.isNaN(Q)?"nan":"number";case"object":{if(Q===null)return"null";if(Array.isArray(Q))return"array";let X=Q;if(X&&Object.getPrototypeOf(X)!==Object.prototype&&"constructor"in X&&X.constructor)return X.constructor.name}}return J}function W$(...Q){let[J,X,G]=Q;if(typeof J==="string")return{message:J,code:"custom",input:X,inst:G};return{...J}}function T3(Q){return Object.entries(Q).filter(([J,X])=>{return Number.isNaN(Number.parseInt(J,10))}).map((J)=>J[1])}function bD(Q){let J=atob(Q),X=new Uint8Array(J.length);for(let G=0;G<J.length;G++)X[G]=J.charCodeAt(G);return X}function oD(Q){let J="";for(let X=0;X<Q.length;X++)J+=String.fromCharCode(Q[X]);return btoa(J)}function x3(Q){let J=Q.replace(/-/g,"+").replace(/_/g,"/"),X="=".repeat((4-J.length%4)%4);return bD(J+X)}function g3(Q){return oD(Q).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function f3(Q){let J=Q.replace(/^0x/,"");if(J.length%2!==0)throw Error("Invalid hex string length");let X=new Uint8Array(J.length/2);for(let G=0;G<J.length;G+=2)X[G/2]=Number.parseInt(J.slice(G,G+2),16);return X}function h3(Q){return Array.from(Q).map((J)=>J.toString(16).padStart(2,"0")).join("")}class dD{constructor(...Q){}}var rD=(Q,J)=>{Q.name="$ZodError",Object.defineProperty(Q,"_zod",{value:Q._zod,enumerable:!1}),Object.defineProperty(Q,"issues",{value:J,enumerable:!1}),Q.message=JSON.stringify(J,q$,2),Object.defineProperty(Q,"toString",{value:()=>Q.message,enumerable:!1})},qj=V("$ZodError",rD),T8=V("$ZodError",rD,{Parent:Error});function $j(Q,J=(X)=>X.message){let X={},G=[];for(let Y of Q.issues)if(Y.path.length>0)X[Y.path[0]]=X[Y.path[0]]||[],X[Y.path[0]].push(J(Y));else G.push(J(Y));return{formErrors:G,fieldErrors:X}}function Wj(Q,J=(X)=>X.message){let X={_errors:[]},G=(Y)=>{for(let q of Y.issues)if(q.code==="invalid_union"&&q.errors.length)q.errors.map(($)=>G({issues:$}));else if(q.code==="invalid_key")G({issues:q.issues});else if(q.code==="invalid_element")G({issues:q.issues});else if(q.path.length===0)X._errors.push(J(q));else{let $=X,W=0;while(W<q.path.length){let j=q.path[W];if(W!==q.path.length-1)$[j]=$[j]||{_errors:[]};else $[j]=$[j]||{_errors:[]},$[j]._errors.push(J(q));$=$[j],W++}}};return G(Q),X}function sD(Q,J=(X)=>X.message){let X={errors:[]},G=(Y,q=[])=>{var $,W;for(let j of Y.issues)if(j.code==="invalid_union"&&j.errors.length)j.errors.map((K)=>G({issues:K},j.path));else if(j.code==="invalid_key")G({issues:j.issues},j.path);else if(j.code==="invalid_element")G({issues:j.issues},j.path);else{let K=[...q,...j.path];if(K.length===0){X.errors.push(J(j));continue}let z=X,N=0;while(N<K.length){let U=K[N],M=N===K.length-1;if(typeof U==="string")z.properties??(z.properties={}),($=z.properties)[U]??($[U]={errors:[]}),z=z.properties[U];else z.items??(z.items=[]),(W=z.items)[U]??(W[U]={errors:[]}),z=z.items[U];if(M)z.errors.push(J(j));N++}}};return G(Q),X}function iD(Q){let J=[],X=Q.map((G)=>typeof G==="object"?G.key:G);for(let G of X)if(typeof G==="number")J.push(`[${G}]`);else if(typeof G==="symbol")J.push(`[${JSON.stringify(String(G))}]`);else if(/[^\w$]/.test(G))J.push(`[${JSON.stringify(G)}]`);else{if(J.length)J.push(".");J.push(G)}return J.join("")}function tD(Q){let J=[],X=[...Q.issues].sort((G,Y)=>(G.path??[]).length-(Y.path??[]).length);for(let G of X)if(J.push(`✖ ${G.message}`),G.path?.length)J.push(` → at ${iD(G.path)}`);return J.join(`
|
|
36
|
+
`)}var AG=(Q)=>(J,X,G,Y)=>{let q=G?Object.assign(G,{async:!1}):{async:!1},$=J._zod.run({value:X,issues:[]},q);if($ instanceof Promise)throw new NJ;if($.issues.length){let W=new(Y?.Err??Q)($.issues.map((j)=>c8(j,q,$8())));throw Gj(W,Y?.callee),W}return $.value},pW=AG(T8),IG=(Q)=>async(J,X,G,Y)=>{let q=G?Object.assign(G,{async:!0}):{async:!0},$=J._zod.run({value:X,issues:[]},q);if($ instanceof Promise)$=await $;if($.issues.length){let W=new(Y?.Err??Q)($.issues.map((j)=>c8(j,q,$8())));throw Gj(W,Y?.callee),W}return $.value},bW=IG(T8),SG=(Q)=>(J,X,G)=>{let Y=G?{...G,async:!1}:{async:!1},q=J._zod.run({value:X,issues:[]},Y);if(q instanceof Promise)throw new NJ;return q.issues.length?{success:!1,error:new(Q??qj)(q.issues.map(($)=>c8($,Y,$8())))}:{success:!0,data:q.value}},nD=SG(T8),vG=(Q)=>async(J,X,G)=>{let Y=G?Object.assign(G,{async:!0}):{async:!0},q=J._zod.run({value:X,issues:[]},Y);if(q instanceof Promise)q=await q;return q.issues.length?{success:!1,error:new Q(q.issues.map(($)=>c8($,Y,$8())))}:{success:!0,data:q.value}},aD=vG(T8),jj=(Q)=>(J,X,G)=>{let Y=G?Object.assign(G,{direction:"backward"}):{direction:"backward"};return AG(Q)(J,X,Y)},m3=jj(T8),Kj=(Q)=>(J,X,G)=>{return AG(Q)(J,X,G)},y3=Kj(T8),zj=(Q)=>async(J,X,G)=>{let Y=G?Object.assign(G,{direction:"backward"}):{direction:"backward"};return IG(Q)(J,X,Y)},l3=zj(T8),Nj=(Q)=>async(J,X,G)=>{return IG(Q)(J,X,G)},u3=Nj(T8),Uj=(Q)=>(J,X,G)=>{let Y=G?Object.assign(G,{direction:"backward"}):{direction:"backward"};return SG(Q)(J,X,Y)},c3=Uj(T8),Mj=(Q)=>(J,X,G)=>{return SG(Q)(J,X,G)},p3=Mj(T8),Dj=(Q)=>async(J,X,G)=>{let Y=G?Object.assign(G,{direction:"backward"}):{direction:"backward"};return vG(Q)(J,X,Y)},b3=Dj(T8),Oj=(Q)=>async(J,X,G)=>{return vG(Q)(J,X,G)},o3=Oj(T8),jX={};QQ(jX,{xid:()=>XO,uuid7:()=>i3,uuid6:()=>s3,uuid4:()=>r3,uuid:()=>uX,uppercase:()=>FO,unicodeEmail:()=>jO,undefined:()=>vO,ulid:()=>JO,time:()=>LO,string:()=>wO,sha512_hex:()=>Bv,sha512_base64url:()=>Hv,sha512_base64:()=>Rv,sha384_hex:()=>Mv,sha384_base64url:()=>Ov,sha384_base64:()=>Dv,sha256_hex:()=>zv,sha256_base64url:()=>Uv,sha256_base64:()=>Nv,sha1_hex:()=>Wv,sha1_base64url:()=>Kv,sha1_base64:()=>jv,rfc5322Email:()=>n3,number:()=>Rj,null:()=>SO,nanoid:()=>GO,md5_hex:()=>Gv,md5_base64url:()=>$v,md5_base64:()=>qv,mac:()=>UO,lowercase:()=>_O,ksuid:()=>YO,ipv6:()=>NO,ipv4:()=>zO,integer:()=>AO,idnEmail:()=>a3,html5Email:()=>t3,hostname:()=>Jv,hex:()=>Yv,guid:()=>$O,extendedDuration:()=>d3,emoji:()=>KO,email:()=>WO,e164:()=>BO,duration:()=>qO,domain:()=>Xv,datetime:()=>EO,date:()=>HO,cuid2:()=>QO,cuid:()=>eD,cidrv6:()=>DO,cidrv4:()=>MO,browserEmail:()=>e3,boolean:()=>IO,bigint:()=>CO,base64url:()=>Bj,base64:()=>OO});var eD=/^[cC][^\s-]{8,}$/,QO=/^[0-9a-z]+$/,JO=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,XO=/^[0-9a-vA-V]{20}$/,YO=/^[A-Za-z0-9]{27}$/,GO=/^[a-zA-Z0-9_-]{21}$/,qO=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,d3=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,$O=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,uX=(Q)=>{if(!Q)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${Q}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)},r3=uX(4),s3=uX(6),i3=uX(7),WO=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,t3=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,n3=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,jO=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,a3=jO,e3=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Qv="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function KO(){return new RegExp(Qv,"u")}var zO=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,NO=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,UO=(Q)=>{let J=uQ(Q??":");return new RegExp(`^(?:[0-9A-F]{2}${J}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${J}){5}[0-9a-f]{2}$`)},MO=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,DO=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,OO=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Bj=/^[A-Za-z0-9_-]*$/,Jv=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,Xv=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,BO=/^\+[1-9]\d{6,14}$/,RO="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",HO=new RegExp(`^${RO}$`);function VO(Q){return typeof Q.precision==="number"?Q.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":Q.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${Q.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function LO(Q){return new RegExp(`^${VO(Q)}$`)}function EO(Q){let J=VO({precision:Q.precision}),X=["Z"];if(Q.local)X.push("");if(Q.offset)X.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let G=`${J}(?:${X.join("|")})`;return new RegExp(`^${RO}T(?:${G})$`)}var wO=(Q)=>{let J=Q?`[\\s\\S]{${Q?.minimum??0},${Q?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${J}$`)},CO=/^-?\d+n?$/,AO=/^-?\d+$/,Rj=/^-?\d+(?:\.\d+)?$/,IO=/^(?:true|false)$/i,SO=/^null$/i,vO=/^undefined$/i,_O=/^[^A-Z]*$/,FO=/^[^a-z]*$/,Yv=/^[0-9a-fA-F]*$/;function _G(Q,J){return new RegExp(`^[A-Za-z0-9+/]{${Q}}${J}$`)}function FG(Q){return new RegExp(`^[A-Za-z0-9_-]{${Q}}$`)}var Gv=/^[0-9a-fA-F]{32}$/,qv=_G(22,"=="),$v=FG(22),Wv=/^[0-9a-fA-F]{40}$/,jv=_G(27,"="),Kv=FG(27),zv=/^[0-9a-fA-F]{64}$/,Nv=_G(43,"="),Uv=FG(43),Mv=/^[0-9a-fA-F]{96}$/,Dv=_G(64,""),Ov=FG(64),Bv=/^[0-9a-fA-F]{128}$/,Rv=_G(86,"=="),Hv=FG(86),k0=V("$ZodCheck",(Q,J)=>{var X;Q._zod??(Q._zod={}),Q._zod.def=J,(X=Q._zod).onattach??(X.onattach=[])}),PO={number:"number",bigint:"bigint",object:"date"},Hj=V("$ZodCheckLessThan",(Q,J)=>{k0.init(Q,J);let X=PO[typeof J.value];Q._zod.onattach.push((G)=>{let Y=G._zod.bag,q=(J.inclusive?Y.maximum:Y.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(J.value<q)if(J.inclusive)Y.maximum=J.value;else Y.exclusiveMaximum=J.value}),Q._zod.check=(G)=>{if(J.inclusive?G.value<=J.value:G.value<J.value)return;G.issues.push({origin:X,code:"too_big",maximum:typeof J.value==="object"?J.value.getTime():J.value,input:G.value,inclusive:J.inclusive,inst:Q,continue:!J.abort})}}),Vj=V("$ZodCheckGreaterThan",(Q,J)=>{k0.init(Q,J);let X=PO[typeof J.value];Q._zod.onattach.push((G)=>{let Y=G._zod.bag,q=(J.inclusive?Y.minimum:Y.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(J.value>q)if(J.inclusive)Y.minimum=J.value;else Y.exclusiveMinimum=J.value}),Q._zod.check=(G)=>{if(J.inclusive?G.value>=J.value:G.value>J.value)return;G.issues.push({origin:X,code:"too_small",minimum:typeof J.value==="object"?J.value.getTime():J.value,input:G.value,inclusive:J.inclusive,inst:Q,continue:!J.abort})}}),kO=V("$ZodCheckMultipleOf",(Q,J)=>{k0.init(Q,J),Q._zod.onattach.push((X)=>{var G;(G=X._zod.bag).multipleOf??(G.multipleOf=J.value)}),Q._zod.check=(X)=>{if(typeof X.value!==typeof J.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof X.value==="bigint"?X.value%J.value===BigInt(0):fD(X.value,J.value)===0)return;X.issues.push({origin:typeof X.value,code:"not_multiple_of",divisor:J.value,input:X.value,inst:Q,continue:!J.abort})}}),ZO=V("$ZodCheckNumberFormat",(Q,J)=>{k0.init(Q,J),J.format=J.format||"float64";let X=J.format?.includes("int"),G=X?"int":"number",[Y,q]=cD[J.format];Q._zod.onattach.push(($)=>{let W=$._zod.bag;if(W.format=J.format,W.minimum=Y,W.maximum=q,X)W.pattern=AO}),Q._zod.check=($)=>{let W=$.value;if(X){if(!Number.isInteger(W)){$.issues.push({expected:G,format:J.format,code:"invalid_type",continue:!1,input:W,inst:Q});return}if(!Number.isSafeInteger(W)){if(W>0)$.issues.push({input:W,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:Q,origin:G,inclusive:!0,continue:!J.abort});else $.issues.push({input:W,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:Q,origin:G,inclusive:!0,continue:!J.abort});return}}if(W<Y)$.issues.push({origin:"number",input:W,code:"too_small",minimum:Y,inclusive:!0,inst:Q,continue:!J.abort});if(W>q)$.issues.push({origin:"number",input:W,code:"too_big",maximum:q,inclusive:!0,inst:Q,continue:!J.abort})}}),TO=V("$ZodCheckBigIntFormat",(Q,J)=>{k0.init(Q,J);let[X,G]=pD[J.format];Q._zod.onattach.push((Y)=>{let q=Y._zod.bag;q.format=J.format,q.minimum=X,q.maximum=G}),Q._zod.check=(Y)=>{let q=Y.value;if(q<X)Y.issues.push({origin:"bigint",input:q,code:"too_small",minimum:X,inclusive:!0,inst:Q,continue:!J.abort});if(q>G)Y.issues.push({origin:"bigint",input:q,code:"too_big",maximum:G,inclusive:!0,inst:Q,continue:!J.abort})}}),xO=V("$ZodCheckMaxSize",(Q,J)=>{var X;k0.init(Q,J),(X=Q._zod.def).when??(X.when=(G)=>{let Y=G.value;return!WX(Y)&&Y.size!==void 0}),Q._zod.onattach.push((G)=>{let Y=G._zod.bag.maximum??Number.POSITIVE_INFINITY;if(J.maximum<Y)G._zod.bag.maximum=J.maximum}),Q._zod.check=(G)=>{let Y=G.value;if(Y.size<=J.maximum)return;G.issues.push({origin:P$(Y),code:"too_big",maximum:J.maximum,inclusive:!0,input:Y,inst:Q,continue:!J.abort})}}),gO=V("$ZodCheckMinSize",(Q,J)=>{var X;k0.init(Q,J),(X=Q._zod.def).when??(X.when=(G)=>{let Y=G.value;return!WX(Y)&&Y.size!==void 0}),Q._zod.onattach.push((G)=>{let Y=G._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(J.minimum>Y)G._zod.bag.minimum=J.minimum}),Q._zod.check=(G)=>{let Y=G.value;if(Y.size>=J.minimum)return;G.issues.push({origin:P$(Y),code:"too_small",minimum:J.minimum,inclusive:!0,input:Y,inst:Q,continue:!J.abort})}}),fO=V("$ZodCheckSizeEquals",(Q,J)=>{var X;k0.init(Q,J),(X=Q._zod.def).when??(X.when=(G)=>{let Y=G.value;return!WX(Y)&&Y.size!==void 0}),Q._zod.onattach.push((G)=>{let Y=G._zod.bag;Y.minimum=J.size,Y.maximum=J.size,Y.size=J.size}),Q._zod.check=(G)=>{let Y=G.value,q=Y.size;if(q===J.size)return;let $=q>J.size;G.issues.push({origin:P$(Y),...$?{code:"too_big",maximum:J.size}:{code:"too_small",minimum:J.size},inclusive:!0,exact:!0,input:G.value,inst:Q,continue:!J.abort})}}),hO=V("$ZodCheckMaxLength",(Q,J)=>{var X;k0.init(Q,J),(X=Q._zod.def).when??(X.when=(G)=>{let Y=G.value;return!WX(Y)&&Y.length!==void 0}),Q._zod.onattach.push((G)=>{let Y=G._zod.bag.maximum??Number.POSITIVE_INFINITY;if(J.maximum<Y)G._zod.bag.maximum=J.maximum}),Q._zod.check=(G)=>{let Y=G.value;if(Y.length<=J.maximum)return;let q=k$(Y);G.issues.push({origin:q,code:"too_big",maximum:J.maximum,inclusive:!0,input:Y,inst:Q,continue:!J.abort})}}),mO=V("$ZodCheckMinLength",(Q,J)=>{var X;k0.init(Q,J),(X=Q._zod.def).when??(X.when=(G)=>{let Y=G.value;return!WX(Y)&&Y.length!==void 0}),Q._zod.onattach.push((G)=>{let Y=G._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(J.minimum>Y)G._zod.bag.minimum=J.minimum}),Q._zod.check=(G)=>{let Y=G.value;if(Y.length>=J.minimum)return;let q=k$(Y);G.issues.push({origin:q,code:"too_small",minimum:J.minimum,inclusive:!0,input:Y,inst:Q,continue:!J.abort})}}),yO=V("$ZodCheckLengthEquals",(Q,J)=>{var X;k0.init(Q,J),(X=Q._zod.def).when??(X.when=(G)=>{let Y=G.value;return!WX(Y)&&Y.length!==void 0}),Q._zod.onattach.push((G)=>{let Y=G._zod.bag;Y.minimum=J.length,Y.maximum=J.length,Y.length=J.length}),Q._zod.check=(G)=>{let Y=G.value,q=Y.length;if(q===J.length)return;let $=k$(Y),W=q>J.length;G.issues.push({origin:$,...W?{code:"too_big",maximum:J.length}:{code:"too_small",minimum:J.length},inclusive:!0,exact:!0,input:G.value,inst:Q,continue:!J.abort})}}),PG=V("$ZodCheckStringFormat",(Q,J)=>{var X,G;if(k0.init(Q,J),Q._zod.onattach.push((Y)=>{let q=Y._zod.bag;if(q.format=J.format,J.pattern)q.patterns??(q.patterns=new Set),q.patterns.add(J.pattern)}),J.pattern)(X=Q._zod).check??(X.check=(Y)=>{if(J.pattern.lastIndex=0,J.pattern.test(Y.value))return;Y.issues.push({origin:"string",code:"invalid_format",format:J.format,input:Y.value,...J.pattern?{pattern:J.pattern.toString()}:{},inst:Q,continue:!J.abort})});else(G=Q._zod).check??(G.check=()=>{})}),lO=V("$ZodCheckRegex",(Q,J)=>{PG.init(Q,J),Q._zod.check=(X)=>{if(J.pattern.lastIndex=0,J.pattern.test(X.value))return;X.issues.push({origin:"string",code:"invalid_format",format:"regex",input:X.value,pattern:J.pattern.toString(),inst:Q,continue:!J.abort})}}),uO=V("$ZodCheckLowerCase",(Q,J)=>{J.pattern??(J.pattern=_O),PG.init(Q,J)}),cO=V("$ZodCheckUpperCase",(Q,J)=>{J.pattern??(J.pattern=FO),PG.init(Q,J)}),pO=V("$ZodCheckIncludes",(Q,J)=>{k0.init(Q,J);let X=uQ(J.includes),G=new RegExp(typeof J.position==="number"?`^.{${J.position}}${X}`:X);J.pattern=G,Q._zod.onattach.push((Y)=>{let q=Y._zod.bag;q.patterns??(q.patterns=new Set),q.patterns.add(G)}),Q._zod.check=(Y)=>{if(Y.value.includes(J.includes,J.position))return;Y.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:J.includes,input:Y.value,inst:Q,continue:!J.abort})}}),bO=V("$ZodCheckStartsWith",(Q,J)=>{k0.init(Q,J);let X=new RegExp(`^${uQ(J.prefix)}.*`);J.pattern??(J.pattern=X),Q._zod.onattach.push((G)=>{let Y=G._zod.bag;Y.patterns??(Y.patterns=new Set),Y.patterns.add(X)}),Q._zod.check=(G)=>{if(G.value.startsWith(J.prefix))return;G.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:J.prefix,input:G.value,inst:Q,continue:!J.abort})}}),oO=V("$ZodCheckEndsWith",(Q,J)=>{k0.init(Q,J);let X=new RegExp(`.*${uQ(J.suffix)}$`);J.pattern??(J.pattern=X),Q._zod.onattach.push((G)=>{let Y=G._zod.bag;Y.patterns??(Y.patterns=new Set),Y.patterns.add(X)}),Q._zod.check=(G)=>{if(G.value.endsWith(J.suffix))return;G.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:J.suffix,input:G.value,inst:Q,continue:!J.abort})}});function zU(Q,J,X){if(Q.issues.length)J.issues.push(...e8(X,Q.issues))}var dO=V("$ZodCheckProperty",(Q,J)=>{k0.init(Q,J),Q._zod.check=(X)=>{let G=J.schema._zod.run({value:X.value[J.property],issues:[]},{});if(G instanceof Promise)return G.then((Y)=>zU(Y,X,J.property));zU(G,X,J.property);return}}),rO=V("$ZodCheckMimeType",(Q,J)=>{k0.init(Q,J);let X=new Set(J.mime);Q._zod.onattach.push((G)=>{G._zod.bag.mime=J.mime}),Q._zod.check=(G)=>{if(X.has(G.value.type))return;G.issues.push({code:"invalid_value",values:J.mime,input:G.value.type,inst:Q,continue:!J.abort})}}),sO=V("$ZodCheckOverwrite",(Q,J)=>{k0.init(Q,J),Q._zod.check=(X)=>{X.value=J.tx(X.value)}});class Lj{constructor(Q=[]){if(this.content=[],this.indent=0,this)this.args=Q}indented(Q){this.indent+=1,Q(this),this.indent-=1}write(Q){if(typeof Q==="function"){Q(this,{execution:"sync"}),Q(this,{execution:"async"});return}let J=Q.split(`
|
|
37
|
+
`).filter((Y)=>Y),X=Math.min(...J.map((Y)=>Y.length-Y.trimStart().length)),G=J.map((Y)=>Y.slice(X)).map((Y)=>" ".repeat(this.indent*2)+Y);for(let Y of G)this.content.push(Y)}compile(){let Q=Function,J=this?.args,X=[...(this?.content??[""]).map((G)=>` ${G}`)];return new Q(...J,X.join(`
|
|
38
|
+
`))}}var iO={major:4,minor:3,patch:6},G0=V("$ZodType",(Q,J)=>{var X;Q??(Q={}),Q._zod.def=J,Q._zod.bag=Q._zod.bag||{},Q._zod.version=iO;let G=[...Q._zod.def.checks??[]];if(Q._zod.traits.has("$ZodCheck"))G.unshift(Q);for(let Y of G)for(let q of Y._zod.onattach)q(Q);if(G.length===0)(X=Q._zod).deferred??(X.deferred=[]),Q._zod.deferred?.push(()=>{Q._zod.run=Q._zod.parse});else{let Y=($,W,j)=>{let K=cJ($),z;for(let N of W){if(N._zod.def.when){if(!N._zod.def.when($))continue}else if(K)continue;let U=$.issues.length,M=N._zod.check($);if(M instanceof Promise&&j?.async===!1)throw new NJ;if(z||M instanceof Promise)z=(z??Promise.resolve()).then(async()=>{if(await M,$.issues.length===U)return;if(!K)K=cJ($,U)});else{if($.issues.length===U)continue;if(!K)K=cJ($,U)}}if(z)return z.then(()=>{return $});return $},q=($,W,j)=>{if(cJ($))return $.aborted=!0,$;let K=Y(W,G,j);if(K instanceof Promise){if(j.async===!1)throw new NJ;return K.then((z)=>Q._zod.parse(z,j))}return Q._zod.parse(K,j)};Q._zod.run=($,W)=>{if(W.skipChecks)return Q._zod.parse($,W);if(W.direction==="backward"){let K=Q._zod.parse({value:$.value,issues:[]},{...W,skipChecks:!0});if(K instanceof Promise)return K.then((z)=>{return q(z,$,W)});return q(K,$,W)}let j=Q._zod.parse($,W);if(j instanceof Promise){if(W.async===!1)throw new NJ;return j.then((K)=>Y(K,G,W))}return Y(j,G,W)}}N0(Q,"~standard",()=>({validate:(Y)=>{try{let q=nD(Q,Y);return q.success?{value:q.data}:{issues:q.error?.issues}}catch(q){return aD(Q,Y).then(($)=>$.success?{value:$.data}:{issues:$.error?.issues})}},vendor:"zod",version:1}))}),kG=V("$ZodString",(Q,J)=>{G0.init(Q,J),Q._zod.pattern=[...Q?._zod.bag?.patterns??[]].pop()??wO(Q._zod.bag),Q._zod.parse=(X,G)=>{if(J.coerce)try{X.value=String(X.value)}catch(Y){}if(typeof X.value==="string")return X;return X.issues.push({expected:"string",code:"invalid_type",input:X.value,inst:Q}),X}}),I0=V("$ZodStringFormat",(Q,J)=>{PG.init(Q,J),kG.init(Q,J)}),tO=V("$ZodGUID",(Q,J)=>{J.pattern??(J.pattern=$O),I0.init(Q,J)}),nO=V("$ZodUUID",(Q,J)=>{if(J.version){let X={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[J.version];if(X===void 0)throw Error(`Invalid UUID version: "${J.version}"`);J.pattern??(J.pattern=uX(X))}else J.pattern??(J.pattern=uX());I0.init(Q,J)}),aO=V("$ZodEmail",(Q,J)=>{J.pattern??(J.pattern=WO),I0.init(Q,J)}),eO=V("$ZodURL",(Q,J)=>{I0.init(Q,J),Q._zod.check=(X)=>{try{let G=X.value.trim(),Y=new URL(G);if(J.hostname){if(J.hostname.lastIndex=0,!J.hostname.test(Y.hostname))X.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:J.hostname.source,input:X.value,inst:Q,continue:!J.abort})}if(J.protocol){if(J.protocol.lastIndex=0,!J.protocol.test(Y.protocol.endsWith(":")?Y.protocol.slice(0,-1):Y.protocol))X.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:J.protocol.source,input:X.value,inst:Q,continue:!J.abort})}if(J.normalize)X.value=Y.href;else X.value=G;return}catch(G){X.issues.push({code:"invalid_format",format:"url",input:X.value,inst:Q,continue:!J.abort})}}}),QB=V("$ZodEmoji",(Q,J)=>{J.pattern??(J.pattern=KO()),I0.init(Q,J)}),JB=V("$ZodNanoID",(Q,J)=>{J.pattern??(J.pattern=GO),I0.init(Q,J)}),XB=V("$ZodCUID",(Q,J)=>{J.pattern??(J.pattern=eD),I0.init(Q,J)}),YB=V("$ZodCUID2",(Q,J)=>{J.pattern??(J.pattern=QO),I0.init(Q,J)}),GB=V("$ZodULID",(Q,J)=>{J.pattern??(J.pattern=JO),I0.init(Q,J)}),qB=V("$ZodXID",(Q,J)=>{J.pattern??(J.pattern=XO),I0.init(Q,J)}),$B=V("$ZodKSUID",(Q,J)=>{J.pattern??(J.pattern=YO),I0.init(Q,J)}),WB=V("$ZodISODateTime",(Q,J)=>{J.pattern??(J.pattern=EO(J)),I0.init(Q,J)}),jB=V("$ZodISODate",(Q,J)=>{J.pattern??(J.pattern=HO),I0.init(Q,J)}),KB=V("$ZodISOTime",(Q,J)=>{J.pattern??(J.pattern=LO(J)),I0.init(Q,J)}),zB=V("$ZodISODuration",(Q,J)=>{J.pattern??(J.pattern=qO),I0.init(Q,J)}),NB=V("$ZodIPv4",(Q,J)=>{J.pattern??(J.pattern=zO),I0.init(Q,J),Q._zod.bag.format="ipv4"}),UB=V("$ZodIPv6",(Q,J)=>{J.pattern??(J.pattern=NO),I0.init(Q,J),Q._zod.bag.format="ipv6",Q._zod.check=(X)=>{try{new URL(`http://[${X.value}]`)}catch{X.issues.push({code:"invalid_format",format:"ipv6",input:X.value,inst:Q,continue:!J.abort})}}}),MB=V("$ZodMAC",(Q,J)=>{J.pattern??(J.pattern=UO(J.delimiter)),I0.init(Q,J),Q._zod.bag.format="mac"}),DB=V("$ZodCIDRv4",(Q,J)=>{J.pattern??(J.pattern=MO),I0.init(Q,J)}),OB=V("$ZodCIDRv6",(Q,J)=>{J.pattern??(J.pattern=DO),I0.init(Q,J),Q._zod.check=(X)=>{let G=X.value.split("/");try{if(G.length!==2)throw Error();let[Y,q]=G;if(!q)throw Error();let $=Number(q);if(`${$}`!==q)throw Error();if($<0||$>128)throw Error();new URL(`http://[${Y}]`)}catch{X.issues.push({code:"invalid_format",format:"cidrv6",input:X.value,inst:Q,continue:!J.abort})}}});function Ej(Q){if(Q==="")return!0;if(Q.length%4!==0)return!1;try{return atob(Q),!0}catch{return!1}}var BB=V("$ZodBase64",(Q,J)=>{J.pattern??(J.pattern=OO),I0.init(Q,J),Q._zod.bag.contentEncoding="base64",Q._zod.check=(X)=>{if(Ej(X.value))return;X.issues.push({code:"invalid_format",format:"base64",input:X.value,inst:Q,continue:!J.abort})}});function RB(Q){if(!Bj.test(Q))return!1;let J=Q.replace(/[-_]/g,(G)=>G==="-"?"+":"/"),X=J.padEnd(Math.ceil(J.length/4)*4,"=");return Ej(X)}var HB=V("$ZodBase64URL",(Q,J)=>{J.pattern??(J.pattern=Bj),I0.init(Q,J),Q._zod.bag.contentEncoding="base64url",Q._zod.check=(X)=>{if(RB(X.value))return;X.issues.push({code:"invalid_format",format:"base64url",input:X.value,inst:Q,continue:!J.abort})}}),VB=V("$ZodE164",(Q,J)=>{J.pattern??(J.pattern=BO),I0.init(Q,J)});function LB(Q,J=null){try{let X=Q.split(".");if(X.length!==3)return!1;let[G]=X;if(!G)return!1;let Y=JSON.parse(atob(G));if("typ"in Y&&Y?.typ!=="JWT")return!1;if(!Y.alg)return!1;if(J&&(!("alg"in Y)||Y.alg!==J))return!1;return!0}catch{return!1}}var EB=V("$ZodJWT",(Q,J)=>{I0.init(Q,J),Q._zod.check=(X)=>{if(LB(X.value,J.alg))return;X.issues.push({code:"invalid_format",format:"jwt",input:X.value,inst:Q,continue:!J.abort})}}),wB=V("$ZodCustomStringFormat",(Q,J)=>{I0.init(Q,J),Q._zod.check=(X)=>{if(J.fn(X.value))return;X.issues.push({code:"invalid_format",format:J.format,input:X.value,inst:Q,continue:!J.abort})}}),wj=V("$ZodNumber",(Q,J)=>{G0.init(Q,J),Q._zod.pattern=Q._zod.bag.pattern??Rj,Q._zod.parse=(X,G)=>{if(J.coerce)try{X.value=Number(X.value)}catch($){}let Y=X.value;if(typeof Y==="number"&&!Number.isNaN(Y)&&Number.isFinite(Y))return X;let q=typeof Y==="number"?Number.isNaN(Y)?"NaN":!Number.isFinite(Y)?"Infinity":void 0:void 0;return X.issues.push({expected:"number",code:"invalid_type",input:Y,inst:Q,...q?{received:q}:{}}),X}}),CB=V("$ZodNumberFormat",(Q,J)=>{ZO.init(Q,J),wj.init(Q,J)}),Cj=V("$ZodBoolean",(Q,J)=>{G0.init(Q,J),Q._zod.pattern=IO,Q._zod.parse=(X,G)=>{if(J.coerce)try{X.value=Boolean(X.value)}catch(q){}let Y=X.value;if(typeof Y==="boolean")return X;return X.issues.push({expected:"boolean",code:"invalid_type",input:Y,inst:Q}),X}}),Aj=V("$ZodBigInt",(Q,J)=>{G0.init(Q,J),Q._zod.pattern=CO,Q._zod.parse=(X,G)=>{if(J.coerce)try{X.value=BigInt(X.value)}catch(Y){}if(typeof X.value==="bigint")return X;return X.issues.push({expected:"bigint",code:"invalid_type",input:X.value,inst:Q}),X}}),AB=V("$ZodBigIntFormat",(Q,J)=>{TO.init(Q,J),Aj.init(Q,J)}),IB=V("$ZodSymbol",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X,G)=>{let Y=X.value;if(typeof Y==="symbol")return X;return X.issues.push({expected:"symbol",code:"invalid_type",input:Y,inst:Q}),X}}),SB=V("$ZodUndefined",(Q,J)=>{G0.init(Q,J),Q._zod.pattern=vO,Q._zod.values=new Set([void 0]),Q._zod.optin="optional",Q._zod.optout="optional",Q._zod.parse=(X,G)=>{let Y=X.value;if(typeof Y>"u")return X;return X.issues.push({expected:"undefined",code:"invalid_type",input:Y,inst:Q}),X}}),vB=V("$ZodNull",(Q,J)=>{G0.init(Q,J),Q._zod.pattern=SO,Q._zod.values=new Set([null]),Q._zod.parse=(X,G)=>{let Y=X.value;if(Y===null)return X;return X.issues.push({expected:"null",code:"invalid_type",input:Y,inst:Q}),X}}),_B=V("$ZodAny",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X)=>X}),FB=V("$ZodUnknown",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X)=>X}),PB=V("$ZodNever",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X,G)=>{return X.issues.push({expected:"never",code:"invalid_type",input:X.value,inst:Q}),X}}),kB=V("$ZodVoid",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X,G)=>{let Y=X.value;if(typeof Y>"u")return X;return X.issues.push({expected:"void",code:"invalid_type",input:Y,inst:Q}),X}}),ZB=V("$ZodDate",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X,G)=>{if(J.coerce)try{X.value=new Date(X.value)}catch($){}let Y=X.value,q=Y instanceof Date;if(q&&!Number.isNaN(Y.getTime()))return X;return X.issues.push({expected:"date",code:"invalid_type",input:Y,...q?{received:"Invalid Date"}:{},inst:Q}),X}});function NU(Q,J,X){if(Q.issues.length)J.issues.push(...e8(X,Q.issues));J.value[X]=Q.value}var TB=V("$ZodArray",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X,G)=>{let Y=X.value;if(!Array.isArray(Y))return X.issues.push({expected:"array",code:"invalid_type",input:Y,inst:Q}),X;X.value=Array(Y.length);let q=[];for(let $=0;$<Y.length;$++){let W=Y[$],j=J.element._zod.run({value:W,issues:[]},G);if(j instanceof Promise)q.push(j.then((K)=>NU(K,X,$)));else NU(j,X,$)}if(q.length)return Promise.all(q).then(()=>X);return X}});function j$(Q,J,X,G,Y){if(Q.issues.length){if(Y&&!(X in G))return;J.issues.push(...e8(X,Q.issues))}if(Q.value===void 0){if(X in G)J.value[X]=void 0}else J.value[X]=Q.value}function xB(Q){let J=Object.keys(Q.shape);for(let G of J)if(!Q.shape?.[G]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${G}": expected a Zod schema`);let X=uD(Q.shape);return{...Q,keys:J,keySet:new Set(J),numKeys:J.length,optionalKeys:new Set(X)}}function gB(Q,J,X,G,Y,q){let $=[],W=Y.keySet,j=Y.catchall._zod,K=j.def.type,z=j.optout==="optional";for(let N in J){if(W.has(N))continue;if(K==="never"){$.push(N);continue}let U=j.run({value:J[N],issues:[]},G);if(U instanceof Promise)Q.push(U.then((M)=>j$(M,X,N,J,z)));else j$(U,X,N,J,z)}if($.length)X.issues.push({code:"unrecognized_keys",keys:$,input:J,inst:q});if(!Q.length)return X;return Promise.all(Q).then(()=>{return X})}var fB=V("$ZodObject",(Q,J)=>{if(G0.init(Q,J),!Object.getOwnPropertyDescriptor(J,"shape")?.get){let $=J.shape;Object.defineProperty(J,"shape",{get:()=>{let W={...$};return Object.defineProperty(J,"shape",{value:W}),W}})}let X=CG(()=>xB(J));N0(Q._zod,"propValues",()=>{let $=J.shape,W={};for(let j in $){let K=$[j]._zod;if(K.values){W[j]??(W[j]=new Set);for(let z of K.values)W[j].add(z)}}return W});let G=lX,Y=J.catchall,q;Q._zod.parse=($,W)=>{q??(q=X.value);let j=$.value;if(!G(j))return $.issues.push({expected:"object",code:"invalid_type",input:j,inst:Q}),$;$.value={};let K=[],z=q.shape;for(let N of q.keys){let U=z[N],M=U._zod.optout==="optional",D=U._zod.run({value:j[N],issues:[]},W);if(D instanceof Promise)K.push(D.then((O)=>j$(O,$,N,j,M)));else j$(D,$,N,j,M)}if(!Y)return K.length?Promise.all(K).then(()=>$):$;return gB(K,j,$,W,X.value,Q)}}),hB=V("$ZodObjectJIT",(Q,J)=>{fB.init(Q,J);let X=Q._zod.parse,G=CG(()=>xB(J)),Y=(N)=>{let U=new Lj(["shape","payload","ctx"]),M=G.value,D=(I)=>{let H=cW(I);return`shape[${H}]._zod.run({ value: input[${H}], issues: [] }, ctx)`};U.write("const input = payload.value;");let O=Object.create(null),w=0;for(let I of M.keys)O[I]=`key_${w++}`;U.write("const newResult = {};");for(let I of M.keys){let H=O[I],E=cW(I),A=N[I]?._zod?.optout==="optional";if(U.write(`const ${H} = ${D(I)};`),A)U.write(`
|
|
39
|
+
if (${H}.issues.length) {
|
|
40
|
+
if (${E} in input) {
|
|
41
|
+
payload.issues = payload.issues.concat(${H}.issues.map(iss => ({
|
|
42
|
+
...iss,
|
|
43
|
+
path: iss.path ? [${E}, ...iss.path] : [${E}]
|
|
44
|
+
})));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (${H}.value === undefined) {
|
|
49
|
+
if (${E} in input) {
|
|
50
|
+
newResult[${E}] = undefined;
|
|
51
|
+
}
|
|
52
|
+
} else {
|
|
53
|
+
newResult[${E}] = ${H}.value;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
`);else U.write(`
|
|
57
|
+
if (${H}.issues.length) {
|
|
58
|
+
payload.issues = payload.issues.concat(${H}.issues.map(iss => ({
|
|
59
|
+
...iss,
|
|
60
|
+
path: iss.path ? [${E}, ...iss.path] : [${E}]
|
|
61
|
+
})));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (${H}.value === undefined) {
|
|
65
|
+
if (${E} in input) {
|
|
66
|
+
newResult[${E}] = undefined;
|
|
67
|
+
}
|
|
68
|
+
} else {
|
|
69
|
+
newResult[${E}] = ${H}.value;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
`)}U.write("payload.value = newResult;"),U.write("return payload;");let C=U.compile();return(I,H)=>C(N,I,H)},q,$=lX,W=!G$.jitless,j=W&&mD.value,K=J.catchall,z;Q._zod.parse=(N,U)=>{z??(z=G.value);let M=N.value;if(!$(M))return N.issues.push({expected:"object",code:"invalid_type",input:M,inst:Q}),N;if(W&&j&&U?.async===!1&&U.jitless!==!0){if(!q)q=Y(J.shape);if(N=q(N,U),!K)return N;return gB([],M,N,U,z,Q)}return X(N,U)}});function UU(Q,J,X,G){for(let q of Q)if(q.issues.length===0)return J.value=q.value,J;let Y=Q.filter((q)=>!cJ(q));if(Y.length===1)return J.value=Y[0].value,Y[0];return J.issues.push({code:"invalid_union",input:J.value,inst:X,errors:Q.map((q)=>q.issues.map(($)=>c8($,G,$8())))}),J}var Z$=V("$ZodUnion",(Q,J)=>{G0.init(Q,J),N0(Q._zod,"optin",()=>J.options.some((Y)=>Y._zod.optin==="optional")?"optional":void 0),N0(Q._zod,"optout",()=>J.options.some((Y)=>Y._zod.optout==="optional")?"optional":void 0),N0(Q._zod,"values",()=>{if(J.options.every((Y)=>Y._zod.values))return new Set(J.options.flatMap((Y)=>Array.from(Y._zod.values)));return}),N0(Q._zod,"pattern",()=>{if(J.options.every((Y)=>Y._zod.pattern)){let Y=J.options.map((q)=>q._zod.pattern);return new RegExp(`^(${Y.map((q)=>F$(q.source)).join("|")})$`)}return});let X=J.options.length===1,G=J.options[0]._zod.run;Q._zod.parse=(Y,q)=>{if(X)return G(Y,q);let $=!1,W=[];for(let j of J.options){let K=j._zod.run({value:Y.value,issues:[]},q);if(K instanceof Promise)W.push(K),$=!0;else{if(K.issues.length===0)return K;W.push(K)}}if(!$)return UU(W,Y,Q,q);return Promise.all(W).then((j)=>{return UU(j,Y,Q,q)})}});function MU(Q,J,X,G){let Y=Q.filter((q)=>q.issues.length===0);if(Y.length===1)return J.value=Y[0].value,J;if(Y.length===0)J.issues.push({code:"invalid_union",input:J.value,inst:X,errors:Q.map((q)=>q.issues.map(($)=>c8($,G,$8())))});else J.issues.push({code:"invalid_union",input:J.value,inst:X,errors:[],inclusive:!1});return J}var mB=V("$ZodXor",(Q,J)=>{Z$.init(Q,J),J.inclusive=!1;let X=J.options.length===1,G=J.options[0]._zod.run;Q._zod.parse=(Y,q)=>{if(X)return G(Y,q);let $=!1,W=[];for(let j of J.options){let K=j._zod.run({value:Y.value,issues:[]},q);if(K instanceof Promise)W.push(K),$=!0;else W.push(K)}if(!$)return MU(W,Y,Q,q);return Promise.all(W).then((j)=>{return MU(j,Y,Q,q)})}}),yB=V("$ZodDiscriminatedUnion",(Q,J)=>{J.inclusive=!1,Z$.init(Q,J);let X=Q._zod.parse;N0(Q._zod,"propValues",()=>{let Y={};for(let q of J.options){let $=q._zod.propValues;if(!$||Object.keys($).length===0)throw Error(`Invalid discriminated union option at index "${J.options.indexOf(q)}"`);for(let[W,j]of Object.entries($)){if(!Y[W])Y[W]=new Set;for(let K of j)Y[W].add(K)}}return Y});let G=CG(()=>{let Y=J.options,q=new Map;for(let $ of Y){let W=$._zod.propValues?.[J.discriminator];if(!W||W.size===0)throw Error(`Invalid discriminated union option at index "${J.options.indexOf($)}"`);for(let j of W){if(q.has(j))throw Error(`Duplicate discriminator value "${String(j)}"`);q.set(j,$)}}return q});Q._zod.parse=(Y,q)=>{let $=Y.value;if(!lX($))return Y.issues.push({code:"invalid_type",expected:"object",input:$,inst:Q}),Y;let W=G.value.get($?.[J.discriminator]);if(W)return W._zod.run(Y,q);if(J.unionFallback)return X(Y,q);return Y.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:J.discriminator,input:$,path:[J.discriminator],inst:Q}),Y}}),lB=V("$ZodIntersection",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X,G)=>{let Y=X.value,q=J.left._zod.run({value:Y,issues:[]},G),$=J.right._zod.run({value:Y,issues:[]},G);if(q instanceof Promise||$ instanceof Promise)return Promise.all([q,$]).then(([W,j])=>{return DU(X,W,j)});return DU(X,q,$)}});function oW(Q,J){if(Q===J)return{valid:!0,data:Q};if(Q instanceof Date&&J instanceof Date&&+Q===+J)return{valid:!0,data:Q};if(aJ(Q)&&aJ(J)){let X=Object.keys(J),G=Object.keys(Q).filter((q)=>X.indexOf(q)!==-1),Y={...Q,...J};for(let q of G){let $=oW(Q[q],J[q]);if(!$.valid)return{valid:!1,mergeErrorPath:[q,...$.mergeErrorPath]};Y[q]=$.data}return{valid:!0,data:Y}}if(Array.isArray(Q)&&Array.isArray(J)){if(Q.length!==J.length)return{valid:!1,mergeErrorPath:[]};let X=[];for(let G=0;G<Q.length;G++){let Y=Q[G],q=J[G],$=oW(Y,q);if(!$.valid)return{valid:!1,mergeErrorPath:[G,...$.mergeErrorPath]};X.push($.data)}return{valid:!0,data:X}}return{valid:!1,mergeErrorPath:[]}}function DU(Q,J,X){let G=new Map,Y;for(let W of J.issues)if(W.code==="unrecognized_keys"){Y??(Y=W);for(let j of W.keys){if(!G.has(j))G.set(j,{});G.get(j).l=!0}}else Q.issues.push(W);for(let W of X.issues)if(W.code==="unrecognized_keys")for(let j of W.keys){if(!G.has(j))G.set(j,{});G.get(j).r=!0}else Q.issues.push(W);let q=[...G].filter(([,W])=>W.l&&W.r).map(([W])=>W);if(q.length&&Y)Q.issues.push({...Y,keys:q});if(cJ(Q))return Q;let $=oW(J.value,X.value);if(!$.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify($.mergeErrorPath)}`);return Q.value=$.data,Q}var Ij=V("$ZodTuple",(Q,J)=>{G0.init(Q,J);let X=J.items;Q._zod.parse=(G,Y)=>{let q=G.value;if(!Array.isArray(q))return G.issues.push({input:q,inst:Q,expected:"tuple",code:"invalid_type"}),G;G.value=[];let $=[],W=[...X].reverse().findIndex((z)=>z._zod.optin!=="optional"),j=W===-1?0:X.length-W;if(!J.rest){let z=q.length>X.length,N=q.length<j-1;if(z||N)return G.issues.push({...z?{code:"too_big",maximum:X.length,inclusive:!0}:{code:"too_small",minimum:X.length},input:q,inst:Q,origin:"array"}),G}let K=-1;for(let z of X){if(K++,K>=q.length){if(K>=j)continue}let N=z._zod.run({value:q[K],issues:[]},Y);if(N instanceof Promise)$.push(N.then((U)=>Cq(U,G,K)));else Cq(N,G,K)}if(J.rest){let z=q.slice(X.length);for(let N of z){K++;let U=J.rest._zod.run({value:N,issues:[]},Y);if(U instanceof Promise)$.push(U.then((M)=>Cq(M,G,K)));else Cq(U,G,K)}}if($.length)return Promise.all($).then(()=>G);return G}});function Cq(Q,J,X){if(Q.issues.length)J.issues.push(...e8(X,Q.issues));J.value[X]=Q.value}var uB=V("$ZodRecord",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X,G)=>{let Y=X.value;if(!aJ(Y))return X.issues.push({expected:"record",code:"invalid_type",input:Y,inst:Q}),X;let q=[],$=J.keyType._zod.values;if($){X.value={};let W=new Set;for(let K of $)if(typeof K==="string"||typeof K==="number"||typeof K==="symbol"){W.add(typeof K==="number"?K.toString():K);let z=J.valueType._zod.run({value:Y[K],issues:[]},G);if(z instanceof Promise)q.push(z.then((N)=>{if(N.issues.length)X.issues.push(...e8(K,N.issues));X.value[K]=N.value}));else{if(z.issues.length)X.issues.push(...e8(K,z.issues));X.value[K]=z.value}}let j;for(let K in Y)if(!W.has(K))j=j??[],j.push(K);if(j&&j.length>0)X.issues.push({code:"unrecognized_keys",input:Y,inst:Q,keys:j})}else{X.value={};for(let W of Reflect.ownKeys(Y)){if(W==="__proto__")continue;let j=J.keyType._zod.run({value:W,issues:[]},G);if(j instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(typeof W==="string"&&Rj.test(W)&&j.issues.length){let z=J.keyType._zod.run({value:Number(W),issues:[]},G);if(z instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(z.issues.length===0)j=z}if(j.issues.length){if(J.mode==="loose")X.value[W]=Y[W];else X.issues.push({code:"invalid_key",origin:"record",issues:j.issues.map((z)=>c8(z,G,$8())),input:W,path:[W],inst:Q});continue}let K=J.valueType._zod.run({value:Y[W],issues:[]},G);if(K instanceof Promise)q.push(K.then((z)=>{if(z.issues.length)X.issues.push(...e8(W,z.issues));X.value[j.value]=z.value}));else{if(K.issues.length)X.issues.push(...e8(W,K.issues));X.value[j.value]=K.value}}}if(q.length)return Promise.all(q).then(()=>X);return X}}),cB=V("$ZodMap",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X,G)=>{let Y=X.value;if(!(Y instanceof Map))return X.issues.push({expected:"map",code:"invalid_type",input:Y,inst:Q}),X;let q=[];X.value=new Map;for(let[$,W]of Y){let j=J.keyType._zod.run({value:$,issues:[]},G),K=J.valueType._zod.run({value:W,issues:[]},G);if(j instanceof Promise||K instanceof Promise)q.push(Promise.all([j,K]).then(([z,N])=>{OU(z,N,X,$,Y,Q,G)}));else OU(j,K,X,$,Y,Q,G)}if(q.length)return Promise.all(q).then(()=>X);return X}});function OU(Q,J,X,G,Y,q,$){if(Q.issues.length)if($$.has(typeof G))X.issues.push(...e8(G,Q.issues));else X.issues.push({code:"invalid_key",origin:"map",input:Y,inst:q,issues:Q.issues.map((W)=>c8(W,$,$8()))});if(J.issues.length)if($$.has(typeof G))X.issues.push(...e8(G,J.issues));else X.issues.push({origin:"map",code:"invalid_element",input:Y,inst:q,key:G,issues:J.issues.map((W)=>c8(W,$,$8()))});X.value.set(Q.value,J.value)}var pB=V("$ZodSet",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X,G)=>{let Y=X.value;if(!(Y instanceof Set))return X.issues.push({input:Y,inst:Q,expected:"set",code:"invalid_type"}),X;let q=[];X.value=new Set;for(let $ of Y){let W=J.valueType._zod.run({value:$,issues:[]},G);if(W instanceof Promise)q.push(W.then((j)=>BU(j,X)));else BU(W,X)}if(q.length)return Promise.all(q).then(()=>X);return X}});function BU(Q,J){if(Q.issues.length)J.issues.push(...Q.issues);J.value.add(Q.value)}var bB=V("$ZodEnum",(Q,J)=>{G0.init(Q,J);let X=Yj(J.entries),G=new Set(X);Q._zod.values=G,Q._zod.pattern=new RegExp(`^(${X.filter((Y)=>$$.has(typeof Y)).map((Y)=>typeof Y==="string"?uQ(Y):Y.toString()).join("|")})$`),Q._zod.parse=(Y,q)=>{let $=Y.value;if(G.has($))return Y;return Y.issues.push({code:"invalid_value",values:X,input:$,inst:Q}),Y}}),oB=V("$ZodLiteral",(Q,J)=>{if(G0.init(Q,J),J.values.length===0)throw Error("Cannot create literal schema with no valid values");let X=new Set(J.values);Q._zod.values=X,Q._zod.pattern=new RegExp(`^(${J.values.map((G)=>typeof G==="string"?uQ(G):G?uQ(G.toString()):String(G)).join("|")})$`),Q._zod.parse=(G,Y)=>{let q=G.value;if(X.has(q))return G;return G.issues.push({code:"invalid_value",values:J.values,input:q,inst:Q}),G}}),dB=V("$ZodFile",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X,G)=>{let Y=X.value;if(Y instanceof File)return X;return X.issues.push({expected:"file",code:"invalid_type",input:Y,inst:Q}),X}}),rB=V("$ZodTransform",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X,G)=>{if(G.direction==="backward")throw new wG(Q.constructor.name);let Y=J.transform(X.value,X);if(G.async)return(Y instanceof Promise?Y:Promise.resolve(Y)).then((q)=>{return X.value=q,X});if(Y instanceof Promise)throw new NJ;return X.value=Y,X}});function RU(Q,J){if(Q.issues.length&&J===void 0)return{issues:[],value:void 0};return Q}var Sj=V("$ZodOptional",(Q,J)=>{G0.init(Q,J),Q._zod.optin="optional",Q._zod.optout="optional",N0(Q._zod,"values",()=>{return J.innerType._zod.values?new Set([...J.innerType._zod.values,void 0]):void 0}),N0(Q._zod,"pattern",()=>{let X=J.innerType._zod.pattern;return X?new RegExp(`^(${F$(X.source)})?$`):void 0}),Q._zod.parse=(X,G)=>{if(J.innerType._zod.optin==="optional"){let Y=J.innerType._zod.run(X,G);if(Y instanceof Promise)return Y.then((q)=>RU(q,X.value));return RU(Y,X.value)}if(X.value===void 0)return X;return J.innerType._zod.run(X,G)}}),sB=V("$ZodExactOptional",(Q,J)=>{Sj.init(Q,J),N0(Q._zod,"values",()=>J.innerType._zod.values),N0(Q._zod,"pattern",()=>J.innerType._zod.pattern),Q._zod.parse=(X,G)=>{return J.innerType._zod.run(X,G)}}),iB=V("$ZodNullable",(Q,J)=>{G0.init(Q,J),N0(Q._zod,"optin",()=>J.innerType._zod.optin),N0(Q._zod,"optout",()=>J.innerType._zod.optout),N0(Q._zod,"pattern",()=>{let X=J.innerType._zod.pattern;return X?new RegExp(`^(${F$(X.source)}|null)$`):void 0}),N0(Q._zod,"values",()=>{return J.innerType._zod.values?new Set([...J.innerType._zod.values,null]):void 0}),Q._zod.parse=(X,G)=>{if(X.value===null)return X;return J.innerType._zod.run(X,G)}}),tB=V("$ZodDefault",(Q,J)=>{G0.init(Q,J),Q._zod.optin="optional",N0(Q._zod,"values",()=>J.innerType._zod.values),Q._zod.parse=(X,G)=>{if(G.direction==="backward")return J.innerType._zod.run(X,G);if(X.value===void 0)return X.value=J.defaultValue,X;let Y=J.innerType._zod.run(X,G);if(Y instanceof Promise)return Y.then((q)=>HU(q,J));return HU(Y,J)}});function HU(Q,J){if(Q.value===void 0)Q.value=J.defaultValue;return Q}var nB=V("$ZodPrefault",(Q,J)=>{G0.init(Q,J),Q._zod.optin="optional",N0(Q._zod,"values",()=>J.innerType._zod.values),Q._zod.parse=(X,G)=>{if(G.direction==="backward")return J.innerType._zod.run(X,G);if(X.value===void 0)X.value=J.defaultValue;return J.innerType._zod.run(X,G)}}),aB=V("$ZodNonOptional",(Q,J)=>{G0.init(Q,J),N0(Q._zod,"values",()=>{let X=J.innerType._zod.values;return X?new Set([...X].filter((G)=>G!==void 0)):void 0}),Q._zod.parse=(X,G)=>{let Y=J.innerType._zod.run(X,G);if(Y instanceof Promise)return Y.then((q)=>VU(q,Q));return VU(Y,Q)}});function VU(Q,J){if(!Q.issues.length&&Q.value===void 0)Q.issues.push({code:"invalid_type",expected:"nonoptional",input:Q.value,inst:J});return Q}var eB=V("$ZodSuccess",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X,G)=>{if(G.direction==="backward")throw new wG("ZodSuccess");let Y=J.innerType._zod.run(X,G);if(Y instanceof Promise)return Y.then((q)=>{return X.value=q.issues.length===0,X});return X.value=Y.issues.length===0,X}}),QR=V("$ZodCatch",(Q,J)=>{G0.init(Q,J),N0(Q._zod,"optin",()=>J.innerType._zod.optin),N0(Q._zod,"optout",()=>J.innerType._zod.optout),N0(Q._zod,"values",()=>J.innerType._zod.values),Q._zod.parse=(X,G)=>{if(G.direction==="backward")return J.innerType._zod.run(X,G);let Y=J.innerType._zod.run(X,G);if(Y instanceof Promise)return Y.then((q)=>{if(X.value=q.value,q.issues.length)X.value=J.catchValue({...X,error:{issues:q.issues.map(($)=>c8($,G,$8()))},input:X.value}),X.issues=[];return X});if(X.value=Y.value,Y.issues.length)X.value=J.catchValue({...X,error:{issues:Y.issues.map((q)=>c8(q,G,$8()))},input:X.value}),X.issues=[];return X}}),JR=V("$ZodNaN",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X,G)=>{if(typeof X.value!=="number"||!Number.isNaN(X.value))return X.issues.push({input:X.value,inst:Q,expected:"nan",code:"invalid_type"}),X;return X}}),XR=V("$ZodPipe",(Q,J)=>{G0.init(Q,J),N0(Q._zod,"values",()=>J.in._zod.values),N0(Q._zod,"optin",()=>J.in._zod.optin),N0(Q._zod,"optout",()=>J.out._zod.optout),N0(Q._zod,"propValues",()=>J.in._zod.propValues),Q._zod.parse=(X,G)=>{if(G.direction==="backward"){let q=J.out._zod.run(X,G);if(q instanceof Promise)return q.then(($)=>Aq($,J.in,G));return Aq(q,J.in,G)}let Y=J.in._zod.run(X,G);if(Y instanceof Promise)return Y.then((q)=>Aq(q,J.out,G));return Aq(Y,J.out,G)}});function Aq(Q,J,X){if(Q.issues.length)return Q.aborted=!0,Q;return J._zod.run({value:Q.value,issues:Q.issues},X)}var vj=V("$ZodCodec",(Q,J)=>{G0.init(Q,J),N0(Q._zod,"values",()=>J.in._zod.values),N0(Q._zod,"optin",()=>J.in._zod.optin),N0(Q._zod,"optout",()=>J.out._zod.optout),N0(Q._zod,"propValues",()=>J.in._zod.propValues),Q._zod.parse=(X,G)=>{if((G.direction||"forward")==="forward"){let Y=J.in._zod.run(X,G);if(Y instanceof Promise)return Y.then((q)=>Iq(q,J,G));return Iq(Y,J,G)}else{let Y=J.out._zod.run(X,G);if(Y instanceof Promise)return Y.then((q)=>Iq(q,J,G));return Iq(Y,J,G)}}});function Iq(Q,J,X){if(Q.issues.length)return Q.aborted=!0,Q;if((X.direction||"forward")==="forward"){let G=J.transform(Q.value,Q);if(G instanceof Promise)return G.then((Y)=>Sq(Q,Y,J.out,X));return Sq(Q,G,J.out,X)}else{let G=J.reverseTransform(Q.value,Q);if(G instanceof Promise)return G.then((Y)=>Sq(Q,Y,J.in,X));return Sq(Q,G,J.in,X)}}function Sq(Q,J,X,G){if(Q.issues.length)return Q.aborted=!0,Q;return X._zod.run({value:J,issues:Q.issues},G)}var YR=V("$ZodReadonly",(Q,J)=>{G0.init(Q,J),N0(Q._zod,"propValues",()=>J.innerType._zod.propValues),N0(Q._zod,"values",()=>J.innerType._zod.values),N0(Q._zod,"optin",()=>J.innerType?._zod?.optin),N0(Q._zod,"optout",()=>J.innerType?._zod?.optout),Q._zod.parse=(X,G)=>{if(G.direction==="backward")return J.innerType._zod.run(X,G);let Y=J.innerType._zod.run(X,G);if(Y instanceof Promise)return Y.then(LU);return LU(Y)}});function LU(Q){return Q.value=Object.freeze(Q.value),Q}var GR=V("$ZodTemplateLiteral",(Q,J)=>{G0.init(Q,J);let X=[];for(let G of J.parts)if(typeof G==="object"&&G!==null){if(!G._zod.pattern)throw Error(`Invalid template literal part, no pattern found: ${[...G._zod.traits].shift()}`);let Y=G._zod.pattern instanceof RegExp?G._zod.pattern.source:G._zod.pattern;if(!Y)throw Error(`Invalid template literal part: ${G._zod.traits}`);let q=Y.startsWith("^")?1:0,$=Y.endsWith("$")?Y.length-1:Y.length;X.push(Y.slice(q,$))}else if(G===null||lD.has(typeof G))X.push(uQ(`${G}`));else throw Error(`Invalid template literal part: ${G}`);Q._zod.pattern=new RegExp(`^${X.join("")}$`),Q._zod.parse=(G,Y)=>{if(typeof G.value!=="string")return G.issues.push({input:G.value,inst:Q,expected:"string",code:"invalid_type"}),G;if(Q._zod.pattern.lastIndex=0,!Q._zod.pattern.test(G.value))return G.issues.push({input:G.value,inst:Q,code:"invalid_format",format:J.format??"template_literal",pattern:Q._zod.pattern.source}),G;return G}}),qR=V("$ZodFunction",(Q,J)=>{return G0.init(Q,J),Q._def=J,Q._zod.def=J,Q.implement=(X)=>{if(typeof X!=="function")throw Error("implement() must be called with a function");return function(...G){let Y=Q._def.input?pW(Q._def.input,G):G,q=Reflect.apply(X,this,Y);if(Q._def.output)return pW(Q._def.output,q);return q}},Q.implementAsync=(X)=>{if(typeof X!=="function")throw Error("implementAsync() must be called with a function");return async function(...G){let Y=Q._def.input?await bW(Q._def.input,G):G,q=await Reflect.apply(X,this,Y);if(Q._def.output)return await bW(Q._def.output,q);return q}},Q._zod.parse=(X,G)=>{if(typeof X.value!=="function")return X.issues.push({code:"invalid_type",expected:"function",input:X.value,inst:Q}),X;if(Q._def.output&&Q._def.output._zod.def.type==="promise")X.value=Q.implementAsync(X.value);else X.value=Q.implement(X.value);return X},Q.input=(...X)=>{let G=Q.constructor;if(Array.isArray(X[0]))return new G({type:"function",input:new Ij({type:"tuple",items:X[0],rest:X[1]}),output:Q._def.output});return new G({type:"function",input:X[0],output:Q._def.output})},Q.output=(X)=>{return new Q.constructor({type:"function",input:Q._def.input,output:X})},Q}),$R=V("$ZodPromise",(Q,J)=>{G0.init(Q,J),Q._zod.parse=(X,G)=>{return Promise.resolve(X.value).then((Y)=>J.innerType._zod.run({value:Y,issues:[]},G))}}),WR=V("$ZodLazy",(Q,J)=>{G0.init(Q,J),N0(Q._zod,"innerType",()=>J.getter()),N0(Q._zod,"pattern",()=>Q._zod.innerType?._zod?.pattern),N0(Q._zod,"propValues",()=>Q._zod.innerType?._zod?.propValues),N0(Q._zod,"optin",()=>Q._zod.innerType?._zod?.optin??void 0),N0(Q._zod,"optout",()=>Q._zod.innerType?._zod?.optout??void 0),Q._zod.parse=(X,G)=>{return Q._zod.innerType._zod.run(X,G)}}),jR=V("$ZodCustom",(Q,J)=>{k0.init(Q,J),G0.init(Q,J),Q._zod.parse=(X,G)=>{return X},Q._zod.check=(X)=>{let G=X.value,Y=J.fn(G);if(Y instanceof Promise)return Y.then((q)=>EU(q,X,G,Q));EU(Y,X,G,Q);return}});function EU(Q,J,X,G){if(!Q){let Y={code:"custom",input:X,inst:G,path:[...G._zod.def.path??[]],continue:!G._zod.def.abort};if(G._zod.def.params)Y.params=G._zod.def.params;J.issues.push(W$(Y))}}var _j={};QQ(_j,{zhTW:()=>JF,zhCN:()=>e_,yo:()=>YF,vi:()=>n_,uz:()=>i_,ur:()=>r_,uk:()=>NR,ua:()=>o_,tr:()=>p_,th:()=>u_,ta:()=>y_,sv:()=>h_,sl:()=>g_,ru:()=>T_,pt:()=>k_,ps:()=>v_,pl:()=>F_,ota:()=>I_,no:()=>C_,nl:()=>E_,ms:()=>V_,mk:()=>R_,lt:()=>O_,ko:()=>M_,km:()=>zR,kh:()=>N_,ka:()=>K_,ja:()=>W_,it:()=>q_,is:()=>Y_,id:()=>J_,hy:()=>ev,hu:()=>nv,he:()=>iv,frCA:()=>rv,fr:()=>ov,fi:()=>pv,fa:()=>uv,es:()=>yv,eo:()=>hv,en:()=>KR,de:()=>xv,da:()=>Zv,cs:()=>Pv,ca:()=>_v,bg:()=>Sv,be:()=>Av,az:()=>wv,ar:()=>Lv});var Vv=()=>{let Q={string:{unit:"حرف",verb:"أن يحوي"},file:{unit:"بايت",verb:"أن يحوي"},array:{unit:"عنصر",verb:"أن يحوي"},set:{unit:"عنصر",verb:"أن يحوي"}};function J(Y){return Q[Y]??null}let X={regex:"مدخل",email:"بريد إلكتروني",url:"رابط",emoji:"إيموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاريخ ووقت بمعيار ISO",date:"تاريخ بمعيار ISO",time:"وقت بمعيار ISO",duration:"مدة بمعيار ISO",ipv4:"عنوان IPv4",ipv6:"عنوان IPv6",cidrv4:"مدى عناوين بصيغة IPv4",cidrv6:"مدى عناوين بصيغة IPv6",base64:"نَص بترميز base64-encoded",base64url:"نَص بترميز base64url-encoded",json_string:"نَص على هيئة JSON",e164:"رقم هاتف بمعيار E.164",jwt:"JWT",template_literal:"مدخل"},G={nan:"NaN"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`مدخلات غير مقبولة: يفترض إدخال instanceof ${Y.expected}، ولكن تم إدخال ${W}`;return`مدخلات غير مقبولة: يفترض إدخال ${q}، ولكن تم إدخال ${W}`}case"invalid_value":if(Y.values.length===1)return`مدخلات غير مقبولة: يفترض إدخال ${J0(Y.values[0])}`;return`اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return` أكبر من اللازم: يفترض أن تكون ${Y.origin??"القيمة"} ${q} ${Y.maximum.toString()} ${$.unit??"عنصر"}`;return`أكبر من اللازم: يفترض أن تكون ${Y.origin??"القيمة"} ${q} ${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`أصغر من اللازم: يفترض لـ ${Y.origin} أن يكون ${q} ${Y.minimum.toString()} ${$.unit}`;return`أصغر من اللازم: يفترض لـ ${Y.origin} أن يكون ${q} ${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`نَص غير مقبول: يجب أن يبدأ بـ "${Y.prefix}"`;if(q.format==="ends_with")return`نَص غير مقبول: يجب أن ينتهي بـ "${q.suffix}"`;if(q.format==="includes")return`نَص غير مقبول: يجب أن يتضمَّن "${q.includes}"`;if(q.format==="regex")return`نَص غير مقبول: يجب أن يطابق النمط ${q.pattern}`;return`${X[q.format]??Y.format} غير مقبول`}case"not_multiple_of":return`رقم غير مقبول: يجب أن يكون من مضاعفات ${Y.divisor}`;case"unrecognized_keys":return`معرف${Y.keys.length>1?"ات":""} غريب${Y.keys.length>1?"ة":""}: ${k(Y.keys,"، ")}`;case"invalid_key":return`معرف غير مقبول في ${Y.origin}`;case"invalid_union":return"مدخل غير مقبول";case"invalid_element":return`مدخل غير مقبول في ${Y.origin}`;default:return"مدخل غير مقبول"}}};function Lv(){return{localeError:Vv()}}var Ev=()=>{let Q={string:{unit:"simvol",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"element",verb:"olmalıdır"},set:{unit:"element",verb:"olmalıdır"}};function J(Y){return Q[Y]??null}let X={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},G={nan:"NaN"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Yanlış dəyər: gözlənilən instanceof ${Y.expected}, daxil olan ${W}`;return`Yanlış dəyər: gözlənilən ${q}, daxil olan ${W}`}case"invalid_value":if(Y.values.length===1)return`Yanlış dəyər: gözlənilən ${J0(Y.values[0])}`;return`Yanlış seçim: aşağıdakılardan biri olmalıdır: ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Çox böyük: gözlənilən ${Y.origin??"dəyər"} ${q}${Y.maximum.toString()} ${$.unit??"element"}`;return`Çox böyük: gözlənilən ${Y.origin??"dəyər"} ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Çox kiçik: gözlənilən ${Y.origin} ${q}${Y.minimum.toString()} ${$.unit}`;return`Çox kiçik: gözlənilən ${Y.origin} ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Yanlış mətn: "${q.prefix}" ilə başlamalıdır`;if(q.format==="ends_with")return`Yanlış mətn: "${q.suffix}" ilə bitməlidir`;if(q.format==="includes")return`Yanlış mətn: "${q.includes}" daxil olmalıdır`;if(q.format==="regex")return`Yanlış mətn: ${q.pattern} şablonuna uyğun olmalıdır`;return`Yanlış ${X[q.format]??Y.format}`}case"not_multiple_of":return`Yanlış ədəd: ${Y.divisor} ilə bölünə bilən olmalıdır`;case"unrecognized_keys":return`Tanınmayan açar${Y.keys.length>1?"lar":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`${Y.origin} daxilində yanlış açar`;case"invalid_union":return"Yanlış dəyər";case"invalid_element":return`${Y.origin} daxilində yanlış dəyər`;default:return"Yanlış dəyər"}}};function wv(){return{localeError:Ev()}}function wU(Q,J,X,G){let Y=Math.abs(Q),q=Y%10,$=Y%100;if($>=11&&$<=19)return G;if(q===1)return J;if(q>=2&&q<=4)return X;return G}var Cv=()=>{let Q={string:{unit:{one:"сімвал",few:"сімвалы",many:"сімвалаў"},verb:"мець"},array:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},set:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},file:{unit:{one:"байт",few:"байты",many:"байтаў"},verb:"мець"}};function J(Y){return Q[Y]??null}let X={regex:"увод",email:"email адрас",url:"URL",emoji:"эмодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата і час",date:"ISO дата",time:"ISO час",duration:"ISO працягласць",ipv4:"IPv4 адрас",ipv6:"IPv6 адрас",cidrv4:"IPv4 дыяпазон",cidrv6:"IPv6 дыяпазон",base64:"радок у фармаце base64",base64url:"радок у фармаце base64url",json_string:"JSON радок",e164:"нумар E.164",jwt:"JWT",template_literal:"увод"},G={nan:"NaN",number:"лік",array:"масіў"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Няправільны ўвод: чакаўся instanceof ${Y.expected}, атрымана ${W}`;return`Няправільны ўвод: чакаўся ${q}, атрымана ${W}`}case"invalid_value":if(Y.values.length===1)return`Няправільны ўвод: чакалася ${J0(Y.values[0])}`;return`Няправільны варыянт: чакаўся адзін з ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($){let W=Number(Y.maximum),j=wU(W,$.unit.one,$.unit.few,$.unit.many);return`Занадта вялікі: чакалася, што ${Y.origin??"значэнне"} павінна ${$.verb} ${q}${Y.maximum.toString()} ${j}`}return`Занадта вялікі: чакалася, што ${Y.origin??"значэнне"} павінна быць ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($){let W=Number(Y.minimum),j=wU(W,$.unit.one,$.unit.few,$.unit.many);return`Занадта малы: чакалася, што ${Y.origin} павінна ${$.verb} ${q}${Y.minimum.toString()} ${j}`}return`Занадта малы: чакалася, што ${Y.origin} павінна быць ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Няправільны радок: павінен пачынацца з "${q.prefix}"`;if(q.format==="ends_with")return`Няправільны радок: павінен заканчвацца на "${q.suffix}"`;if(q.format==="includes")return`Няправільны радок: павінен змяшчаць "${q.includes}"`;if(q.format==="regex")return`Няправільны радок: павінен адпавядаць шаблону ${q.pattern}`;return`Няправільны ${X[q.format]??Y.format}`}case"not_multiple_of":return`Няправільны лік: павінен быць кратным ${Y.divisor}`;case"unrecognized_keys":return`Нераспазнаны ${Y.keys.length>1?"ключы":"ключ"}: ${k(Y.keys,", ")}`;case"invalid_key":return`Няправільны ключ у ${Y.origin}`;case"invalid_union":return"Няправільны ўвод";case"invalid_element":return`Няправільнае значэнне ў ${Y.origin}`;default:return"Няправільны ўвод"}}};function Av(){return{localeError:Cv()}}var Iv=()=>{let Q={string:{unit:"символа",verb:"да съдържа"},file:{unit:"байта",verb:"да съдържа"},array:{unit:"елемента",verb:"да съдържа"},set:{unit:"елемента",verb:"да съдържа"}};function J(Y){return Q[Y]??null}let X={regex:"вход",email:"имейл адрес",url:"URL",emoji:"емоджи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO време",date:"ISO дата",time:"ISO време",duration:"ISO продължителност",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"base64-кодиран низ",base64url:"base64url-кодиран низ",json_string:"JSON низ",e164:"E.164 номер",jwt:"JWT",template_literal:"вход"},G={nan:"NaN",number:"число",array:"масив"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Невалиден вход: очакван instanceof ${Y.expected}, получен ${W}`;return`Невалиден вход: очакван ${q}, получен ${W}`}case"invalid_value":if(Y.values.length===1)return`Невалиден вход: очакван ${J0(Y.values[0])}`;return`Невалидна опция: очаквано едно от ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Твърде голямо: очаква се ${Y.origin??"стойност"} да съдържа ${q}${Y.maximum.toString()} ${$.unit??"елемента"}`;return`Твърде голямо: очаква се ${Y.origin??"стойност"} да бъде ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Твърде малко: очаква се ${Y.origin} да съдържа ${q}${Y.minimum.toString()} ${$.unit}`;return`Твърде малко: очаква се ${Y.origin} да бъде ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Невалиден низ: трябва да започва с "${q.prefix}"`;if(q.format==="ends_with")return`Невалиден низ: трябва да завършва с "${q.suffix}"`;if(q.format==="includes")return`Невалиден низ: трябва да включва "${q.includes}"`;if(q.format==="regex")return`Невалиден низ: трябва да съвпада с ${q.pattern}`;let $="Невалиден";if(q.format==="emoji")$="Невалидно";if(q.format==="datetime")$="Невалидно";if(q.format==="date")$="Невалидна";if(q.format==="time")$="Невалидно";if(q.format==="duration")$="Невалидна";return`${$} ${X[q.format]??Y.format}`}case"not_multiple_of":return`Невалидно число: трябва да бъде кратно на ${Y.divisor}`;case"unrecognized_keys":return`Неразпознат${Y.keys.length>1?"и":""} ключ${Y.keys.length>1?"ове":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`Невалиден ключ в ${Y.origin}`;case"invalid_union":return"Невалиден вход";case"invalid_element":return`Невалидна стойност в ${Y.origin}`;default:return"Невалиден вход"}}};function Sv(){return{localeError:Iv()}}var vv=()=>{let Q={string:{unit:"caràcters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function J(Y){return Q[Y]??null}let X={regex:"entrada",email:"adreça electrònica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adreça IPv4",ipv6:"adreça IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},G={nan:"NaN"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Tipus invàlid: s'esperava instanceof ${Y.expected}, s'ha rebut ${W}`;return`Tipus invàlid: s'esperava ${q}, s'ha rebut ${W}`}case"invalid_value":if(Y.values.length===1)return`Valor invàlid: s'esperava ${J0(Y.values[0])}`;return`Opció invàlida: s'esperava una de ${k(Y.values," o ")}`;case"too_big":{let q=Y.inclusive?"com a màxim":"menys de",$=J(Y.origin);if($)return`Massa gran: s'esperava que ${Y.origin??"el valor"} contingués ${q} ${Y.maximum.toString()} ${$.unit??"elements"}`;return`Massa gran: s'esperava que ${Y.origin??"el valor"} fos ${q} ${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?"com a mínim":"més de",$=J(Y.origin);if($)return`Massa petit: s'esperava que ${Y.origin} contingués ${q} ${Y.minimum.toString()} ${$.unit}`;return`Massa petit: s'esperava que ${Y.origin} fos ${q} ${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Format invàlid: ha de començar amb "${q.prefix}"`;if(q.format==="ends_with")return`Format invàlid: ha d'acabar amb "${q.suffix}"`;if(q.format==="includes")return`Format invàlid: ha d'incloure "${q.includes}"`;if(q.format==="regex")return`Format invàlid: ha de coincidir amb el patró ${q.pattern}`;return`Format invàlid per a ${X[q.format]??Y.format}`}case"not_multiple_of":return`Número invàlid: ha de ser múltiple de ${Y.divisor}`;case"unrecognized_keys":return`Clau${Y.keys.length>1?"s":""} no reconeguda${Y.keys.length>1?"s":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`Clau invàlida a ${Y.origin}`;case"invalid_union":return"Entrada invàlida";case"invalid_element":return`Element invàlid a ${Y.origin}`;default:return"Entrada invàlida"}}};function _v(){return{localeError:vv()}}var Fv=()=>{let Q={string:{unit:"znaků",verb:"mít"},file:{unit:"bajtů",verb:"mít"},array:{unit:"prvků",verb:"mít"},set:{unit:"prvků",verb:"mít"}};function J(Y){return Q[Y]??null}let X={regex:"regulární výraz",email:"e-mailová adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a čas ve formátu ISO",date:"datum ve formátu ISO",time:"čas ve formátu ISO",duration:"doba trvání ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"řetězec zakódovaný ve formátu base64",base64url:"řetězec zakódovaný ve formátu base64url",json_string:"řetězec ve formátu JSON",e164:"číslo E.164",jwt:"JWT",template_literal:"vstup"},G={nan:"NaN",number:"číslo",string:"řetězec",function:"funkce",array:"pole"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Neplatný vstup: očekáváno instanceof ${Y.expected}, obdrženo ${W}`;return`Neplatný vstup: očekáváno ${q}, obdrženo ${W}`}case"invalid_value":if(Y.values.length===1)return`Neplatný vstup: očekáváno ${J0(Y.values[0])}`;return`Neplatná možnost: očekávána jedna z hodnot ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Hodnota je příliš velká: ${Y.origin??"hodnota"} musí mít ${q}${Y.maximum.toString()} ${$.unit??"prvků"}`;return`Hodnota je příliš velká: ${Y.origin??"hodnota"} musí být ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Hodnota je příliš malá: ${Y.origin??"hodnota"} musí mít ${q}${Y.minimum.toString()} ${$.unit??"prvků"}`;return`Hodnota je příliš malá: ${Y.origin??"hodnota"} musí být ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Neplatný řetězec: musí začínat na "${q.prefix}"`;if(q.format==="ends_with")return`Neplatný řetězec: musí končit na "${q.suffix}"`;if(q.format==="includes")return`Neplatný řetězec: musí obsahovat "${q.includes}"`;if(q.format==="regex")return`Neplatný řetězec: musí odpovídat vzoru ${q.pattern}`;return`Neplatný formát ${X[q.format]??Y.format}`}case"not_multiple_of":return`Neplatné číslo: musí být násobkem ${Y.divisor}`;case"unrecognized_keys":return`Neznámé klíče: ${k(Y.keys,", ")}`;case"invalid_key":return`Neplatný klíč v ${Y.origin}`;case"invalid_union":return"Neplatný vstup";case"invalid_element":return`Neplatná hodnota v ${Y.origin}`;default:return"Neplatný vstup"}}};function Pv(){return{localeError:Fv()}}var kv=()=>{let Q={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}};function J(Y){return Q[Y]??null}let X={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslæt",date:"ISO-dato",time:"ISO-klokkeslæt",duration:"ISO-varighed",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},G={nan:"NaN",string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"sæt",file:"fil"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Ugyldigt input: forventede instanceof ${Y.expected}, fik ${W}`;return`Ugyldigt input: forventede ${q}, fik ${W}`}case"invalid_value":if(Y.values.length===1)return`Ugyldig værdi: forventede ${J0(Y.values[0])}`;return`Ugyldigt valg: forventede en af følgende ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin),W=G[Y.origin]??Y.origin;if($)return`For stor: forventede ${W??"value"} ${$.verb} ${q} ${Y.maximum.toString()} ${$.unit??"elementer"}`;return`For stor: forventede ${W??"value"} havde ${q} ${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin),W=G[Y.origin]??Y.origin;if($)return`For lille: forventede ${W} ${$.verb} ${q} ${Y.minimum.toString()} ${$.unit}`;return`For lille: forventede ${W} havde ${q} ${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Ugyldig streng: skal starte med "${q.prefix}"`;if(q.format==="ends_with")return`Ugyldig streng: skal ende med "${q.suffix}"`;if(q.format==="includes")return`Ugyldig streng: skal indeholde "${q.includes}"`;if(q.format==="regex")return`Ugyldig streng: skal matche mønsteret ${q.pattern}`;return`Ugyldig ${X[q.format]??Y.format}`}case"not_multiple_of":return`Ugyldigt tal: skal være deleligt med ${Y.divisor}`;case"unrecognized_keys":return`${Y.keys.length>1?"Ukendte nøgler":"Ukendt nøgle"}: ${k(Y.keys,", ")}`;case"invalid_key":return`Ugyldig nøgle i ${Y.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig værdi i ${Y.origin}`;default:return"Ugyldigt input"}}};function Zv(){return{localeError:kv()}}var Tv=()=>{let Q={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function J(Y){return Q[Y]??null}let X={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"},G={nan:"NaN",number:"Zahl",array:"Array"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Ungültige Eingabe: erwartet instanceof ${Y.expected}, erhalten ${W}`;return`Ungültige Eingabe: erwartet ${q}, erhalten ${W}`}case"invalid_value":if(Y.values.length===1)return`Ungültige Eingabe: erwartet ${J0(Y.values[0])}`;return`Ungültige Option: erwartet eine von ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Zu groß: erwartet, dass ${Y.origin??"Wert"} ${q}${Y.maximum.toString()} ${$.unit??"Elemente"} hat`;return`Zu groß: erwartet, dass ${Y.origin??"Wert"} ${q}${Y.maximum.toString()} ist`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Zu klein: erwartet, dass ${Y.origin} ${q}${Y.minimum.toString()} ${$.unit} hat`;return`Zu klein: erwartet, dass ${Y.origin} ${q}${Y.minimum.toString()} ist`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Ungültiger String: muss mit "${q.prefix}" beginnen`;if(q.format==="ends_with")return`Ungültiger String: muss mit "${q.suffix}" enden`;if(q.format==="includes")return`Ungültiger String: muss "${q.includes}" enthalten`;if(q.format==="regex")return`Ungültiger String: muss dem Muster ${q.pattern} entsprechen`;return`Ungültig: ${X[q.format]??Y.format}`}case"not_multiple_of":return`Ungültige Zahl: muss ein Vielfaches von ${Y.divisor} sein`;case"unrecognized_keys":return`${Y.keys.length>1?"Unbekannte Schlüssel":"Unbekannter Schlüssel"}: ${k(Y.keys,", ")}`;case"invalid_key":return`Ungültiger Schlüssel in ${Y.origin}`;case"invalid_union":return"Ungültige Eingabe";case"invalid_element":return`Ungültiger Wert in ${Y.origin}`;default:return"Ungültige Eingabe"}}};function xv(){return{localeError:Tv()}}var gv=()=>{let Q={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function J(Y){return Q[Y]??null}let X={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},G={nan:"NaN"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;return`Invalid input: expected ${q}, received ${W}`}case"invalid_value":if(Y.values.length===1)return`Invalid input: expected ${J0(Y.values[0])}`;return`Invalid option: expected one of ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Too big: expected ${Y.origin??"value"} to have ${q}${Y.maximum.toString()} ${$.unit??"elements"}`;return`Too big: expected ${Y.origin??"value"} to be ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Too small: expected ${Y.origin} to have ${q}${Y.minimum.toString()} ${$.unit}`;return`Too small: expected ${Y.origin} to be ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Invalid string: must start with "${q.prefix}"`;if(q.format==="ends_with")return`Invalid string: must end with "${q.suffix}"`;if(q.format==="includes")return`Invalid string: must include "${q.includes}"`;if(q.format==="regex")return`Invalid string: must match pattern ${q.pattern}`;return`Invalid ${X[q.format]??Y.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${Y.divisor}`;case"unrecognized_keys":return`Unrecognized key${Y.keys.length>1?"s":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`Invalid key in ${Y.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${Y.origin}`;default:return"Invalid input"}}};function KR(){return{localeError:gv()}}var fv=()=>{let Q={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function J(Y){return Q[Y]??null}let X={regex:"enigo",email:"retadreso",url:"URL",emoji:"emoĝio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-daŭro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"},G={nan:"NaN",number:"nombro",array:"tabelo",null:"senvalora"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Nevalida enigo: atendiĝis instanceof ${Y.expected}, riceviĝis ${W}`;return`Nevalida enigo: atendiĝis ${q}, riceviĝis ${W}`}case"invalid_value":if(Y.values.length===1)return`Nevalida enigo: atendiĝis ${J0(Y.values[0])}`;return`Nevalida opcio: atendiĝis unu el ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Tro granda: atendiĝis ke ${Y.origin??"valoro"} havu ${q}${Y.maximum.toString()} ${$.unit??"elementojn"}`;return`Tro granda: atendiĝis ke ${Y.origin??"valoro"} havu ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Tro malgranda: atendiĝis ke ${Y.origin} havu ${q}${Y.minimum.toString()} ${$.unit}`;return`Tro malgranda: atendiĝis ke ${Y.origin} estu ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Nevalida karaktraro: devas komenciĝi per "${q.prefix}"`;if(q.format==="ends_with")return`Nevalida karaktraro: devas finiĝi per "${q.suffix}"`;if(q.format==="includes")return`Nevalida karaktraro: devas inkluzivi "${q.includes}"`;if(q.format==="regex")return`Nevalida karaktraro: devas kongrui kun la modelo ${q.pattern}`;return`Nevalida ${X[q.format]??Y.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${Y.divisor}`;case"unrecognized_keys":return`Nekonata${Y.keys.length>1?"j":""} ŝlosilo${Y.keys.length>1?"j":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`Nevalida ŝlosilo en ${Y.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${Y.origin}`;default:return"Nevalida enigo"}}};function hv(){return{localeError:fv()}}var mv=()=>{let Q={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function J(Y){return Q[Y]??null}let X={regex:"entrada",email:"dirección de correo electrónico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duración ISO",ipv4:"dirección IPv4",ipv6:"dirección IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},G={nan:"NaN",string:"texto",number:"número",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"número grande",symbol:"símbolo",undefined:"indefinido",null:"nulo",function:"función",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeración",union:"unión",literal:"literal",promise:"promesa",void:"vacío",never:"nunca",unknown:"desconocido",any:"cualquiera"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Entrada inválida: se esperaba instanceof ${Y.expected}, recibido ${W}`;return`Entrada inválida: se esperaba ${q}, recibido ${W}`}case"invalid_value":if(Y.values.length===1)return`Entrada inválida: se esperaba ${J0(Y.values[0])}`;return`Opción inválida: se esperaba una de ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin),W=G[Y.origin]??Y.origin;if($)return`Demasiado grande: se esperaba que ${W??"valor"} tuviera ${q}${Y.maximum.toString()} ${$.unit??"elementos"}`;return`Demasiado grande: se esperaba que ${W??"valor"} fuera ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin),W=G[Y.origin]??Y.origin;if($)return`Demasiado pequeño: se esperaba que ${W} tuviera ${q}${Y.minimum.toString()} ${$.unit}`;return`Demasiado pequeño: se esperaba que ${W} fuera ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Cadena inválida: debe comenzar con "${q.prefix}"`;if(q.format==="ends_with")return`Cadena inválida: debe terminar en "${q.suffix}"`;if(q.format==="includes")return`Cadena inválida: debe incluir "${q.includes}"`;if(q.format==="regex")return`Cadena inválida: debe coincidir con el patrón ${q.pattern}`;return`Inválido ${X[q.format]??Y.format}`}case"not_multiple_of":return`Número inválido: debe ser múltiplo de ${Y.divisor}`;case"unrecognized_keys":return`Llave${Y.keys.length>1?"s":""} desconocida${Y.keys.length>1?"s":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`Llave inválida en ${G[Y.origin]??Y.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido en ${G[Y.origin]??Y.origin}`;default:return"Entrada inválida"}}};function yv(){return{localeError:mv()}}var lv=()=>{let Q={string:{unit:"کاراکتر",verb:"داشته باشد"},file:{unit:"بایت",verb:"داشته باشد"},array:{unit:"آیتم",verb:"داشته باشد"},set:{unit:"آیتم",verb:"داشته باشد"}};function J(Y){return Q[Y]??null}let X={regex:"ورودی",email:"آدرس ایمیل",url:"URL",emoji:"ایموجی",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاریخ و زمان ایزو",date:"تاریخ ایزو",time:"زمان ایزو",duration:"مدت زمان ایزو",ipv4:"IPv4 آدرس",ipv6:"IPv6 آدرس",cidrv4:"IPv4 دامنه",cidrv6:"IPv6 دامنه",base64:"base64-encoded رشته",base64url:"base64url-encoded رشته",json_string:"JSON رشته",e164:"E.164 عدد",jwt:"JWT",template_literal:"ورودی"},G={nan:"NaN",number:"عدد",array:"آرایه"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`ورودی نامعتبر: میبایست instanceof ${Y.expected} میبود، ${W} دریافت شد`;return`ورودی نامعتبر: میبایست ${q} میبود، ${W} دریافت شد`}case"invalid_value":if(Y.values.length===1)return`ورودی نامعتبر: میبایست ${J0(Y.values[0])} میبود`;return`گزینه نامعتبر: میبایست یکی از ${k(Y.values,"|")} میبود`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`خیلی بزرگ: ${Y.origin??"مقدار"} باید ${q}${Y.maximum.toString()} ${$.unit??"عنصر"} باشد`;return`خیلی بزرگ: ${Y.origin??"مقدار"} باید ${q}${Y.maximum.toString()} باشد`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`خیلی کوچک: ${Y.origin} باید ${q}${Y.minimum.toString()} ${$.unit} باشد`;return`خیلی کوچک: ${Y.origin} باید ${q}${Y.minimum.toString()} باشد`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`رشته نامعتبر: باید با "${q.prefix}" شروع شود`;if(q.format==="ends_with")return`رشته نامعتبر: باید با "${q.suffix}" تمام شود`;if(q.format==="includes")return`رشته نامعتبر: باید شامل "${q.includes}" باشد`;if(q.format==="regex")return`رشته نامعتبر: باید با الگوی ${q.pattern} مطابقت داشته باشد`;return`${X[q.format]??Y.format} نامعتبر`}case"not_multiple_of":return`عدد نامعتبر: باید مضرب ${Y.divisor} باشد`;case"unrecognized_keys":return`کلید${Y.keys.length>1?"های":""} ناشناس: ${k(Y.keys,", ")}`;case"invalid_key":return`کلید ناشناس در ${Y.origin}`;case"invalid_union":return"ورودی نامعتبر";case"invalid_element":return`مقدار نامعتبر در ${Y.origin}`;default:return"ورودی نامعتبر"}}};function uv(){return{localeError:lv()}}var cv=()=>{let Q={string:{unit:"merkkiä",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"päivämäärän"}};function J(Y){return Q[Y]??null}let X={regex:"säännöllinen lauseke",email:"sähköpostiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-päivämäärä",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"},G={nan:"NaN"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Virheellinen tyyppi: odotettiin instanceof ${Y.expected}, oli ${W}`;return`Virheellinen tyyppi: odotettiin ${q}, oli ${W}`}case"invalid_value":if(Y.values.length===1)return`Virheellinen syöte: täytyy olla ${J0(Y.values[0])}`;return`Virheellinen valinta: täytyy olla yksi seuraavista: ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Liian suuri: ${$.subject} täytyy olla ${q}${Y.maximum.toString()} ${$.unit}`.trim();return`Liian suuri: arvon täytyy olla ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Liian pieni: ${$.subject} täytyy olla ${q}${Y.minimum.toString()} ${$.unit}`.trim();return`Liian pieni: arvon täytyy olla ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Virheellinen syöte: täytyy alkaa "${q.prefix}"`;if(q.format==="ends_with")return`Virheellinen syöte: täytyy loppua "${q.suffix}"`;if(q.format==="includes")return`Virheellinen syöte: täytyy sisältää "${q.includes}"`;if(q.format==="regex")return`Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${q.pattern}`;return`Virheellinen ${X[q.format]??Y.format}`}case"not_multiple_of":return`Virheellinen luku: täytyy olla luvun ${Y.divisor} monikerta`;case"unrecognized_keys":return`${Y.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${k(Y.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen syöte"}}};function pv(){return{localeError:cv()}}var bv=()=>{let Q={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function J(Y){return Q[Y]??null}let X={regex:"entrée",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"},G={nan:"NaN",number:"nombre",array:"tableau"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Entrée invalide : instanceof ${Y.expected} attendu, ${W} reçu`;return`Entrée invalide : ${q} attendu, ${W} reçu`}case"invalid_value":if(Y.values.length===1)return`Entrée invalide : ${J0(Y.values[0])} attendu`;return`Option invalide : une valeur parmi ${k(Y.values,"|")} attendue`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Trop grand : ${Y.origin??"valeur"} doit ${$.verb} ${q}${Y.maximum.toString()} ${$.unit??"élément(s)"}`;return`Trop grand : ${Y.origin??"valeur"} doit être ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Trop petit : ${Y.origin} doit ${$.verb} ${q}${Y.minimum.toString()} ${$.unit}`;return`Trop petit : ${Y.origin} doit être ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Chaîne invalide : doit commencer par "${q.prefix}"`;if(q.format==="ends_with")return`Chaîne invalide : doit se terminer par "${q.suffix}"`;if(q.format==="includes")return`Chaîne invalide : doit inclure "${q.includes}"`;if(q.format==="regex")return`Chaîne invalide : doit correspondre au modèle ${q.pattern}`;return`${X[q.format]??Y.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${Y.divisor}`;case"unrecognized_keys":return`Clé${Y.keys.length>1?"s":""} non reconnue${Y.keys.length>1?"s":""} : ${k(Y.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${Y.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${Y.origin}`;default:return"Entrée invalide"}}};function ov(){return{localeError:bv()}}var dv=()=>{let Q={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function J(Y){return Q[Y]??null}let X={regex:"entrée",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"},G={nan:"NaN"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Entrée invalide : attendu instanceof ${Y.expected}, reçu ${W}`;return`Entrée invalide : attendu ${q}, reçu ${W}`}case"invalid_value":if(Y.values.length===1)return`Entrée invalide : attendu ${J0(Y.values[0])}`;return`Option invalide : attendu l'une des valeurs suivantes ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"≤":"<",$=J(Y.origin);if($)return`Trop grand : attendu que ${Y.origin??"la valeur"} ait ${q}${Y.maximum.toString()} ${$.unit}`;return`Trop grand : attendu que ${Y.origin??"la valeur"} soit ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?"≥":">",$=J(Y.origin);if($)return`Trop petit : attendu que ${Y.origin} ait ${q}${Y.minimum.toString()} ${$.unit}`;return`Trop petit : attendu que ${Y.origin} soit ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Chaîne invalide : doit commencer par "${q.prefix}"`;if(q.format==="ends_with")return`Chaîne invalide : doit se terminer par "${q.suffix}"`;if(q.format==="includes")return`Chaîne invalide : doit inclure "${q.includes}"`;if(q.format==="regex")return`Chaîne invalide : doit correspondre au motif ${q.pattern}`;return`${X[q.format]??Y.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${Y.divisor}`;case"unrecognized_keys":return`Clé${Y.keys.length>1?"s":""} non reconnue${Y.keys.length>1?"s":""} : ${k(Y.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${Y.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${Y.origin}`;default:return"Entrée invalide"}}};function rv(){return{localeError:dv()}}var sv=()=>{let Q={string:{label:"מחרוזת",gender:"f"},number:{label:"מספר",gender:"m"},boolean:{label:"ערך בוליאני",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"תאריך",gender:"m"},array:{label:"מערך",gender:"m"},object:{label:"אובייקט",gender:"m"},null:{label:"ערך ריק (null)",gender:"m"},undefined:{label:"ערך לא מוגדר (undefined)",gender:"m"},symbol:{label:"סימבול (Symbol)",gender:"m"},function:{label:"פונקציה",gender:"f"},map:{label:"מפה (Map)",gender:"f"},set:{label:"קבוצה (Set)",gender:"f"},file:{label:"קובץ",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"ערך לא ידוע",gender:"m"},value:{label:"ערך",gender:"m"}},J={string:{unit:"תווים",shortLabel:"קצר",longLabel:"ארוך"},file:{unit:"בייטים",shortLabel:"קטן",longLabel:"גדול"},array:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},set:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},number:{unit:"",shortLabel:"קטן",longLabel:"גדול"}},X=(K)=>K?Q[K]:void 0,G=(K)=>{let z=X(K);if(z)return z.label;return K??Q.unknown.label},Y=(K)=>`ה${G(K)}`,q=(K)=>{return(X(K)?.gender??"m")==="f"?"צריכה להיות":"צריך להיות"},$=(K)=>{if(!K)return null;return J[K]??null},W={regex:{label:"קלט",gender:"m"},email:{label:"כתובת אימייל",gender:"f"},url:{label:"כתובת רשת",gender:"f"},emoji:{label:"אימוג'י",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"תאריך וזמן ISO",gender:"m"},date:{label:"תאריך ISO",gender:"m"},time:{label:"זמן ISO",gender:"m"},duration:{label:"משך זמן ISO",gender:"m"},ipv4:{label:"כתובת IPv4",gender:"f"},ipv6:{label:"כתובת IPv6",gender:"f"},cidrv4:{label:"טווח IPv4",gender:"m"},cidrv6:{label:"טווח IPv6",gender:"m"},base64:{label:"מחרוזת בבסיס 64",gender:"f"},base64url:{label:"מחרוזת בבסיס 64 לכתובות רשת",gender:"f"},json_string:{label:"מחרוזת JSON",gender:"f"},e164:{label:"מספר E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"קלט",gender:"m"},includes:{label:"קלט",gender:"m"},lowercase:{label:"קלט",gender:"m"},starts_with:{label:"קלט",gender:"m"},uppercase:{label:"קלט",gender:"m"}},j={nan:"NaN"};return(K)=>{switch(K.code){case"invalid_type":{let z=K.expected,N=j[z??""]??G(z),U=Y0(K.input),M=j[U]??Q[U]?.label??U;if(/^[A-Z]/.test(K.expected))return`קלט לא תקין: צריך להיות instanceof ${K.expected}, התקבל ${M}`;return`קלט לא תקין: צריך להיות ${N}, התקבל ${M}`}case"invalid_value":{if(K.values.length===1)return`ערך לא תקין: הערך חייב להיות ${J0(K.values[0])}`;let z=K.values.map((U)=>J0(U));if(K.values.length===2)return`ערך לא תקין: האפשרויות המתאימות הן ${z[0]} או ${z[1]}`;let N=z[z.length-1];return`ערך לא תקין: האפשרויות המתאימות הן ${z.slice(0,-1).join(", ")} או ${N}`}case"too_big":{let z=$(K.origin),N=Y(K.origin??"value");if(K.origin==="string")return`${z?.longLabel??"ארוך"} מדי: ${N} צריכה להכיל ${K.maximum.toString()} ${z?.unit??""} ${K.inclusive?"או פחות":"לכל היותר"}`.trim();if(K.origin==="number"){let D=K.inclusive?`קטן או שווה ל-${K.maximum}`:`קטן מ-${K.maximum}`;return`גדול מדי: ${N} צריך להיות ${D}`}if(K.origin==="array"||K.origin==="set"){let D=K.origin==="set"?"צריכה":"צריך",O=K.inclusive?`${K.maximum} ${z?.unit??""} או פחות`:`פחות מ-${K.maximum} ${z?.unit??""}`;return`גדול מדי: ${N} ${D} להכיל ${O}`.trim()}let U=K.inclusive?"<=":"<",M=q(K.origin??"value");if(z?.unit)return`${z.longLabel} מדי: ${N} ${M} ${U}${K.maximum.toString()} ${z.unit}`;return`${z?.longLabel??"גדול"} מדי: ${N} ${M} ${U}${K.maximum.toString()}`}case"too_small":{let z=$(K.origin),N=Y(K.origin??"value");if(K.origin==="string")return`${z?.shortLabel??"קצר"} מדי: ${N} צריכה להכיל ${K.minimum.toString()} ${z?.unit??""} ${K.inclusive?"או יותר":"לפחות"}`.trim();if(K.origin==="number"){let D=K.inclusive?`גדול או שווה ל-${K.minimum}`:`גדול מ-${K.minimum}`;return`קטן מדי: ${N} צריך להיות ${D}`}if(K.origin==="array"||K.origin==="set"){let D=K.origin==="set"?"צריכה":"צריך";if(K.minimum===1&&K.inclusive){let w=K.origin==="set"?"לפחות פריט אחד":"לפחות פריט אחד";return`קטן מדי: ${N} ${D} להכיל ${w}`}let O=K.inclusive?`${K.minimum} ${z?.unit??""} או יותר`:`יותר מ-${K.minimum} ${z?.unit??""}`;return`קטן מדי: ${N} ${D} להכיל ${O}`.trim()}let U=K.inclusive?">=":">",M=q(K.origin??"value");if(z?.unit)return`${z.shortLabel} מדי: ${N} ${M} ${U}${K.minimum.toString()} ${z.unit}`;return`${z?.shortLabel??"קטן"} מדי: ${N} ${M} ${U}${K.minimum.toString()}`}case"invalid_format":{let z=K;if(z.format==="starts_with")return`המחרוזת חייבת להתחיל ב "${z.prefix}"`;if(z.format==="ends_with")return`המחרוזת חייבת להסתיים ב "${z.suffix}"`;if(z.format==="includes")return`המחרוזת חייבת לכלול "${z.includes}"`;if(z.format==="regex")return`המחרוזת חייבת להתאים לתבנית ${z.pattern}`;let N=W[z.format],U=N?.label??z.format,M=(N?.gender??"m")==="f"?"תקינה":"תקין";return`${U} לא ${M}`}case"not_multiple_of":return`מספר לא תקין: חייב להיות מכפלה של ${K.divisor}`;case"unrecognized_keys":return`מפתח${K.keys.length>1?"ות":""} לא מזוה${K.keys.length>1?"ים":"ה"}: ${k(K.keys,", ")}`;case"invalid_key":return"שדה לא תקין באובייקט";case"invalid_union":return"קלט לא תקין";case"invalid_element":return`ערך לא תקין ב${Y(K.origin??"array")}`;default:return"קלט לא תקין"}}};function iv(){return{localeError:sv()}}var tv=()=>{let Q={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function J(Y){return Q[Y]??null}let X={regex:"bemenet",email:"email cím",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO időbélyeg",date:"ISO dátum",time:"ISO idő",duration:"ISO időintervallum",ipv4:"IPv4 cím",ipv6:"IPv6 cím",cidrv4:"IPv4 tartomány",cidrv6:"IPv6 tartomány",base64:"base64-kódolt string",base64url:"base64url-kódolt string",json_string:"JSON string",e164:"E.164 szám",jwt:"JWT",template_literal:"bemenet"},G={nan:"NaN",number:"szám",array:"tömb"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Érvénytelen bemenet: a várt érték instanceof ${Y.expected}, a kapott érték ${W}`;return`Érvénytelen bemenet: a várt érték ${q}, a kapott érték ${W}`}case"invalid_value":if(Y.values.length===1)return`Érvénytelen bemenet: a várt érték ${J0(Y.values[0])}`;return`Érvénytelen opció: valamelyik érték várt ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Túl nagy: ${Y.origin??"érték"} mérete túl nagy ${q}${Y.maximum.toString()} ${$.unit??"elem"}`;return`Túl nagy: a bemeneti érték ${Y.origin??"érték"} túl nagy: ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Túl kicsi: a bemeneti érték ${Y.origin} mérete túl kicsi ${q}${Y.minimum.toString()} ${$.unit}`;return`Túl kicsi: a bemeneti érték ${Y.origin} túl kicsi ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Érvénytelen string: "${q.prefix}" értékkel kell kezdődnie`;if(q.format==="ends_with")return`Érvénytelen string: "${q.suffix}" értékkel kell végződnie`;if(q.format==="includes")return`Érvénytelen string: "${q.includes}" értéket kell tartalmaznia`;if(q.format==="regex")return`Érvénytelen string: ${q.pattern} mintának kell megfelelnie`;return`Érvénytelen ${X[q.format]??Y.format}`}case"not_multiple_of":return`Érvénytelen szám: ${Y.divisor} többszörösének kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${Y.keys.length>1?"s":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`Érvénytelen kulcs ${Y.origin}`;case"invalid_union":return"Érvénytelen bemenet";case"invalid_element":return`Érvénytelen érték: ${Y.origin}`;default:return"Érvénytelen bemenet"}}};function nv(){return{localeError:tv()}}function CU(Q,J,X){return Math.abs(Q)===1?J:X}function SX(Q){if(!Q)return"";let J=["ա","ե","ը","ի","ո","ու","օ"],X=Q[Q.length-1];return Q+(J.includes(X)?"ն":"ը")}var av=()=>{let Q={string:{unit:{one:"նշան",many:"նշաններ"},verb:"ունենալ"},file:{unit:{one:"բայթ",many:"բայթեր"},verb:"ունենալ"},array:{unit:{one:"տարր",many:"տարրեր"},verb:"ունենալ"},set:{unit:{one:"տարր",many:"տարրեր"},verb:"ունենալ"}};function J(Y){return Q[Y]??null}let X={regex:"մուտք",email:"էլ. հասցե",url:"URL",emoji:"էմոջի",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO ամսաթիվ և ժամ",date:"ISO ամսաթիվ",time:"ISO ժամ",duration:"ISO տևողություն",ipv4:"IPv4 հասցե",ipv6:"IPv6 հասցե",cidrv4:"IPv4 միջակայք",cidrv6:"IPv6 միջակայք",base64:"base64 ձևաչափով տող",base64url:"base64url ձևաչափով տող",json_string:"JSON տող",e164:"E.164 համար",jwt:"JWT",template_literal:"մուտք"},G={nan:"NaN",number:"թիվ",array:"զանգված"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Սխալ մուտքագրում․ սպասվում էր instanceof ${Y.expected}, ստացվել է ${W}`;return`Սխալ մուտքագրում․ սպասվում էր ${q}, ստացվել է ${W}`}case"invalid_value":if(Y.values.length===1)return`Սխալ մուտքագրում․ սպասվում էր ${J0(Y.values[1])}`;return`Սխալ տարբերակ․ սպասվում էր հետևյալներից մեկը՝ ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($){let W=Number(Y.maximum),j=CU(W,$.unit.one,$.unit.many);return`Չափազանց մեծ արժեք․ սպասվում է, որ ${SX(Y.origin??"արժեք")} կունենա ${q}${Y.maximum.toString()} ${j}`}return`Չափազանց մեծ արժեք․ սպասվում է, որ ${SX(Y.origin??"արժեք")} լինի ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($){let W=Number(Y.minimum),j=CU(W,$.unit.one,$.unit.many);return`Չափազանց փոքր արժեք․ սպասվում է, որ ${SX(Y.origin)} կունենա ${q}${Y.minimum.toString()} ${j}`}return`Չափազանց փոքր արժեք․ սպասվում է, որ ${SX(Y.origin)} լինի ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Սխալ տող․ պետք է սկսվի "${q.prefix}"-ով`;if(q.format==="ends_with")return`Սխալ տող․ պետք է ավարտվի "${q.suffix}"-ով`;if(q.format==="includes")return`Սխալ տող․ պետք է պարունակի "${q.includes}"`;if(q.format==="regex")return`Սխալ տող․ պետք է համապատասխանի ${q.pattern} ձևաչափին`;return`Սխալ ${X[q.format]??Y.format}`}case"not_multiple_of":return`Սխալ թիվ․ պետք է բազմապատիկ լինի ${Y.divisor}-ի`;case"unrecognized_keys":return`Չճանաչված բանալի${Y.keys.length>1?"ներ":""}. ${k(Y.keys,", ")}`;case"invalid_key":return`Սխալ բանալի ${SX(Y.origin)}-ում`;case"invalid_union":return"Սխալ մուտքագրում";case"invalid_element":return`Սխալ արժեք ${SX(Y.origin)}-ում`;default:return"Սխալ մուտքագրում"}}};function ev(){return{localeError:av()}}var Q_=()=>{let Q={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function J(Y){return Q[Y]??null}let X={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"},G={nan:"NaN"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Input tidak valid: diharapkan instanceof ${Y.expected}, diterima ${W}`;return`Input tidak valid: diharapkan ${q}, diterima ${W}`}case"invalid_value":if(Y.values.length===1)return`Input tidak valid: diharapkan ${J0(Y.values[0])}`;return`Pilihan tidak valid: diharapkan salah satu dari ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Terlalu besar: diharapkan ${Y.origin??"value"} memiliki ${q}${Y.maximum.toString()} ${$.unit??"elemen"}`;return`Terlalu besar: diharapkan ${Y.origin??"value"} menjadi ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Terlalu kecil: diharapkan ${Y.origin} memiliki ${q}${Y.minimum.toString()} ${$.unit}`;return`Terlalu kecil: diharapkan ${Y.origin} menjadi ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`String tidak valid: harus dimulai dengan "${q.prefix}"`;if(q.format==="ends_with")return`String tidak valid: harus berakhir dengan "${q.suffix}"`;if(q.format==="includes")return`String tidak valid: harus menyertakan "${q.includes}"`;if(q.format==="regex")return`String tidak valid: harus sesuai pola ${q.pattern}`;return`${X[q.format]??Y.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${Y.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${Y.keys.length>1?"s":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${Y.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${Y.origin}`;default:return"Input tidak valid"}}};function J_(){return{localeError:Q_()}}var X_=()=>{let Q={string:{unit:"stafi",verb:"að hafa"},file:{unit:"bæti",verb:"að hafa"},array:{unit:"hluti",verb:"að hafa"},set:{unit:"hluti",verb:"að hafa"}};function J(Y){return Q[Y]??null}let X={regex:"gildi",email:"netfang",url:"vefslóð",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og tími",date:"ISO dagsetning",time:"ISO tími",duration:"ISO tímalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 tölugildi",jwt:"JWT",template_literal:"gildi"},G={nan:"NaN",number:"númer",array:"fylki"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Rangt gildi: Þú slóst inn ${W} þar sem á að vera instanceof ${Y.expected}`;return`Rangt gildi: Þú slóst inn ${W} þar sem á að vera ${q}`}case"invalid_value":if(Y.values.length===1)return`Rangt gildi: gert ráð fyrir ${J0(Y.values[0])}`;return`Ógilt val: má vera eitt af eftirfarandi ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Of stórt: gert er ráð fyrir að ${Y.origin??"gildi"} hafi ${q}${Y.maximum.toString()} ${$.unit??"hluti"}`;return`Of stórt: gert er ráð fyrir að ${Y.origin??"gildi"} sé ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Of lítið: gert er ráð fyrir að ${Y.origin} hafi ${q}${Y.minimum.toString()} ${$.unit}`;return`Of lítið: gert er ráð fyrir að ${Y.origin} sé ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Ógildur strengur: verður að byrja á "${q.prefix}"`;if(q.format==="ends_with")return`Ógildur strengur: verður að enda á "${q.suffix}"`;if(q.format==="includes")return`Ógildur strengur: verður að innihalda "${q.includes}"`;if(q.format==="regex")return`Ógildur strengur: verður að fylgja mynstri ${q.pattern}`;return`Rangt ${X[q.format]??Y.format}`}case"not_multiple_of":return`Röng tala: verður að vera margfeldi af ${Y.divisor}`;case"unrecognized_keys":return`Óþekkt ${Y.keys.length>1?"ir lyklar":"ur lykill"}: ${k(Y.keys,", ")}`;case"invalid_key":return`Rangur lykill í ${Y.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi í ${Y.origin}`;default:return"Rangt gildi"}}};function Y_(){return{localeError:X_()}}var G_=()=>{let Q={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function J(Y){return Q[Y]??null}let X={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"},G={nan:"NaN",number:"numero",array:"vettore"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Input non valido: atteso instanceof ${Y.expected}, ricevuto ${W}`;return`Input non valido: atteso ${q}, ricevuto ${W}`}case"invalid_value":if(Y.values.length===1)return`Input non valido: atteso ${J0(Y.values[0])}`;return`Opzione non valida: atteso uno tra ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Troppo grande: ${Y.origin??"valore"} deve avere ${q}${Y.maximum.toString()} ${$.unit??"elementi"}`;return`Troppo grande: ${Y.origin??"valore"} deve essere ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Troppo piccolo: ${Y.origin} deve avere ${q}${Y.minimum.toString()} ${$.unit}`;return`Troppo piccolo: ${Y.origin} deve essere ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Stringa non valida: deve iniziare con "${q.prefix}"`;if(q.format==="ends_with")return`Stringa non valida: deve terminare con "${q.suffix}"`;if(q.format==="includes")return`Stringa non valida: deve includere "${q.includes}"`;if(q.format==="regex")return`Stringa non valida: deve corrispondere al pattern ${q.pattern}`;return`Invalid ${X[q.format]??Y.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${Y.divisor}`;case"unrecognized_keys":return`Chiav${Y.keys.length>1?"i":"e"} non riconosciut${Y.keys.length>1?"e":"a"}: ${k(Y.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${Y.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${Y.origin}`;default:return"Input non valido"}}};function q_(){return{localeError:G_()}}var $_=()=>{let Q={string:{unit:"文字",verb:"である"},file:{unit:"バイト",verb:"である"},array:{unit:"要素",verb:"である"},set:{unit:"要素",verb:"である"}};function J(Y){return Q[Y]??null}let X={regex:"入力値",email:"メールアドレス",url:"URL",emoji:"絵文字",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日時",date:"ISO日付",time:"ISO時刻",duration:"ISO期間",ipv4:"IPv4アドレス",ipv6:"IPv6アドレス",cidrv4:"IPv4範囲",cidrv6:"IPv6範囲",base64:"base64エンコード文字列",base64url:"base64urlエンコード文字列",json_string:"JSON文字列",e164:"E.164番号",jwt:"JWT",template_literal:"入力値"},G={nan:"NaN",number:"数値",array:"配列"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`無効な入力: instanceof ${Y.expected}が期待されましたが、${W}が入力されました`;return`無効な入力: ${q}が期待されましたが、${W}が入力されました`}case"invalid_value":if(Y.values.length===1)return`無効な入力: ${J0(Y.values[0])}が期待されました`;return`無効な選択: ${k(Y.values,"、")}のいずれかである必要があります`;case"too_big":{let q=Y.inclusive?"以下である":"より小さい",$=J(Y.origin);if($)return`大きすぎる値: ${Y.origin??"値"}は${Y.maximum.toString()}${$.unit??"要素"}${q}必要があります`;return`大きすぎる値: ${Y.origin??"値"}は${Y.maximum.toString()}${q}必要があります`}case"too_small":{let q=Y.inclusive?"以上である":"より大きい",$=J(Y.origin);if($)return`小さすぎる値: ${Y.origin}は${Y.minimum.toString()}${$.unit}${q}必要があります`;return`小さすぎる値: ${Y.origin}は${Y.minimum.toString()}${q}必要があります`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`無効な文字列: "${q.prefix}"で始まる必要があります`;if(q.format==="ends_with")return`無効な文字列: "${q.suffix}"で終わる必要があります`;if(q.format==="includes")return`無効な文字列: "${q.includes}"を含む必要があります`;if(q.format==="regex")return`無効な文字列: パターン${q.pattern}に一致する必要があります`;return`無効な${X[q.format]??Y.format}`}case"not_multiple_of":return`無効な数値: ${Y.divisor}の倍数である必要があります`;case"unrecognized_keys":return`認識されていないキー${Y.keys.length>1?"群":""}: ${k(Y.keys,"、")}`;case"invalid_key":return`${Y.origin}内の無効なキー`;case"invalid_union":return"無効な入力";case"invalid_element":return`${Y.origin}内の無効な値`;default:return"無効な入力"}}};function W_(){return{localeError:$_()}}var j_=()=>{let Q={string:{unit:"სიმბოლო",verb:"უნდა შეიცავდეს"},file:{unit:"ბაიტი",verb:"უნდა შეიცავდეს"},array:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"},set:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"}};function J(Y){return Q[Y]??null}let X={regex:"შეყვანა",email:"ელ-ფოსტის მისამართი",url:"URL",emoji:"ემოჯი",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"თარიღი-დრო",date:"თარიღი",time:"დრო",duration:"ხანგრძლივობა",ipv4:"IPv4 მისამართი",ipv6:"IPv6 მისამართი",cidrv4:"IPv4 დიაპაზონი",cidrv6:"IPv6 დიაპაზონი",base64:"base64-კოდირებული სტრინგი",base64url:"base64url-კოდირებული სტრინგი",json_string:"JSON სტრინგი",e164:"E.164 ნომერი",jwt:"JWT",template_literal:"შეყვანა"},G={nan:"NaN",number:"რიცხვი",string:"სტრინგი",boolean:"ბულეანი",function:"ფუნქცია",array:"მასივი"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`არასწორი შეყვანა: მოსალოდნელი instanceof ${Y.expected}, მიღებული ${W}`;return`არასწორი შეყვანა: მოსალოდნელი ${q}, მიღებული ${W}`}case"invalid_value":if(Y.values.length===1)return`არასწორი შეყვანა: მოსალოდნელი ${J0(Y.values[0])}`;return`არასწორი ვარიანტი: მოსალოდნელია ერთ-ერთი ${k(Y.values,"|")}-დან`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`ზედმეტად დიდი: მოსალოდნელი ${Y.origin??"მნიშვნელობა"} ${$.verb} ${q}${Y.maximum.toString()} ${$.unit}`;return`ზედმეტად დიდი: მოსალოდნელი ${Y.origin??"მნიშვნელობა"} იყოს ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`ზედმეტად პატარა: მოსალოდნელი ${Y.origin} ${$.verb} ${q}${Y.minimum.toString()} ${$.unit}`;return`ზედმეტად პატარა: მოსალოდნელი ${Y.origin} იყოს ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`არასწორი სტრინგი: უნდა იწყებოდეს "${q.prefix}"-ით`;if(q.format==="ends_with")return`არასწორი სტრინგი: უნდა მთავრდებოდეს "${q.suffix}"-ით`;if(q.format==="includes")return`არასწორი სტრინგი: უნდა შეიცავდეს "${q.includes}"-ს`;if(q.format==="regex")return`არასწორი სტრინგი: უნდა შეესაბამებოდეს შაბლონს ${q.pattern}`;return`არასწორი ${X[q.format]??Y.format}`}case"not_multiple_of":return`არასწორი რიცხვი: უნდა იყოს ${Y.divisor}-ის ჯერადი`;case"unrecognized_keys":return`უცნობი გასაღებ${Y.keys.length>1?"ები":"ი"}: ${k(Y.keys,", ")}`;case"invalid_key":return`არასწორი გასაღები ${Y.origin}-ში`;case"invalid_union":return"არასწორი შეყვანა";case"invalid_element":return`არასწორი მნიშვნელობა ${Y.origin}-ში`;default:return"არასწორი შეყვანა"}}};function K_(){return{localeError:j_()}}var z_=()=>{let Q={string:{unit:"តួអក្សរ",verb:"គួរមាន"},file:{unit:"បៃ",verb:"គួរមាន"},array:{unit:"ធាតុ",verb:"គួរមាន"},set:{unit:"ធាតុ",verb:"គួរមាន"}};function J(Y){return Q[Y]??null}let X={regex:"ទិន្នន័យបញ្ចូល",email:"អាសយដ្ឋានអ៊ីមែល",url:"URL",emoji:"សញ្ញាអារម្មណ៍",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"កាលបរិច្ឆេទ និងម៉ោង ISO",date:"កាលបរិច្ឆេទ ISO",time:"ម៉ោង ISO",duration:"រយៈពេល ISO",ipv4:"អាសយដ្ឋាន IPv4",ipv6:"អាសយដ្ឋាន IPv6",cidrv4:"ដែនអាសយដ្ឋាន IPv4",cidrv6:"ដែនអាសយដ្ឋាន IPv6",base64:"ខ្សែអក្សរអ៊ិកូដ base64",base64url:"ខ្សែអក្សរអ៊ិកូដ base64url",json_string:"ខ្សែអក្សរ JSON",e164:"លេខ E.164",jwt:"JWT",template_literal:"ទិន្នន័យបញ្ចូល"},G={nan:"NaN",number:"លេខ",array:"អារេ (Array)",null:"គ្មានតម្លៃ (null)"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ instanceof ${Y.expected} ប៉ុន្តែទទួលបាន ${W}`;return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${q} ប៉ុន្តែទទួលបាន ${W}`}case"invalid_value":if(Y.values.length===1)return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${J0(Y.values[0])}`;return`ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`ធំពេក៖ ត្រូវការ ${Y.origin??"តម្លៃ"} ${q} ${Y.maximum.toString()} ${$.unit??"ធាតុ"}`;return`ធំពេក៖ ត្រូវការ ${Y.origin??"តម្លៃ"} ${q} ${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`តូចពេក៖ ត្រូវការ ${Y.origin} ${q} ${Y.minimum.toString()} ${$.unit}`;return`តូចពេក៖ ត្រូវការ ${Y.origin} ${q} ${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${q.prefix}"`;if(q.format==="ends_with")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${q.suffix}"`;if(q.format==="includes")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${q.includes}"`;if(q.format==="regex")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${q.pattern}`;return`មិនត្រឹមត្រូវ៖ ${X[q.format]??Y.format}`}case"not_multiple_of":return`លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${Y.divisor}`;case"unrecognized_keys":return`រកឃើញសោមិនស្គាល់៖ ${k(Y.keys,", ")}`;case"invalid_key":return`សោមិនត្រឹមត្រូវនៅក្នុង ${Y.origin}`;case"invalid_union":return"ទិន្នន័យមិនត្រឹមត្រូវ";case"invalid_element":return`ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${Y.origin}`;default:return"ទិន្នន័យមិនត្រឹមត្រូវ"}}};function zR(){return{localeError:z_()}}function N_(){return zR()}var U_=()=>{let Q={string:{unit:"문자",verb:"to have"},file:{unit:"바이트",verb:"to have"},array:{unit:"개",verb:"to have"},set:{unit:"개",verb:"to have"}};function J(Y){return Q[Y]??null}let X={regex:"입력",email:"이메일 주소",url:"URL",emoji:"이모지",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 날짜시간",date:"ISO 날짜",time:"ISO 시간",duration:"ISO 기간",ipv4:"IPv4 주소",ipv6:"IPv6 주소",cidrv4:"IPv4 범위",cidrv6:"IPv6 범위",base64:"base64 인코딩 문자열",base64url:"base64url 인코딩 문자열",json_string:"JSON 문자열",e164:"E.164 번호",jwt:"JWT",template_literal:"입력"},G={nan:"NaN"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`잘못된 입력: 예상 타입은 instanceof ${Y.expected}, 받은 타입은 ${W}입니다`;return`잘못된 입력: 예상 타입은 ${q}, 받은 타입은 ${W}입니다`}case"invalid_value":if(Y.values.length===1)return`잘못된 입력: 값은 ${J0(Y.values[0])} 이어야 합니다`;return`잘못된 옵션: ${k(Y.values,"또는 ")} 중 하나여야 합니다`;case"too_big":{let q=Y.inclusive?"이하":"미만",$=q==="미만"?"이어야 합니다":"여야 합니다",W=J(Y.origin),j=W?.unit??"요소";if(W)return`${Y.origin??"값"}이 너무 큽니다: ${Y.maximum.toString()}${j} ${q}${$}`;return`${Y.origin??"값"}이 너무 큽니다: ${Y.maximum.toString()} ${q}${$}`}case"too_small":{let q=Y.inclusive?"이상":"초과",$=q==="이상"?"이어야 합니다":"여야 합니다",W=J(Y.origin),j=W?.unit??"요소";if(W)return`${Y.origin??"값"}이 너무 작습니다: ${Y.minimum.toString()}${j} ${q}${$}`;return`${Y.origin??"값"}이 너무 작습니다: ${Y.minimum.toString()} ${q}${$}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`잘못된 문자열: "${q.prefix}"(으)로 시작해야 합니다`;if(q.format==="ends_with")return`잘못된 문자열: "${q.suffix}"(으)로 끝나야 합니다`;if(q.format==="includes")return`잘못된 문자열: "${q.includes}"을(를) 포함해야 합니다`;if(q.format==="regex")return`잘못된 문자열: 정규식 ${q.pattern} 패턴과 일치해야 합니다`;return`잘못된 ${X[q.format]??Y.format}`}case"not_multiple_of":return`잘못된 숫자: ${Y.divisor}의 배수여야 합니다`;case"unrecognized_keys":return`인식할 수 없는 키: ${k(Y.keys,", ")}`;case"invalid_key":return`잘못된 키: ${Y.origin}`;case"invalid_union":return"잘못된 입력";case"invalid_element":return`잘못된 값: ${Y.origin}`;default:return"잘못된 입력"}}};function M_(){return{localeError:U_()}}var mY=(Q)=>{return Q.charAt(0).toUpperCase()+Q.slice(1)};function AU(Q){let J=Math.abs(Q),X=J%10,G=J%100;if(G>=11&&G<=19||X===0)return"many";if(X===1)return"one";return"few"}var D_=()=>{let Q={string:{unit:{one:"simbolis",few:"simboliai",many:"simbolių"},verb:{smaller:{inclusive:"turi būti ne ilgesnė kaip",notInclusive:"turi būti trumpesnė kaip"},bigger:{inclusive:"turi būti ne trumpesnė kaip",notInclusive:"turi būti ilgesnė kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"baitų"},verb:{smaller:{inclusive:"turi būti ne didesnis kaip",notInclusive:"turi būti mažesnis kaip"},bigger:{inclusive:"turi būti ne mažesnis kaip",notInclusive:"turi būti didesnis kaip"}}},array:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}},set:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}}};function J(Y,q,$,W){let j=Q[Y]??null;if(j===null)return j;return{unit:j.unit[q],verb:j.verb[W][$?"inclusive":"notInclusive"]}}let X={regex:"įvestis",email:"el. pašto adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukmė",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 užkoduota eilutė",base64url:"base64url užkoduota eilutė",json_string:"JSON eilutė",e164:"E.164 numeris",jwt:"JWT",template_literal:"įvestis"},G={nan:"NaN",number:"skaičius",bigint:"sveikasis skaičius",string:"eilutė",boolean:"loginė reikšmė",undefined:"neapibrėžta reikšmė",function:"funkcija",symbol:"simbolis",array:"masyvas",object:"objektas",null:"nulinė reikšmė"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Gautas tipas ${W}, o tikėtasi - instanceof ${Y.expected}`;return`Gautas tipas ${W}, o tikėtasi - ${q}`}case"invalid_value":if(Y.values.length===1)return`Privalo būti ${J0(Y.values[0])}`;return`Privalo būti vienas iš ${k(Y.values,"|")} pasirinkimų`;case"too_big":{let q=G[Y.origin]??Y.origin,$=J(Y.origin,AU(Number(Y.maximum)),Y.inclusive??!1,"smaller");if($?.verb)return`${mY(q??Y.origin??"reikšmė")} ${$.verb} ${Y.maximum.toString()} ${$.unit??"elementų"}`;let W=Y.inclusive?"ne didesnis kaip":"mažesnis kaip";return`${mY(q??Y.origin??"reikšmė")} turi būti ${W} ${Y.maximum.toString()} ${$?.unit}`}case"too_small":{let q=G[Y.origin]??Y.origin,$=J(Y.origin,AU(Number(Y.minimum)),Y.inclusive??!1,"bigger");if($?.verb)return`${mY(q??Y.origin??"reikšmė")} ${$.verb} ${Y.minimum.toString()} ${$.unit??"elementų"}`;let W=Y.inclusive?"ne mažesnis kaip":"didesnis kaip";return`${mY(q??Y.origin??"reikšmė")} turi būti ${W} ${Y.minimum.toString()} ${$?.unit}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Eilutė privalo prasidėti "${q.prefix}"`;if(q.format==="ends_with")return`Eilutė privalo pasibaigti "${q.suffix}"`;if(q.format==="includes")return`Eilutė privalo įtraukti "${q.includes}"`;if(q.format==="regex")return`Eilutė privalo atitikti ${q.pattern}`;return`Neteisingas ${X[q.format]??Y.format}`}case"not_multiple_of":return`Skaičius privalo būti ${Y.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpažint${Y.keys.length>1?"i":"as"} rakt${Y.keys.length>1?"ai":"as"}: ${k(Y.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga įvestis";case"invalid_element":{let q=G[Y.origin]??Y.origin;return`${mY(q??Y.origin??"reikšmė")} turi klaidingą įvestį`}default:return"Klaidinga įvestis"}}};function O_(){return{localeError:D_()}}var B_=()=>{let Q={string:{unit:"знаци",verb:"да имаат"},file:{unit:"бајти",verb:"да имаат"},array:{unit:"ставки",verb:"да имаат"},set:{unit:"ставки",verb:"да имаат"}};function J(Y){return Q[Y]??null}let X={regex:"внес",email:"адреса на е-пошта",url:"URL",emoji:"емоџи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO датум и време",date:"ISO датум",time:"ISO време",duration:"ISO времетраење",ipv4:"IPv4 адреса",ipv6:"IPv6 адреса",cidrv4:"IPv4 опсег",cidrv6:"IPv6 опсег",base64:"base64-енкодирана низа",base64url:"base64url-енкодирана низа",json_string:"JSON низа",e164:"E.164 број",jwt:"JWT",template_literal:"внес"},G={nan:"NaN",number:"број",array:"низа"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Грешен внес: се очекува instanceof ${Y.expected}, примено ${W}`;return`Грешен внес: се очекува ${q}, примено ${W}`}case"invalid_value":if(Y.values.length===1)return`Invalid input: expected ${J0(Y.values[0])}`;return`Грешана опција: се очекува една ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Премногу голем: се очекува ${Y.origin??"вредноста"} да има ${q}${Y.maximum.toString()} ${$.unit??"елементи"}`;return`Премногу голем: се очекува ${Y.origin??"вредноста"} да биде ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Премногу мал: се очекува ${Y.origin} да има ${q}${Y.minimum.toString()} ${$.unit}`;return`Премногу мал: се очекува ${Y.origin} да биде ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Неважечка низа: мора да започнува со "${q.prefix}"`;if(q.format==="ends_with")return`Неважечка низа: мора да завршува со "${q.suffix}"`;if(q.format==="includes")return`Неважечка низа: мора да вклучува "${q.includes}"`;if(q.format==="regex")return`Неважечка низа: мора да одгоара на патернот ${q.pattern}`;return`Invalid ${X[q.format]??Y.format}`}case"not_multiple_of":return`Грешен број: мора да биде делив со ${Y.divisor}`;case"unrecognized_keys":return`${Y.keys.length>1?"Непрепознаени клучеви":"Непрепознаен клуч"}: ${k(Y.keys,", ")}`;case"invalid_key":return`Грешен клуч во ${Y.origin}`;case"invalid_union":return"Грешен внес";case"invalid_element":return`Грешна вредност во ${Y.origin}`;default:return"Грешен внес"}}};function R_(){return{localeError:B_()}}var H_=()=>{let Q={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function J(Y){return Q[Y]??null}let X={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"},G={nan:"NaN",number:"nombor"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Input tidak sah: dijangka instanceof ${Y.expected}, diterima ${W}`;return`Input tidak sah: dijangka ${q}, diterima ${W}`}case"invalid_value":if(Y.values.length===1)return`Input tidak sah: dijangka ${J0(Y.values[0])}`;return`Pilihan tidak sah: dijangka salah satu daripada ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Terlalu besar: dijangka ${Y.origin??"nilai"} ${$.verb} ${q}${Y.maximum.toString()} ${$.unit??"elemen"}`;return`Terlalu besar: dijangka ${Y.origin??"nilai"} adalah ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Terlalu kecil: dijangka ${Y.origin} ${$.verb} ${q}${Y.minimum.toString()} ${$.unit}`;return`Terlalu kecil: dijangka ${Y.origin} adalah ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`String tidak sah: mesti bermula dengan "${q.prefix}"`;if(q.format==="ends_with")return`String tidak sah: mesti berakhir dengan "${q.suffix}"`;if(q.format==="includes")return`String tidak sah: mesti mengandungi "${q.includes}"`;if(q.format==="regex")return`String tidak sah: mesti sepadan dengan corak ${q.pattern}`;return`${X[q.format]??Y.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${Y.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${k(Y.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${Y.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${Y.origin}`;default:return"Input tidak sah"}}};function V_(){return{localeError:H_()}}var L_=()=>{let Q={string:{unit:"tekens",verb:"heeft"},file:{unit:"bytes",verb:"heeft"},array:{unit:"elementen",verb:"heeft"},set:{unit:"elementen",verb:"heeft"}};function J(Y){return Q[Y]??null}let X={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"},G={nan:"NaN",number:"getal"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Ongeldige invoer: verwacht instanceof ${Y.expected}, ontving ${W}`;return`Ongeldige invoer: verwacht ${q}, ontving ${W}`}case"invalid_value":if(Y.values.length===1)return`Ongeldige invoer: verwacht ${J0(Y.values[0])}`;return`Ongeldige optie: verwacht één van ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin),W=Y.origin==="date"?"laat":Y.origin==="string"?"lang":"groot";if($)return`Te ${W}: verwacht dat ${Y.origin??"waarde"} ${q}${Y.maximum.toString()} ${$.unit??"elementen"} ${$.verb}`;return`Te ${W}: verwacht dat ${Y.origin??"waarde"} ${q}${Y.maximum.toString()} is`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin),W=Y.origin==="date"?"vroeg":Y.origin==="string"?"kort":"klein";if($)return`Te ${W}: verwacht dat ${Y.origin} ${q}${Y.minimum.toString()} ${$.unit} ${$.verb}`;return`Te ${W}: verwacht dat ${Y.origin} ${q}${Y.minimum.toString()} is`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Ongeldige tekst: moet met "${q.prefix}" beginnen`;if(q.format==="ends_with")return`Ongeldige tekst: moet op "${q.suffix}" eindigen`;if(q.format==="includes")return`Ongeldige tekst: moet "${q.includes}" bevatten`;if(q.format==="regex")return`Ongeldige tekst: moet overeenkomen met patroon ${q.pattern}`;return`Ongeldig: ${X[q.format]??Y.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${Y.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${Y.keys.length>1?"s":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${Y.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${Y.origin}`;default:return"Ongeldige invoer"}}};function E_(){return{localeError:L_()}}var w_=()=>{let Q={string:{unit:"tegn",verb:"å ha"},file:{unit:"bytes",verb:"å ha"},array:{unit:"elementer",verb:"å inneholde"},set:{unit:"elementer",verb:"å inneholde"}};function J(Y){return Q[Y]??null}let X={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},G={nan:"NaN",number:"tall",array:"liste"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Ugyldig input: forventet instanceof ${Y.expected}, fikk ${W}`;return`Ugyldig input: forventet ${q}, fikk ${W}`}case"invalid_value":if(Y.values.length===1)return`Ugyldig verdi: forventet ${J0(Y.values[0])}`;return`Ugyldig valg: forventet en av ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`For stor(t): forventet ${Y.origin??"value"} til å ha ${q}${Y.maximum.toString()} ${$.unit??"elementer"}`;return`For stor(t): forventet ${Y.origin??"value"} til å ha ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`For lite(n): forventet ${Y.origin} til å ha ${q}${Y.minimum.toString()} ${$.unit}`;return`For lite(n): forventet ${Y.origin} til å ha ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Ugyldig streng: må starte med "${q.prefix}"`;if(q.format==="ends_with")return`Ugyldig streng: må ende med "${q.suffix}"`;if(q.format==="includes")return`Ugyldig streng: må inneholde "${q.includes}"`;if(q.format==="regex")return`Ugyldig streng: må matche mønsteret ${q.pattern}`;return`Ugyldig ${X[q.format]??Y.format}`}case"not_multiple_of":return`Ugyldig tall: må være et multiplum av ${Y.divisor}`;case"unrecognized_keys":return`${Y.keys.length>1?"Ukjente nøkler":"Ukjent nøkkel"}: ${k(Y.keys,", ")}`;case"invalid_key":return`Ugyldig nøkkel i ${Y.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${Y.origin}`;default:return"Ugyldig input"}}};function C_(){return{localeError:w_()}}var A_=()=>{let Q={string:{unit:"harf",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"unsur",verb:"olmalıdır"},set:{unit:"unsur",verb:"olmalıdır"}};function J(Y){return Q[Y]??null}let X={regex:"giren",email:"epostagâh",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO hengâmı",date:"ISO tarihi",time:"ISO zamanı",duration:"ISO müddeti",ipv4:"IPv4 nişânı",ipv6:"IPv6 nişânı",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-şifreli metin",base64url:"base64url-şifreli metin",json_string:"JSON metin",e164:"E.164 sayısı",jwt:"JWT",template_literal:"giren"},G={nan:"NaN",number:"numara",array:"saf",null:"gayb"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Fâsit giren: umulan instanceof ${Y.expected}, alınan ${W}`;return`Fâsit giren: umulan ${q}, alınan ${W}`}case"invalid_value":if(Y.values.length===1)return`Fâsit giren: umulan ${J0(Y.values[0])}`;return`Fâsit tercih: mûteberler ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Fazla büyük: ${Y.origin??"value"}, ${q}${Y.maximum.toString()} ${$.unit??"elements"} sahip olmalıydı.`;return`Fazla büyük: ${Y.origin??"value"}, ${q}${Y.maximum.toString()} olmalıydı.`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Fazla küçük: ${Y.origin}, ${q}${Y.minimum.toString()} ${$.unit} sahip olmalıydı.`;return`Fazla küçük: ${Y.origin}, ${q}${Y.minimum.toString()} olmalıydı.`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Fâsit metin: "${q.prefix}" ile başlamalı.`;if(q.format==="ends_with")return`Fâsit metin: "${q.suffix}" ile bitmeli.`;if(q.format==="includes")return`Fâsit metin: "${q.includes}" ihtivâ etmeli.`;if(q.format==="regex")return`Fâsit metin: ${q.pattern} nakşına uymalı.`;return`Fâsit ${X[q.format]??Y.format}`}case"not_multiple_of":return`Fâsit sayı: ${Y.divisor} katı olmalıydı.`;case"unrecognized_keys":return`Tanınmayan anahtar ${Y.keys.length>1?"s":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`${Y.origin} için tanınmayan anahtar var.`;case"invalid_union":return"Giren tanınamadı.";case"invalid_element":return`${Y.origin} için tanınmayan kıymet var.`;default:return"Kıymet tanınamadı."}}};function I_(){return{localeError:A_()}}var S_=()=>{let Q={string:{unit:"توکي",verb:"ولري"},file:{unit:"بایټس",verb:"ولري"},array:{unit:"توکي",verb:"ولري"},set:{unit:"توکي",verb:"ولري"}};function J(Y){return Q[Y]??null}let X={regex:"ورودي",email:"بریښنالیک",url:"یو آر ال",emoji:"ایموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"نیټه او وخت",date:"نېټه",time:"وخت",duration:"موده",ipv4:"د IPv4 پته",ipv6:"د IPv6 پته",cidrv4:"د IPv4 ساحه",cidrv6:"د IPv6 ساحه",base64:"base64-encoded متن",base64url:"base64url-encoded متن",json_string:"JSON متن",e164:"د E.164 شمېره",jwt:"JWT",template_literal:"ورودي"},G={nan:"NaN",number:"عدد",array:"ارې"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`ناسم ورودي: باید instanceof ${Y.expected} وای, مګر ${W} ترلاسه شو`;return`ناسم ورودي: باید ${q} وای, مګر ${W} ترلاسه شو`}case"invalid_value":if(Y.values.length===1)return`ناسم ورودي: باید ${J0(Y.values[0])} وای`;return`ناسم انتخاب: باید یو له ${k(Y.values,"|")} څخه وای`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`ډیر لوی: ${Y.origin??"ارزښت"} باید ${q}${Y.maximum.toString()} ${$.unit??"عنصرونه"} ولري`;return`ډیر لوی: ${Y.origin??"ارزښت"} باید ${q}${Y.maximum.toString()} وي`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`ډیر کوچنی: ${Y.origin} باید ${q}${Y.minimum.toString()} ${$.unit} ولري`;return`ډیر کوچنی: ${Y.origin} باید ${q}${Y.minimum.toString()} وي`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`ناسم متن: باید د "${q.prefix}" سره پیل شي`;if(q.format==="ends_with")return`ناسم متن: باید د "${q.suffix}" سره پای ته ورسيږي`;if(q.format==="includes")return`ناسم متن: باید "${q.includes}" ولري`;if(q.format==="regex")return`ناسم متن: باید د ${q.pattern} سره مطابقت ولري`;return`${X[q.format]??Y.format} ناسم دی`}case"not_multiple_of":return`ناسم عدد: باید د ${Y.divisor} مضرب وي`;case"unrecognized_keys":return`ناسم ${Y.keys.length>1?"کلیډونه":"کلیډ"}: ${k(Y.keys,", ")}`;case"invalid_key":return`ناسم کلیډ په ${Y.origin} کې`;case"invalid_union":return"ناسمه ورودي";case"invalid_element":return`ناسم عنصر په ${Y.origin} کې`;default:return"ناسمه ورودي"}}};function v_(){return{localeError:S_()}}var __=()=>{let Q={string:{unit:"znaków",verb:"mieć"},file:{unit:"bajtów",verb:"mieć"},array:{unit:"elementów",verb:"mieć"},set:{unit:"elementów",verb:"mieć"}};function J(Y){return Q[Y]??null}let X={regex:"wyrażenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ciąg znaków zakodowany w formacie base64",base64url:"ciąg znaków zakodowany w formacie base64url",json_string:"ciąg znaków w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wejście"},G={nan:"NaN",number:"liczba",array:"tablica"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Nieprawidłowe dane wejściowe: oczekiwano instanceof ${Y.expected}, otrzymano ${W}`;return`Nieprawidłowe dane wejściowe: oczekiwano ${q}, otrzymano ${W}`}case"invalid_value":if(Y.values.length===1)return`Nieprawidłowe dane wejściowe: oczekiwano ${J0(Y.values[0])}`;return`Nieprawidłowa opcja: oczekiwano jednej z wartości ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Za duża wartość: oczekiwano, że ${Y.origin??"wartość"} będzie mieć ${q}${Y.maximum.toString()} ${$.unit??"elementów"}`;return`Zbyt duż(y/a/e): oczekiwano, że ${Y.origin??"wartość"} będzie wynosić ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Za mała wartość: oczekiwano, że ${Y.origin??"wartość"} będzie mieć ${q}${Y.minimum.toString()} ${$.unit??"elementów"}`;return`Zbyt mał(y/a/e): oczekiwano, że ${Y.origin??"wartość"} będzie wynosić ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Nieprawidłowy ciąg znaków: musi zaczynać się od "${q.prefix}"`;if(q.format==="ends_with")return`Nieprawidłowy ciąg znaków: musi kończyć się na "${q.suffix}"`;if(q.format==="includes")return`Nieprawidłowy ciąg znaków: musi zawierać "${q.includes}"`;if(q.format==="regex")return`Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${q.pattern}`;return`Nieprawidłow(y/a/e) ${X[q.format]??Y.format}`}case"not_multiple_of":return`Nieprawidłowa liczba: musi być wielokrotnością ${Y.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${Y.keys.length>1?"s":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`Nieprawidłowy klucz w ${Y.origin}`;case"invalid_union":return"Nieprawidłowe dane wejściowe";case"invalid_element":return`Nieprawidłowa wartość w ${Y.origin}`;default:return"Nieprawidłowe dane wejściowe"}}};function F_(){return{localeError:__()}}var P_=()=>{let Q={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function J(Y){return Q[Y]??null}let X={regex:"padrão",email:"endereço de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"duração ISO",ipv4:"endereço IPv4",ipv6:"endereço IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},G={nan:"NaN",number:"número",null:"nulo"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Tipo inválido: esperado instanceof ${Y.expected}, recebido ${W}`;return`Tipo inválido: esperado ${q}, recebido ${W}`}case"invalid_value":if(Y.values.length===1)return`Entrada inválida: esperado ${J0(Y.values[0])}`;return`Opção inválida: esperada uma das ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Muito grande: esperado que ${Y.origin??"valor"} tivesse ${q}${Y.maximum.toString()} ${$.unit??"elementos"}`;return`Muito grande: esperado que ${Y.origin??"valor"} fosse ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Muito pequeno: esperado que ${Y.origin} tivesse ${q}${Y.minimum.toString()} ${$.unit}`;return`Muito pequeno: esperado que ${Y.origin} fosse ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Texto inválido: deve começar com "${q.prefix}"`;if(q.format==="ends_with")return`Texto inválido: deve terminar com "${q.suffix}"`;if(q.format==="includes")return`Texto inválido: deve incluir "${q.includes}"`;if(q.format==="regex")return`Texto inválido: deve corresponder ao padrão ${q.pattern}`;return`${X[q.format]??Y.format} inválido`}case"not_multiple_of":return`Número inválido: deve ser múltiplo de ${Y.divisor}`;case"unrecognized_keys":return`Chave${Y.keys.length>1?"s":""} desconhecida${Y.keys.length>1?"s":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`Chave inválida em ${Y.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido em ${Y.origin}`;default:return"Campo inválido"}}};function k_(){return{localeError:P_()}}function IU(Q,J,X,G){let Y=Math.abs(Q),q=Y%10,$=Y%100;if($>=11&&$<=19)return G;if(q===1)return J;if(q>=2&&q<=4)return X;return G}var Z_=()=>{let Q={string:{unit:{one:"символ",few:"символа",many:"символов"},verb:"иметь"},file:{unit:{one:"байт",few:"байта",many:"байт"},verb:"иметь"},array:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"},set:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"}};function J(Y){return Q[Y]??null}let X={regex:"ввод",email:"email адрес",url:"URL",emoji:"эмодзи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата и время",date:"ISO дата",time:"ISO время",duration:"ISO длительность",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"строка в формате base64",base64url:"строка в формате base64url",json_string:"JSON строка",e164:"номер E.164",jwt:"JWT",template_literal:"ввод"},G={nan:"NaN",number:"число",array:"массив"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Неверный ввод: ожидалось instanceof ${Y.expected}, получено ${W}`;return`Неверный ввод: ожидалось ${q}, получено ${W}`}case"invalid_value":if(Y.values.length===1)return`Неверный ввод: ожидалось ${J0(Y.values[0])}`;return`Неверный вариант: ожидалось одно из ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($){let W=Number(Y.maximum),j=IU(W,$.unit.one,$.unit.few,$.unit.many);return`Слишком большое значение: ожидалось, что ${Y.origin??"значение"} будет иметь ${q}${Y.maximum.toString()} ${j}`}return`Слишком большое значение: ожидалось, что ${Y.origin??"значение"} будет ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($){let W=Number(Y.minimum),j=IU(W,$.unit.one,$.unit.few,$.unit.many);return`Слишком маленькое значение: ожидалось, что ${Y.origin} будет иметь ${q}${Y.minimum.toString()} ${j}`}return`Слишком маленькое значение: ожидалось, что ${Y.origin} будет ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Неверная строка: должна начинаться с "${q.prefix}"`;if(q.format==="ends_with")return`Неверная строка: должна заканчиваться на "${q.suffix}"`;if(q.format==="includes")return`Неверная строка: должна содержать "${q.includes}"`;if(q.format==="regex")return`Неверная строка: должна соответствовать шаблону ${q.pattern}`;return`Неверный ${X[q.format]??Y.format}`}case"not_multiple_of":return`Неверное число: должно быть кратным ${Y.divisor}`;case"unrecognized_keys":return`Нераспознанн${Y.keys.length>1?"ые":"ый"} ключ${Y.keys.length>1?"и":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`Неверный ключ в ${Y.origin}`;case"invalid_union":return"Неверные входные данные";case"invalid_element":return`Неверное значение в ${Y.origin}`;default:return"Неверные входные данные"}}};function T_(){return{localeError:Z_()}}var x_=()=>{let Q={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function J(Y){return Q[Y]??null}let X={regex:"vnos",email:"e-poštni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in čas",date:"ISO datum",time:"ISO čas",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 številka",jwt:"JWT",template_literal:"vnos"},G={nan:"NaN",number:"število",array:"tabela"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Neveljaven vnos: pričakovano instanceof ${Y.expected}, prejeto ${W}`;return`Neveljaven vnos: pričakovano ${q}, prejeto ${W}`}case"invalid_value":if(Y.values.length===1)return`Neveljaven vnos: pričakovano ${J0(Y.values[0])}`;return`Neveljavna možnost: pričakovano eno izmed ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Preveliko: pričakovano, da bo ${Y.origin??"vrednost"} imelo ${q}${Y.maximum.toString()} ${$.unit??"elementov"}`;return`Preveliko: pričakovano, da bo ${Y.origin??"vrednost"} ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Premajhno: pričakovano, da bo ${Y.origin} imelo ${q}${Y.minimum.toString()} ${$.unit}`;return`Premajhno: pričakovano, da bo ${Y.origin} ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Neveljaven niz: mora se začeti z "${q.prefix}"`;if(q.format==="ends_with")return`Neveljaven niz: mora se končati z "${q.suffix}"`;if(q.format==="includes")return`Neveljaven niz: mora vsebovati "${q.includes}"`;if(q.format==="regex")return`Neveljaven niz: mora ustrezati vzorcu ${q.pattern}`;return`Neveljaven ${X[q.format]??Y.format}`}case"not_multiple_of":return`Neveljavno število: mora biti večkratnik ${Y.divisor}`;case"unrecognized_keys":return`Neprepoznan${Y.keys.length>1?"i ključi":" ključ"}: ${k(Y.keys,", ")}`;case"invalid_key":return`Neveljaven ključ v ${Y.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${Y.origin}`;default:return"Neveljaven vnos"}}};function g_(){return{localeError:x_()}}var f_=()=>{let Q={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att innehålla"},set:{unit:"objekt",verb:"att innehålla"}};function J(Y){return Q[Y]??null}let X={regex:"reguljärt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad sträng",base64url:"base64url-kodad sträng",json_string:"JSON-sträng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"},G={nan:"NaN",number:"antal",array:"lista"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Ogiltig inmatning: förväntat instanceof ${Y.expected}, fick ${W}`;return`Ogiltig inmatning: förväntat ${q}, fick ${W}`}case"invalid_value":if(Y.values.length===1)return`Ogiltig inmatning: förväntat ${J0(Y.values[0])}`;return`Ogiltigt val: förväntade en av ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`För stor(t): förväntade ${Y.origin??"värdet"} att ha ${q}${Y.maximum.toString()} ${$.unit??"element"}`;return`För stor(t): förväntat ${Y.origin??"värdet"} att ha ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`För lite(t): förväntade ${Y.origin??"värdet"} att ha ${q}${Y.minimum.toString()} ${$.unit}`;return`För lite(t): förväntade ${Y.origin??"värdet"} att ha ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Ogiltig sträng: måste börja med "${q.prefix}"`;if(q.format==="ends_with")return`Ogiltig sträng: måste sluta med "${q.suffix}"`;if(q.format==="includes")return`Ogiltig sträng: måste innehålla "${q.includes}"`;if(q.format==="regex")return`Ogiltig sträng: måste matcha mönstret "${q.pattern}"`;return`Ogiltig(t) ${X[q.format]??Y.format}`}case"not_multiple_of":return`Ogiltigt tal: måste vara en multipel av ${Y.divisor}`;case"unrecognized_keys":return`${Y.keys.length>1?"Okända nycklar":"Okänd nyckel"}: ${k(Y.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${Y.origin??"värdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt värde i ${Y.origin??"värdet"}`;default:return"Ogiltig input"}}};function h_(){return{localeError:f_()}}var m_=()=>{let Q={string:{unit:"எழுத்துக்கள்",verb:"கொண்டிருக்க வேண்டும்"},file:{unit:"பைட்டுகள்",verb:"கொண்டிருக்க வேண்டும்"},array:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"},set:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"}};function J(Y){return Q[Y]??null}let X={regex:"உள்ளீடு",email:"மின்னஞ்சல் முகவரி",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO தேதி நேரம்",date:"ISO தேதி",time:"ISO நேரம்",duration:"ISO கால அளவு",ipv4:"IPv4 முகவரி",ipv6:"IPv6 முகவரி",cidrv4:"IPv4 வரம்பு",cidrv6:"IPv6 வரம்பு",base64:"base64-encoded சரம்",base64url:"base64url-encoded சரம்",json_string:"JSON சரம்",e164:"E.164 எண்",jwt:"JWT",template_literal:"input"},G={nan:"NaN",number:"எண்",array:"அணி",null:"வெறுமை"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது instanceof ${Y.expected}, பெறப்பட்டது ${W}`;return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${q}, பெறப்பட்டது ${W}`}case"invalid_value":if(Y.values.length===1)return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${J0(Y.values[0])}`;return`தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${k(Y.values,"|")} இல் ஒன்று`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${Y.origin??"மதிப்பு"} ${q}${Y.maximum.toString()} ${$.unit??"உறுப்புகள்"} ஆக இருக்க வேண்டும்`;return`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${Y.origin??"மதிப்பு"} ${q}${Y.maximum.toString()} ஆக இருக்க வேண்டும்`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${Y.origin} ${q}${Y.minimum.toString()} ${$.unit} ஆக இருக்க வேண்டும்`;return`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${Y.origin} ${q}${Y.minimum.toString()} ஆக இருக்க வேண்டும்`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`தவறான சரம்: "${q.prefix}" இல் தொடங்க வேண்டும்`;if(q.format==="ends_with")return`தவறான சரம்: "${q.suffix}" இல் முடிவடைய வேண்டும்`;if(q.format==="includes")return`தவறான சரம்: "${q.includes}" ஐ உள்ளடக்க வேண்டும்`;if(q.format==="regex")return`தவறான சரம்: ${q.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`;return`தவறான ${X[q.format]??Y.format}`}case"not_multiple_of":return`தவறான எண்: ${Y.divisor} இன் பலமாக இருக்க வேண்டும்`;case"unrecognized_keys":return`அடையாளம் தெரியாத விசை${Y.keys.length>1?"கள்":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`${Y.origin} இல் தவறான விசை`;case"invalid_union":return"தவறான உள்ளீடு";case"invalid_element":return`${Y.origin} இல் தவறான மதிப்பு`;default:return"தவறான உள்ளீடு"}}};function y_(){return{localeError:m_()}}var l_=()=>{let Q={string:{unit:"ตัวอักษร",verb:"ควรมี"},file:{unit:"ไบต์",verb:"ควรมี"},array:{unit:"รายการ",verb:"ควรมี"},set:{unit:"รายการ",verb:"ควรมี"}};function J(Y){return Q[Y]??null}let X={regex:"ข้อมูลที่ป้อน",email:"ที่อยู่อีเมล",url:"URL",emoji:"อิโมจิ",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"วันที่เวลาแบบ ISO",date:"วันที่แบบ ISO",time:"เวลาแบบ ISO",duration:"ช่วงเวลาแบบ ISO",ipv4:"ที่อยู่ IPv4",ipv6:"ที่อยู่ IPv6",cidrv4:"ช่วง IP แบบ IPv4",cidrv6:"ช่วง IP แบบ IPv6",base64:"ข้อความแบบ Base64",base64url:"ข้อความแบบ Base64 สำหรับ URL",json_string:"ข้อความแบบ JSON",e164:"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)",jwt:"โทเคน JWT",template_literal:"ข้อมูลที่ป้อน"},G={nan:"NaN",number:"ตัวเลข",array:"อาร์เรย์ (Array)",null:"ไม่มีค่า (null)"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น instanceof ${Y.expected} แต่ได้รับ ${W}`;return`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${q} แต่ได้รับ ${W}`}case"invalid_value":if(Y.values.length===1)return`ค่าไม่ถูกต้อง: ควรเป็น ${J0(Y.values[0])}`;return`ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"ไม่เกิน":"น้อยกว่า",$=J(Y.origin);if($)return`เกินกำหนด: ${Y.origin??"ค่า"} ควรมี${q} ${Y.maximum.toString()} ${$.unit??"รายการ"}`;return`เกินกำหนด: ${Y.origin??"ค่า"} ควรมี${q} ${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?"อย่างน้อย":"มากกว่า",$=J(Y.origin);if($)return`น้อยกว่ากำหนด: ${Y.origin} ควรมี${q} ${Y.minimum.toString()} ${$.unit}`;return`น้อยกว่ากำหนด: ${Y.origin} ควรมี${q} ${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย "${q.prefix}"`;if(q.format==="ends_with")return`รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย "${q.suffix}"`;if(q.format==="includes")return`รูปแบบไม่ถูกต้อง: ข้อความต้องมี "${q.includes}" อยู่ในข้อความ`;if(q.format==="regex")return`รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${q.pattern}`;return`รูปแบบไม่ถูกต้อง: ${X[q.format]??Y.format}`}case"not_multiple_of":return`ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${Y.divisor} ได้ลงตัว`;case"unrecognized_keys":return`พบคีย์ที่ไม่รู้จัก: ${k(Y.keys,", ")}`;case"invalid_key":return`คีย์ไม่ถูกต้องใน ${Y.origin}`;case"invalid_union":return"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้";case"invalid_element":return`ข้อมูลไม่ถูกต้องใน ${Y.origin}`;default:return"ข้อมูลไม่ถูกต้อง"}}};function u_(){return{localeError:l_()}}var c_=()=>{let Q={string:{unit:"karakter",verb:"olmalı"},file:{unit:"bayt",verb:"olmalı"},array:{unit:"öğe",verb:"olmalı"},set:{unit:"öğe",verb:"olmalı"}};function J(Y){return Q[Y]??null}let X={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO süre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aralığı",cidrv6:"IPv6 aralığı",base64:"base64 ile şifrelenmiş metin",base64url:"base64url ile şifrelenmiş metin",json_string:"JSON dizesi",e164:"E.164 sayısı",jwt:"JWT",template_literal:"Şablon dizesi"},G={nan:"NaN"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Geçersiz değer: beklenen instanceof ${Y.expected}, alınan ${W}`;return`Geçersiz değer: beklenen ${q}, alınan ${W}`}case"invalid_value":if(Y.values.length===1)return`Geçersiz değer: beklenen ${J0(Y.values[0])}`;return`Geçersiz seçenek: aşağıdakilerden biri olmalı: ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Çok büyük: beklenen ${Y.origin??"değer"} ${q}${Y.maximum.toString()} ${$.unit??"öğe"}`;return`Çok büyük: beklenen ${Y.origin??"değer"} ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Çok küçük: beklenen ${Y.origin} ${q}${Y.minimum.toString()} ${$.unit}`;return`Çok küçük: beklenen ${Y.origin} ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Geçersiz metin: "${q.prefix}" ile başlamalı`;if(q.format==="ends_with")return`Geçersiz metin: "${q.suffix}" ile bitmeli`;if(q.format==="includes")return`Geçersiz metin: "${q.includes}" içermeli`;if(q.format==="regex")return`Geçersiz metin: ${q.pattern} desenine uymalı`;return`Geçersiz ${X[q.format]??Y.format}`}case"not_multiple_of":return`Geçersiz sayı: ${Y.divisor} ile tam bölünebilmeli`;case"unrecognized_keys":return`Tanınmayan anahtar${Y.keys.length>1?"lar":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`${Y.origin} içinde geçersiz anahtar`;case"invalid_union":return"Geçersiz değer";case"invalid_element":return`${Y.origin} içinde geçersiz değer`;default:return"Geçersiz değer"}}};function p_(){return{localeError:c_()}}var b_=()=>{let Q={string:{unit:"символів",verb:"матиме"},file:{unit:"байтів",verb:"матиме"},array:{unit:"елементів",verb:"матиме"},set:{unit:"елементів",verb:"матиме"}};function J(Y){return Q[Y]??null}let X={regex:"вхідні дані",email:"адреса електронної пошти",url:"URL",emoji:"емодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"дата та час ISO",date:"дата ISO",time:"час ISO",duration:"тривалість ISO",ipv4:"адреса IPv4",ipv6:"адреса IPv6",cidrv4:"діапазон IPv4",cidrv6:"діапазон IPv6",base64:"рядок у кодуванні base64",base64url:"рядок у кодуванні base64url",json_string:"рядок JSON",e164:"номер E.164",jwt:"JWT",template_literal:"вхідні дані"},G={nan:"NaN",number:"число",array:"масив"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Неправильні вхідні дані: очікується instanceof ${Y.expected}, отримано ${W}`;return`Неправильні вхідні дані: очікується ${q}, отримано ${W}`}case"invalid_value":if(Y.values.length===1)return`Неправильні вхідні дані: очікується ${J0(Y.values[0])}`;return`Неправильна опція: очікується одне з ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Занадто велике: очікується, що ${Y.origin??"значення"} ${$.verb} ${q}${Y.maximum.toString()} ${$.unit??"елементів"}`;return`Занадто велике: очікується, що ${Y.origin??"значення"} буде ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Занадто мале: очікується, що ${Y.origin} ${$.verb} ${q}${Y.minimum.toString()} ${$.unit}`;return`Занадто мале: очікується, що ${Y.origin} буде ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Неправильний рядок: повинен починатися з "${q.prefix}"`;if(q.format==="ends_with")return`Неправильний рядок: повинен закінчуватися на "${q.suffix}"`;if(q.format==="includes")return`Неправильний рядок: повинен містити "${q.includes}"`;if(q.format==="regex")return`Неправильний рядок: повинен відповідати шаблону ${q.pattern}`;return`Неправильний ${X[q.format]??Y.format}`}case"not_multiple_of":return`Неправильне число: повинно бути кратним ${Y.divisor}`;case"unrecognized_keys":return`Нерозпізнаний ключ${Y.keys.length>1?"і":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`Неправильний ключ у ${Y.origin}`;case"invalid_union":return"Неправильні вхідні дані";case"invalid_element":return`Неправильне значення у ${Y.origin}`;default:return"Неправильні вхідні дані"}}};function NR(){return{localeError:b_()}}function o_(){return NR()}var d_=()=>{let Q={string:{unit:"حروف",verb:"ہونا"},file:{unit:"بائٹس",verb:"ہونا"},array:{unit:"آئٹمز",verb:"ہونا"},set:{unit:"آئٹمز",verb:"ہونا"}};function J(Y){return Q[Y]??null}let X={regex:"ان پٹ",email:"ای میل ایڈریس",url:"یو آر ایل",emoji:"ایموجی",uuid:"یو یو آئی ڈی",uuidv4:"یو یو آئی ڈی وی 4",uuidv6:"یو یو آئی ڈی وی 6",nanoid:"نینو آئی ڈی",guid:"جی یو آئی ڈی",cuid:"سی یو آئی ڈی",cuid2:"سی یو آئی ڈی 2",ulid:"یو ایل آئی ڈی",xid:"ایکس آئی ڈی",ksuid:"کے ایس یو آئی ڈی",datetime:"آئی ایس او ڈیٹ ٹائم",date:"آئی ایس او تاریخ",time:"آئی ایس او وقت",duration:"آئی ایس او مدت",ipv4:"آئی پی وی 4 ایڈریس",ipv6:"آئی پی وی 6 ایڈریس",cidrv4:"آئی پی وی 4 رینج",cidrv6:"آئی پی وی 6 رینج",base64:"بیس 64 ان کوڈڈ سٹرنگ",base64url:"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ",json_string:"جے ایس او این سٹرنگ",e164:"ای 164 نمبر",jwt:"جے ڈبلیو ٹی",template_literal:"ان پٹ"},G={nan:"NaN",number:"نمبر",array:"آرے",null:"نل"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`غلط ان پٹ: instanceof ${Y.expected} متوقع تھا، ${W} موصول ہوا`;return`غلط ان پٹ: ${q} متوقع تھا، ${W} موصول ہوا`}case"invalid_value":if(Y.values.length===1)return`غلط ان پٹ: ${J0(Y.values[0])} متوقع تھا`;return`غلط آپشن: ${k(Y.values,"|")} میں سے ایک متوقع تھا`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`بہت بڑا: ${Y.origin??"ویلیو"} کے ${q}${Y.maximum.toString()} ${$.unit??"عناصر"} ہونے متوقع تھے`;return`بہت بڑا: ${Y.origin??"ویلیو"} کا ${q}${Y.maximum.toString()} ہونا متوقع تھا`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`بہت چھوٹا: ${Y.origin} کے ${q}${Y.minimum.toString()} ${$.unit} ہونے متوقع تھے`;return`بہت چھوٹا: ${Y.origin} کا ${q}${Y.minimum.toString()} ہونا متوقع تھا`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`غلط سٹرنگ: "${q.prefix}" سے شروع ہونا چاہیے`;if(q.format==="ends_with")return`غلط سٹرنگ: "${q.suffix}" پر ختم ہونا چاہیے`;if(q.format==="includes")return`غلط سٹرنگ: "${q.includes}" شامل ہونا چاہیے`;if(q.format==="regex")return`غلط سٹرنگ: پیٹرن ${q.pattern} سے میچ ہونا چاہیے`;return`غلط ${X[q.format]??Y.format}`}case"not_multiple_of":return`غلط نمبر: ${Y.divisor} کا مضاعف ہونا چاہیے`;case"unrecognized_keys":return`غیر تسلیم شدہ کی${Y.keys.length>1?"ز":""}: ${k(Y.keys,"، ")}`;case"invalid_key":return`${Y.origin} میں غلط کی`;case"invalid_union":return"غلط ان پٹ";case"invalid_element":return`${Y.origin} میں غلط ویلیو`;default:return"غلط ان پٹ"}}};function r_(){return{localeError:d_()}}var s_=()=>{let Q={string:{unit:"belgi",verb:"bo‘lishi kerak"},file:{unit:"bayt",verb:"bo‘lishi kerak"},array:{unit:"element",verb:"bo‘lishi kerak"},set:{unit:"element",verb:"bo‘lishi kerak"}};function J(Y){return Q[Y]??null}let X={regex:"kirish",email:"elektron pochta manzili",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO sana va vaqti",date:"ISO sana",time:"ISO vaqt",duration:"ISO davomiylik",ipv4:"IPv4 manzil",ipv6:"IPv6 manzil",mac:"MAC manzil",cidrv4:"IPv4 diapazon",cidrv6:"IPv6 diapazon",base64:"base64 kodlangan satr",base64url:"base64url kodlangan satr",json_string:"JSON satr",e164:"E.164 raqam",jwt:"JWT",template_literal:"kirish"},G={nan:"NaN",number:"raqam",array:"massiv"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Noto‘g‘ri kirish: kutilgan instanceof ${Y.expected}, qabul qilingan ${W}`;return`Noto‘g‘ri kirish: kutilgan ${q}, qabul qilingan ${W}`}case"invalid_value":if(Y.values.length===1)return`Noto‘g‘ri kirish: kutilgan ${J0(Y.values[0])}`;return`Noto‘g‘ri variant: quyidagilardan biri kutilgan ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Juda katta: kutilgan ${Y.origin??"qiymat"} ${q}${Y.maximum.toString()} ${$.unit} ${$.verb}`;return`Juda katta: kutilgan ${Y.origin??"qiymat"} ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Juda kichik: kutilgan ${Y.origin} ${q}${Y.minimum.toString()} ${$.unit} ${$.verb}`;return`Juda kichik: kutilgan ${Y.origin} ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Noto‘g‘ri satr: "${q.prefix}" bilan boshlanishi kerak`;if(q.format==="ends_with")return`Noto‘g‘ri satr: "${q.suffix}" bilan tugashi kerak`;if(q.format==="includes")return`Noto‘g‘ri satr: "${q.includes}" ni o‘z ichiga olishi kerak`;if(q.format==="regex")return`Noto‘g‘ri satr: ${q.pattern} shabloniga mos kelishi kerak`;return`Noto‘g‘ri ${X[q.format]??Y.format}`}case"not_multiple_of":return`Noto‘g‘ri raqam: ${Y.divisor} ning karralisi bo‘lishi kerak`;case"unrecognized_keys":return`Noma’lum kalit${Y.keys.length>1?"lar":""}: ${k(Y.keys,", ")}`;case"invalid_key":return`${Y.origin} dagi kalit noto‘g‘ri`;case"invalid_union":return"Noto‘g‘ri kirish";case"invalid_element":return`${Y.origin} da noto‘g‘ri qiymat`;default:return"Noto‘g‘ri kirish"}}};function i_(){return{localeError:s_()}}var t_=()=>{let Q={string:{unit:"ký tự",verb:"có"},file:{unit:"byte",verb:"có"},array:{unit:"phần tử",verb:"có"},set:{unit:"phần tử",verb:"có"}};function J(Y){return Q[Y]??null}let X={regex:"đầu vào",email:"địa chỉ email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ngày giờ ISO",date:"ngày ISO",time:"giờ ISO",duration:"khoảng thời gian ISO",ipv4:"địa chỉ IPv4",ipv6:"địa chỉ IPv6",cidrv4:"dải IPv4",cidrv6:"dải IPv6",base64:"chuỗi mã hóa base64",base64url:"chuỗi mã hóa base64url",json_string:"chuỗi JSON",e164:"số E.164",jwt:"JWT",template_literal:"đầu vào"},G={nan:"NaN",number:"số",array:"mảng"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Đầu vào không hợp lệ: mong đợi instanceof ${Y.expected}, nhận được ${W}`;return`Đầu vào không hợp lệ: mong đợi ${q}, nhận được ${W}`}case"invalid_value":if(Y.values.length===1)return`Đầu vào không hợp lệ: mong đợi ${J0(Y.values[0])}`;return`Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Quá lớn: mong đợi ${Y.origin??"giá trị"} ${$.verb} ${q}${Y.maximum.toString()} ${$.unit??"phần tử"}`;return`Quá lớn: mong đợi ${Y.origin??"giá trị"} ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Quá nhỏ: mong đợi ${Y.origin} ${$.verb} ${q}${Y.minimum.toString()} ${$.unit}`;return`Quá nhỏ: mong đợi ${Y.origin} ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Chuỗi không hợp lệ: phải bắt đầu bằng "${q.prefix}"`;if(q.format==="ends_with")return`Chuỗi không hợp lệ: phải kết thúc bằng "${q.suffix}"`;if(q.format==="includes")return`Chuỗi không hợp lệ: phải bao gồm "${q.includes}"`;if(q.format==="regex")return`Chuỗi không hợp lệ: phải khớp với mẫu ${q.pattern}`;return`${X[q.format]??Y.format} không hợp lệ`}case"not_multiple_of":return`Số không hợp lệ: phải là bội số của ${Y.divisor}`;case"unrecognized_keys":return`Khóa không được nhận dạng: ${k(Y.keys,", ")}`;case"invalid_key":return`Khóa không hợp lệ trong ${Y.origin}`;case"invalid_union":return"Đầu vào không hợp lệ";case"invalid_element":return`Giá trị không hợp lệ trong ${Y.origin}`;default:return"Đầu vào không hợp lệ"}}};function n_(){return{localeError:t_()}}var a_=()=>{let Q={string:{unit:"字符",verb:"包含"},file:{unit:"字节",verb:"包含"},array:{unit:"项",verb:"包含"},set:{unit:"项",verb:"包含"}};function J(Y){return Q[Y]??null}let X={regex:"输入",email:"电子邮件",url:"URL",emoji:"表情符号",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日期时间",date:"ISO日期",time:"ISO时间",duration:"ISO时长",ipv4:"IPv4地址",ipv6:"IPv6地址",cidrv4:"IPv4网段",cidrv6:"IPv6网段",base64:"base64编码字符串",base64url:"base64url编码字符串",json_string:"JSON字符串",e164:"E.164号码",jwt:"JWT",template_literal:"输入"},G={nan:"NaN",number:"数字",array:"数组",null:"空值(null)"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`无效输入:期望 instanceof ${Y.expected},实际接收 ${W}`;return`无效输入:期望 ${q},实际接收 ${W}`}case"invalid_value":if(Y.values.length===1)return`无效输入:期望 ${J0(Y.values[0])}`;return`无效选项:期望以下之一 ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`数值过大:期望 ${Y.origin??"值"} ${q}${Y.maximum.toString()} ${$.unit??"个元素"}`;return`数值过大:期望 ${Y.origin??"值"} ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`数值过小:期望 ${Y.origin} ${q}${Y.minimum.toString()} ${$.unit}`;return`数值过小:期望 ${Y.origin} ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`无效字符串:必须以 "${q.prefix}" 开头`;if(q.format==="ends_with")return`无效字符串:必须以 "${q.suffix}" 结尾`;if(q.format==="includes")return`无效字符串:必须包含 "${q.includes}"`;if(q.format==="regex")return`无效字符串:必须满足正则表达式 ${q.pattern}`;return`无效${X[q.format]??Y.format}`}case"not_multiple_of":return`无效数字:必须是 ${Y.divisor} 的倍数`;case"unrecognized_keys":return`出现未知的键(key): ${k(Y.keys,", ")}`;case"invalid_key":return`${Y.origin} 中的键(key)无效`;case"invalid_union":return"无效输入";case"invalid_element":return`${Y.origin} 中包含无效值(value)`;default:return"无效输入"}}};function e_(){return{localeError:a_()}}var QF=()=>{let Q={string:{unit:"字元",verb:"擁有"},file:{unit:"位元組",verb:"擁有"},array:{unit:"項目",verb:"擁有"},set:{unit:"項目",verb:"擁有"}};function J(Y){return Q[Y]??null}let X={regex:"輸入",email:"郵件地址",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 日期時間",date:"ISO 日期",time:"ISO 時間",duration:"ISO 期間",ipv4:"IPv4 位址",ipv6:"IPv6 位址",cidrv4:"IPv4 範圍",cidrv6:"IPv6 範圍",base64:"base64 編碼字串",base64url:"base64url 編碼字串",json_string:"JSON 字串",e164:"E.164 數值",jwt:"JWT",template_literal:"輸入"},G={nan:"NaN"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`無效的輸入值:預期為 instanceof ${Y.expected},但收到 ${W}`;return`無效的輸入值:預期為 ${q},但收到 ${W}`}case"invalid_value":if(Y.values.length===1)return`無效的輸入值:預期為 ${J0(Y.values[0])}`;return`無效的選項:預期為以下其中之一 ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`數值過大:預期 ${Y.origin??"值"} 應為 ${q}${Y.maximum.toString()} ${$.unit??"個元素"}`;return`數值過大:預期 ${Y.origin??"值"} 應為 ${q}${Y.maximum.toString()}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`數值過小:預期 ${Y.origin} 應為 ${q}${Y.minimum.toString()} ${$.unit}`;return`數值過小:預期 ${Y.origin} 應為 ${q}${Y.minimum.toString()}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`無效的字串:必須以 "${q.prefix}" 開頭`;if(q.format==="ends_with")return`無效的字串:必須以 "${q.suffix}" 結尾`;if(q.format==="includes")return`無效的字串:必須包含 "${q.includes}"`;if(q.format==="regex")return`無效的字串:必須符合格式 ${q.pattern}`;return`無效的 ${X[q.format]??Y.format}`}case"not_multiple_of":return`無效的數字:必須為 ${Y.divisor} 的倍數`;case"unrecognized_keys":return`無法識別的鍵值${Y.keys.length>1?"們":""}:${k(Y.keys,"、")}`;case"invalid_key":return`${Y.origin} 中有無效的鍵值`;case"invalid_union":return"無效的輸入值";case"invalid_element":return`${Y.origin} 中有無效的值`;default:return"無效的輸入值"}}};function JF(){return{localeError:QF()}}var XF=()=>{let Q={string:{unit:"àmi",verb:"ní"},file:{unit:"bytes",verb:"ní"},array:{unit:"nkan",verb:"ní"},set:{unit:"nkan",verb:"ní"}};function J(Y){return Q[Y]??null}let X={regex:"ẹ̀rọ ìbáwọlé",email:"àdírẹ́sì ìmẹ́lì",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"àkókò ISO",date:"ọjọ́ ISO",time:"àkókò ISO",duration:"àkókò tó pé ISO",ipv4:"àdírẹ́sì IPv4",ipv6:"àdírẹ́sì IPv6",cidrv4:"àgbègbè IPv4",cidrv6:"àgbègbè IPv6",base64:"ọ̀rọ̀ tí a kọ́ ní base64",base64url:"ọ̀rọ̀ base64url",json_string:"ọ̀rọ̀ JSON",e164:"nọ́mbà E.164",jwt:"JWT",template_literal:"ẹ̀rọ ìbáwọlé"},G={nan:"NaN",number:"nọ́mbà",array:"akopọ"};return(Y)=>{switch(Y.code){case"invalid_type":{let q=G[Y.expected]??Y.expected,$=Y0(Y.input),W=G[$]??$;if(/^[A-Z]/.test(Y.expected))return`Ìbáwọlé aṣìṣe: a ní láti fi instanceof ${Y.expected}, àmọ̀ a rí ${W}`;return`Ìbáwọlé aṣìṣe: a ní láti fi ${q}, àmọ̀ a rí ${W}`}case"invalid_value":if(Y.values.length===1)return`Ìbáwọlé aṣìṣe: a ní láti fi ${J0(Y.values[0])}`;return`Àṣàyàn aṣìṣe: yan ọ̀kan lára ${k(Y.values,"|")}`;case"too_big":{let q=Y.inclusive?"<=":"<",$=J(Y.origin);if($)return`Tó pọ̀ jù: a ní láti jẹ́ pé ${Y.origin??"iye"} ${$.verb} ${q}${Y.maximum} ${$.unit}`;return`Tó pọ̀ jù: a ní láti jẹ́ ${q}${Y.maximum}`}case"too_small":{let q=Y.inclusive?">=":">",$=J(Y.origin);if($)return`Kéré ju: a ní láti jẹ́ pé ${Y.origin} ${$.verb} ${q}${Y.minimum} ${$.unit}`;return`Kéré ju: a ní láti jẹ́ ${q}${Y.minimum}`}case"invalid_format":{let q=Y;if(q.format==="starts_with")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú "${q.prefix}"`;if(q.format==="ends_with")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú "${q.suffix}"`;if(q.format==="includes")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní "${q.includes}"`;if(q.format==="regex")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${q.pattern}`;return`Aṣìṣe: ${X[q.format]??Y.format}`}case"not_multiple_of":return`Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${Y.divisor}`;case"unrecognized_keys":return`Bọtìnì àìmọ̀: ${k(Y.keys,", ")}`;case"invalid_key":return`Bọtìnì aṣìṣe nínú ${Y.origin}`;case"invalid_union":return"Ìbáwọlé aṣìṣe";case"invalid_element":return`Iye aṣìṣe nínú ${Y.origin}`;default:return"Ìbáwọlé aṣìṣe"}}};function YF(){return{localeError:XF()}}var SU,UR=Symbol("ZodOutput"),MR=Symbol("ZodInput");class Fj{constructor(){this._map=new WeakMap,this._idmap=new Map}add(Q,...J){let X=J[0];if(this._map.set(Q,X),X&&typeof X==="object"&&"id"in X)this._idmap.set(X.id,Q);return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(Q){let J=this._map.get(Q);if(J&&typeof J==="object"&&"id"in J)this._idmap.delete(J.id);return this._map.delete(Q),this}get(Q){let J=Q._zod.parent;if(J){let X={...this.get(J)??{}};delete X.id;let G={...X,...this._map.get(Q)};return Object.keys(G).length?G:void 0}return this._map.get(Q)}has(Q){return this._map.has(Q)}}function Pj(){return new Fj}(SU=globalThis).__zod_globalRegistry??(SU.__zod_globalRegistry=Pj());var l8=globalThis.__zod_globalRegistry;function DR(Q,J){return new Q({type:"string",...Z(J)})}function OR(Q,J){return new Q({type:"string",coerce:!0,...Z(J)})}function kj(Q,J){return new Q({type:"string",format:"email",check:"string_format",abort:!1,...Z(J)})}function K$(Q,J){return new Q({type:"string",format:"guid",check:"string_format",abort:!1,...Z(J)})}function Zj(Q,J){return new Q({type:"string",format:"uuid",check:"string_format",abort:!1,...Z(J)})}function Tj(Q,J){return new Q({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Z(J)})}function xj(Q,J){return new Q({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Z(J)})}function gj(Q,J){return new Q({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Z(J)})}function T$(Q,J){return new Q({type:"string",format:"url",check:"string_format",abort:!1,...Z(J)})}function fj(Q,J){return new Q({type:"string",format:"emoji",check:"string_format",abort:!1,...Z(J)})}function hj(Q,J){return new Q({type:"string",format:"nanoid",check:"string_format",abort:!1,...Z(J)})}function mj(Q,J){return new Q({type:"string",format:"cuid",check:"string_format",abort:!1,...Z(J)})}function yj(Q,J){return new Q({type:"string",format:"cuid2",check:"string_format",abort:!1,...Z(J)})}function lj(Q,J){return new Q({type:"string",format:"ulid",check:"string_format",abort:!1,...Z(J)})}function uj(Q,J){return new Q({type:"string",format:"xid",check:"string_format",abort:!1,...Z(J)})}function cj(Q,J){return new Q({type:"string",format:"ksuid",check:"string_format",abort:!1,...Z(J)})}function pj(Q,J){return new Q({type:"string",format:"ipv4",check:"string_format",abort:!1,...Z(J)})}function bj(Q,J){return new Q({type:"string",format:"ipv6",check:"string_format",abort:!1,...Z(J)})}function BR(Q,J){return new Q({type:"string",format:"mac",check:"string_format",abort:!1,...Z(J)})}function oj(Q,J){return new Q({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Z(J)})}function dj(Q,J){return new Q({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Z(J)})}function rj(Q,J){return new Q({type:"string",format:"base64",check:"string_format",abort:!1,...Z(J)})}function sj(Q,J){return new Q({type:"string",format:"base64url",check:"string_format",abort:!1,...Z(J)})}function ij(Q,J){return new Q({type:"string",format:"e164",check:"string_format",abort:!1,...Z(J)})}function tj(Q,J){return new Q({type:"string",format:"jwt",check:"string_format",abort:!1,...Z(J)})}var RR={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function HR(Q,J){return new Q({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Z(J)})}function VR(Q,J){return new Q({type:"string",format:"date",check:"string_format",...Z(J)})}function LR(Q,J){return new Q({type:"string",format:"time",check:"string_format",precision:null,...Z(J)})}function ER(Q,J){return new Q({type:"string",format:"duration",check:"string_format",...Z(J)})}function wR(Q,J){return new Q({type:"number",checks:[],...Z(J)})}function CR(Q,J){return new Q({type:"number",coerce:!0,checks:[],...Z(J)})}function AR(Q,J){return new Q({type:"number",check:"number_format",abort:!1,format:"safeint",...Z(J)})}function IR(Q,J){return new Q({type:"number",check:"number_format",abort:!1,format:"float32",...Z(J)})}function SR(Q,J){return new Q({type:"number",check:"number_format",abort:!1,format:"float64",...Z(J)})}function vR(Q,J){return new Q({type:"number",check:"number_format",abort:!1,format:"int32",...Z(J)})}function _R(Q,J){return new Q({type:"number",check:"number_format",abort:!1,format:"uint32",...Z(J)})}function FR(Q,J){return new Q({type:"boolean",...Z(J)})}function PR(Q,J){return new Q({type:"boolean",coerce:!0,...Z(J)})}function kR(Q,J){return new Q({type:"bigint",...Z(J)})}function ZR(Q,J){return new Q({type:"bigint",coerce:!0,...Z(J)})}function TR(Q,J){return new Q({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...Z(J)})}function xR(Q,J){return new Q({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...Z(J)})}function gR(Q,J){return new Q({type:"symbol",...Z(J)})}function fR(Q,J){return new Q({type:"undefined",...Z(J)})}function hR(Q,J){return new Q({type:"null",...Z(J)})}function mR(Q){return new Q({type:"any"})}function yR(Q){return new Q({type:"unknown"})}function lR(Q,J){return new Q({type:"never",...Z(J)})}function uR(Q,J){return new Q({type:"void",...Z(J)})}function cR(Q,J){return new Q({type:"date",...Z(J)})}function pR(Q,J){return new Q({type:"date",coerce:!0,...Z(J)})}function bR(Q,J){return new Q({type:"nan",...Z(J)})}function DJ(Q,J){return new Hj({check:"less_than",...Z(J),value:Q,inclusive:!1})}function u8(Q,J){return new Hj({check:"less_than",...Z(J),value:Q,inclusive:!0})}function OJ(Q,J){return new Vj({check:"greater_than",...Z(J),value:Q,inclusive:!1})}function w8(Q,J){return new Vj({check:"greater_than",...Z(J),value:Q,inclusive:!0})}function nj(Q){return OJ(0,Q)}function aj(Q){return DJ(0,Q)}function ej(Q){return u8(0,Q)}function QK(Q){return w8(0,Q)}function cX(Q,J){return new kO({check:"multiple_of",...Z(J),value:Q})}function $Y(Q,J){return new xO({check:"max_size",...Z(J),maximum:Q})}function BJ(Q,J){return new gO({check:"min_size",...Z(J),minimum:Q})}function ZG(Q,J){return new fO({check:"size_equals",...Z(J),size:Q})}function TG(Q,J){return new hO({check:"max_length",...Z(J),maximum:Q})}function eJ(Q,J){return new mO({check:"min_length",...Z(J),minimum:Q})}function xG(Q,J){return new yO({check:"length_equals",...Z(J),length:Q})}function x$(Q,J){return new lO({check:"string_format",format:"regex",...Z(J),pattern:Q})}function g$(Q){return new uO({check:"string_format",format:"lowercase",...Z(Q)})}function f$(Q){return new cO({check:"string_format",format:"uppercase",...Z(Q)})}function h$(Q,J){return new pO({check:"string_format",format:"includes",...Z(J),includes:Q})}function m$(Q,J){return new bO({check:"string_format",format:"starts_with",...Z(J),prefix:Q})}function y$(Q,J){return new oO({check:"string_format",format:"ends_with",...Z(J),suffix:Q})}function JK(Q,J,X){return new dO({check:"property",property:Q,schema:J,...Z(X)})}function l$(Q,J){return new rO({check:"mime_type",mime:Q,...Z(J)})}function dQ(Q){return new sO({check:"overwrite",tx:Q})}function u$(Q){return dQ((J)=>J.normalize(Q))}function c$(){return dQ((Q)=>Q.trim())}function p$(){return dQ((Q)=>Q.toLowerCase())}function b$(){return dQ((Q)=>Q.toUpperCase())}function o$(){return dQ((Q)=>hD(Q))}function oR(Q,J,X){return new Q({type:"array",element:J,...Z(X)})}function GF(Q,J,X){return new Q({type:"union",options:J,...Z(X)})}function qF(Q,J,X){return new Q({type:"union",options:J,inclusive:!1,...Z(X)})}function $F(Q,J,X,G){return new Q({type:"union",options:X,discriminator:J,...Z(G)})}function WF(Q,J,X){return new Q({type:"intersection",left:J,right:X})}function jF(Q,J,X,G){let Y=X instanceof G0;return new Q({type:"tuple",items:J,rest:Y?X:null,...Z(Y?G:X)})}function KF(Q,J,X,G){return new Q({type:"record",keyType:J,valueType:X,...Z(G)})}function zF(Q,J,X,G){return new Q({type:"map",keyType:J,valueType:X,...Z(G)})}function NF(Q,J,X){return new Q({type:"set",valueType:J,...Z(X)})}function UF(Q,J,X){let G=Array.isArray(J)?Object.fromEntries(J.map((Y)=>[Y,Y])):J;return new Q({type:"enum",entries:G,...Z(X)})}function MF(Q,J,X){return new Q({type:"enum",entries:J,...Z(X)})}function DF(Q,J,X){return new Q({type:"literal",values:Array.isArray(J)?J:[J],...Z(X)})}function dR(Q,J){return new Q({type:"file",...Z(J)})}function OF(Q,J){return new Q({type:"transform",transform:J})}function BF(Q,J){return new Q({type:"optional",innerType:J})}function RF(Q,J){return new Q({type:"nullable",innerType:J})}function HF(Q,J,X){return new Q({type:"default",innerType:J,get defaultValue(){return typeof X==="function"?X():yD(X)}})}function VF(Q,J,X){return new Q({type:"nonoptional",innerType:J,...Z(X)})}function LF(Q,J){return new Q({type:"success",innerType:J})}function EF(Q,J,X){return new Q({type:"catch",innerType:J,catchValue:typeof X==="function"?X:()=>X})}function wF(Q,J,X){return new Q({type:"pipe",in:J,out:X})}function CF(Q,J){return new Q({type:"readonly",innerType:J})}function AF(Q,J,X){return new Q({type:"template_literal",parts:J,...Z(X)})}function IF(Q,J){return new Q({type:"lazy",getter:J})}function SF(Q,J){return new Q({type:"promise",innerType:J})}function rR(Q,J,X){let G=Z(X);return G.abort??(G.abort=!0),new Q({type:"custom",check:"custom",fn:J,...G})}function sR(Q,J,X){return new Q({type:"custom",check:"custom",fn:J,...Z(X)})}function iR(Q){let J=tR((X)=>{return X.addIssue=(G)=>{if(typeof G==="string")X.issues.push(W$(G,X.value,J._zod.def));else{let Y=G;if(Y.fatal)Y.continue=!1;Y.code??(Y.code="custom"),Y.input??(Y.input=X.value),Y.inst??(Y.inst=J),Y.continue??(Y.continue=!J._zod.def.abort),X.issues.push(W$(Y))}},Q(X.value,X)});return J}function tR(Q,J){let X=new k0({check:"custom",...Z(J)});return X._zod.check=Q,X}function nR(Q){let J=new k0({check:"describe"});return J._zod.onattach=[(X)=>{let G=l8.get(X)??{};l8.add(X,{...G,description:Q})}],J._zod.check=()=>{},J}function aR(Q){let J=new k0({check:"meta"});return J._zod.onattach=[(X)=>{let G=l8.get(X)??{};l8.add(X,{...G,...Q})}],J._zod.check=()=>{},J}function eR(Q,J){let X=Z(J),G=X.truthy??["true","1","yes","on","y","enabled"],Y=X.falsy??["false","0","no","off","n","disabled"];if(X.case!=="sensitive")G=G.map((U)=>typeof U==="string"?U.toLowerCase():U),Y=Y.map((U)=>typeof U==="string"?U.toLowerCase():U);let q=new Set(G),$=new Set(Y),W=Q.Codec??vj,j=Q.Boolean??Cj,K=new(Q.String??kG)({type:"string",error:X.error}),z=new j({type:"boolean",error:X.error}),N=new W({type:"pipe",in:K,out:z,transform:(U,M)=>{let D=U;if(X.case!=="sensitive")D=D.toLowerCase();if(q.has(D))return!0;else if($.has(D))return!1;else return M.issues.push({code:"invalid_value",expected:"stringbool",values:[...q,...$],input:M.value,inst:N,continue:!1}),{}},reverseTransform:(U,M)=>{if(U===!0)return G[0]||"true";else return Y[0]||"false"},error:X.error});return N}function gG(Q,J,X,G={}){let Y=Z(G),q={...Z(G),check:"string_format",type:"string",format:J,fn:typeof X==="function"?X:($)=>X.test($),...Y};if(X instanceof RegExp)q.pattern=X;return new Q(q)}function pX(Q){let J=Q?.target??"draft-2020-12";if(J==="draft-4")J="draft-04";if(J==="draft-7")J="draft-07";return{processors:Q.processors??{},metadataRegistry:Q?.metadata??l8,target:J,unrepresentable:Q?.unrepresentable??"throw",override:Q?.override??(()=>{}),io:Q?.io??"output",counter:0,seen:new Map,cycles:Q?.cycles??"ref",reused:Q?.reused??"inline",external:Q?.external??void 0}}function C0(Q,J,X={path:[],schemaPath:[]}){var G;let Y=Q._zod.def,q=J.seen.get(Q);if(q){if(q.count++,X.schemaPath.includes(Q))q.cycle=X.path;return q.schema}let $={schema:{},count:1,cycle:void 0,path:X.path};J.seen.set(Q,$);let W=Q._zod.toJSONSchema?.();if(W)$.schema=W;else{let K={...X,schemaPath:[...X.schemaPath,Q],path:X.path};if(Q._zod.processJSONSchema)Q._zod.processJSONSchema(J,$.schema,K);else{let N=$.schema,U=J.processors[Y.type];if(!U)throw Error(`[toJSONSchema]: Non-representable type encountered: ${Y.type}`);U(Q,J,N,K)}let z=Q._zod.parent;if(z){if(!$.ref)$.ref=z;C0(z,J,K),J.seen.get(z).isParent=!0}}let j=J.metadataRegistry.get(Q);if(j)Object.assign($.schema,j);if(J.io==="input"&&z8(Q))delete $.schema.examples,delete $.schema.default;if(J.io==="input"&&$.schema._prefault)(G=$.schema).default??(G.default=$.schema._prefault);return delete $.schema._prefault,J.seen.get(Q).schema}function bX(Q,J){let X=Q.seen.get(J);if(!X)throw Error("Unprocessed schema. This is a bug in Zod.");let G=new Map;for(let $ of Q.seen.entries()){let W=Q.metadataRegistry.get($[0])?.id;if(W){let j=G.get(W);if(j&&j!==$[0])throw Error(`Duplicate schema id "${W}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);G.set(W,$[0])}}let Y=($)=>{let W=Q.target==="draft-2020-12"?"$defs":"definitions";if(Q.external){let z=Q.external.registry.get($[0])?.id,N=Q.external.uri??((M)=>M);if(z)return{ref:N(z)};let U=$[1].defId??$[1].schema.id??`schema${Q.counter++}`;return $[1].defId=U,{defId:U,ref:`${N("__shared")}#/${W}/${U}`}}if($[1]===X)return{ref:"#"};let j=`#/${W}/`,K=$[1].schema.id??`__schema${Q.counter++}`;return{defId:K,ref:j+K}},q=($)=>{if($[1].schema.$ref)return;let W=$[1],{ref:j,defId:K}=Y($);if(W.def={...W.schema},K)W.defId=K;let z=W.schema;for(let N in z)delete z[N];z.$ref=j};if(Q.cycles==="throw")for(let $ of Q.seen.entries()){let W=$[1];if(W.cycle)throw Error(`Cycle detected: #/${W.cycle?.join("/")}/<root>
|
|
73
|
+
|
|
74
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let $ of Q.seen.entries()){let W=$[1];if(J===$[0]){q($);continue}if(Q.external){let j=Q.external.registry.get($[0])?.id;if(J!==$[0]&&j){q($);continue}}if(Q.metadataRegistry.get($[0])?.id){q($);continue}if(W.cycle){q($);continue}if(W.count>1){if(Q.reused==="ref"){q($);continue}}}}function oX(Q,J){let X=Q.seen.get(J);if(!X)throw Error("Unprocessed schema. This is a bug in Zod.");let G=($)=>{let W=Q.seen.get($);if(W.ref===null)return;let j=W.def??W.schema,K={...j},z=W.ref;if(W.ref=null,z){G(z);let U=Q.seen.get(z),M=U.schema;if(M.$ref&&(Q.target==="draft-07"||Q.target==="draft-04"||Q.target==="openapi-3.0"))j.allOf=j.allOf??[],j.allOf.push(M);else Object.assign(j,M);if(Object.assign(j,K),$._zod.parent===z)for(let D in j){if(D==="$ref"||D==="allOf")continue;if(!(D in K))delete j[D]}if(M.$ref&&U.def)for(let D in j){if(D==="$ref"||D==="allOf")continue;if(D in U.def&&JSON.stringify(j[D])===JSON.stringify(U.def[D]))delete j[D]}}let N=$._zod.parent;if(N&&N!==z){G(N);let U=Q.seen.get(N);if(U?.schema.$ref){if(j.$ref=U.schema.$ref,U.def)for(let M in j){if(M==="$ref"||M==="allOf")continue;if(M in U.def&&JSON.stringify(j[M])===JSON.stringify(U.def[M]))delete j[M]}}}Q.override({zodSchema:$,jsonSchema:j,path:W.path??[]})};for(let $ of[...Q.seen.entries()].reverse())G($[0]);let Y={};if(Q.target==="draft-2020-12")Y.$schema="https://json-schema.org/draft/2020-12/schema";else if(Q.target==="draft-07")Y.$schema="http://json-schema.org/draft-07/schema#";else if(Q.target==="draft-04")Y.$schema="http://json-schema.org/draft-04/schema#";else if(Q.target==="openapi-3.0");if(Q.external?.uri){let $=Q.external.registry.get(J)?.id;if(!$)throw Error("Schema is missing an `id` property");Y.$id=Q.external.uri($)}Object.assign(Y,X.def??X.schema);let q=Q.external?.defs??{};for(let $ of Q.seen.entries()){let W=$[1];if(W.def&&W.defId)q[W.defId]=W.def}if(Q.external);else if(Object.keys(q).length>0)if(Q.target==="draft-2020-12")Y.$defs=q;else Y.definitions=q;try{let $=JSON.parse(JSON.stringify(Y));return Object.defineProperty($,"~standard",{value:{...J["~standard"],jsonSchema:{input:QG(J,"input",Q.processors),output:QG(J,"output",Q.processors)}},enumerable:!1,writable:!1}),$}catch($){throw Error("Error converting schema to JSON.")}}function z8(Q,J){let X=J??{seen:new Set};if(X.seen.has(Q))return!1;X.seen.add(Q);let G=Q._zod.def;if(G.type==="transform")return!0;if(G.type==="array")return z8(G.element,X);if(G.type==="set")return z8(G.valueType,X);if(G.type==="lazy")return z8(G.getter(),X);if(G.type==="promise"||G.type==="optional"||G.type==="nonoptional"||G.type==="nullable"||G.type==="readonly"||G.type==="default"||G.type==="prefault")return z8(G.innerType,X);if(G.type==="intersection")return z8(G.left,X)||z8(G.right,X);if(G.type==="record"||G.type==="map")return z8(G.keyType,X)||z8(G.valueType,X);if(G.type==="pipe")return z8(G.in,X)||z8(G.out,X);if(G.type==="object"){for(let Y in G.shape)if(z8(G.shape[Y],X))return!0;return!1}if(G.type==="union"){for(let Y of G.options)if(z8(Y,X))return!0;return!1}if(G.type==="tuple"){for(let Y of G.items)if(z8(Y,X))return!0;if(G.rest&&z8(G.rest,X))return!0;return!1}return!1}var QH=(Q,J={})=>(X)=>{let G=pX({...X,processors:J});return C0(Q,G),bX(G,Q),oX(G,Q)},QG=(Q,J,X={})=>(G)=>{let{libraryOptions:Y,target:q}=G??{},$=pX({...Y??{},target:q,io:J,processors:X});return C0(Q,$),bX($,Q),oX($,Q)},vF={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},JH=(Q,J,X,G)=>{let Y=X;Y.type="string";let{minimum:q,maximum:$,format:W,patterns:j,contentEncoding:K}=Q._zod.bag;if(typeof q==="number")Y.minLength=q;if(typeof $==="number")Y.maxLength=$;if(W){if(Y.format=vF[W]??W,Y.format==="")delete Y.format;if(W==="time")delete Y.format}if(K)Y.contentEncoding=K;if(j&&j.size>0){let z=[...j];if(z.length===1)Y.pattern=z[0].source;else if(z.length>1)Y.allOf=[...z.map((N)=>({...J.target==="draft-07"||J.target==="draft-04"||J.target==="openapi-3.0"?{type:"string"}:{},pattern:N.source}))]}},XH=(Q,J,X,G)=>{let Y=X,{minimum:q,maximum:$,format:W,multipleOf:j,exclusiveMaximum:K,exclusiveMinimum:z}=Q._zod.bag;if(typeof W==="string"&&W.includes("int"))Y.type="integer";else Y.type="number";if(typeof z==="number")if(J.target==="draft-04"||J.target==="openapi-3.0")Y.minimum=z,Y.exclusiveMinimum=!0;else Y.exclusiveMinimum=z;if(typeof q==="number"){if(Y.minimum=q,typeof z==="number"&&J.target!=="draft-04")if(z>=q)delete Y.minimum;else delete Y.exclusiveMinimum}if(typeof K==="number")if(J.target==="draft-04"||J.target==="openapi-3.0")Y.maximum=K,Y.exclusiveMaximum=!0;else Y.exclusiveMaximum=K;if(typeof $==="number"){if(Y.maximum=$,typeof K==="number"&&J.target!=="draft-04")if(K<=$)delete Y.maximum;else delete Y.exclusiveMaximum}if(typeof j==="number")Y.multipleOf=j},YH=(Q,J,X,G)=>{X.type="boolean"},GH=(Q,J,X,G)=>{if(J.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema")},qH=(Q,J,X,G)=>{if(J.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema")},$H=(Q,J,X,G)=>{if(J.target==="openapi-3.0")X.type="string",X.nullable=!0,X.enum=[null];else X.type="null"},WH=(Q,J,X,G)=>{if(J.unrepresentable==="throw")throw Error("Undefined cannot be represented in JSON Schema")},jH=(Q,J,X,G)=>{if(J.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema")},KH=(Q,J,X,G)=>{X.not={}},zH=(Q,J,X,G)=>{},NH=(Q,J,X,G)=>{},UH=(Q,J,X,G)=>{if(J.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema")},MH=(Q,J,X,G)=>{let Y=Q._zod.def,q=Yj(Y.entries);if(q.every(($)=>typeof $==="number"))X.type="number";if(q.every(($)=>typeof $==="string"))X.type="string";X.enum=q},DH=(Q,J,X,G)=>{let Y=Q._zod.def,q=[];for(let $ of Y.values)if($===void 0){if(J.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof $==="bigint")if(J.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else q.push(Number($));else q.push($);if(q.length===0);else if(q.length===1){let $=q[0];if(X.type=$===null?"null":typeof $,J.target==="draft-04"||J.target==="openapi-3.0")X.enum=[$];else X.const=$}else{if(q.every(($)=>typeof $==="number"))X.type="number";if(q.every(($)=>typeof $==="string"))X.type="string";if(q.every(($)=>typeof $==="boolean"))X.type="boolean";if(q.every(($)=>$===null))X.type="null";X.enum=q}},OH=(Q,J,X,G)=>{if(J.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema")},BH=(Q,J,X,G)=>{let Y=X,q=Q._zod.pattern;if(!q)throw Error("Pattern not found in template literal");Y.type="string",Y.pattern=q.source},RH=(Q,J,X,G)=>{let Y=X,q={type:"string",format:"binary",contentEncoding:"binary"},{minimum:$,maximum:W,mime:j}=Q._zod.bag;if($!==void 0)q.minLength=$;if(W!==void 0)q.maxLength=W;if(j)if(j.length===1)q.contentMediaType=j[0],Object.assign(Y,q);else Object.assign(Y,q),Y.anyOf=j.map((K)=>({contentMediaType:K}));else Object.assign(Y,q)},HH=(Q,J,X,G)=>{X.type="boolean"},VH=(Q,J,X,G)=>{if(J.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema")},LH=(Q,J,X,G)=>{if(J.unrepresentable==="throw")throw Error("Function types cannot be represented in JSON Schema")},EH=(Q,J,X,G)=>{if(J.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema")},wH=(Q,J,X,G)=>{if(J.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema")},CH=(Q,J,X,G)=>{if(J.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema")},AH=(Q,J,X,G)=>{let Y=X,q=Q._zod.def,{minimum:$,maximum:W}=Q._zod.bag;if(typeof $==="number")Y.minItems=$;if(typeof W==="number")Y.maxItems=W;Y.type="array",Y.items=C0(q.element,J,{...G,path:[...G.path,"items"]})},IH=(Q,J,X,G)=>{let Y=X,q=Q._zod.def;Y.type="object",Y.properties={};let $=q.shape;for(let K in $)Y.properties[K]=C0($[K],J,{...G,path:[...G.path,"properties",K]});let W=new Set(Object.keys($)),j=new Set([...W].filter((K)=>{let z=q.shape[K]._zod;if(J.io==="input")return z.optin===void 0;else return z.optout===void 0}));if(j.size>0)Y.required=Array.from(j);if(q.catchall?._zod.def.type==="never")Y.additionalProperties=!1;else if(!q.catchall){if(J.io==="output")Y.additionalProperties=!1}else if(q.catchall)Y.additionalProperties=C0(q.catchall,J,{...G,path:[...G.path,"additionalProperties"]})},XK=(Q,J,X,G)=>{let Y=Q._zod.def,q=Y.inclusive===!1,$=Y.options.map((W,j)=>C0(W,J,{...G,path:[...G.path,q?"oneOf":"anyOf",j]}));if(q)X.oneOf=$;else X.anyOf=$},SH=(Q,J,X,G)=>{let Y=Q._zod.def,q=C0(Y.left,J,{...G,path:[...G.path,"allOf",0]}),$=C0(Y.right,J,{...G,path:[...G.path,"allOf",1]}),W=(K)=>("allOf"in K)&&Object.keys(K).length===1,j=[...W(q)?q.allOf:[q],...W($)?$.allOf:[$]];X.allOf=j},vH=(Q,J,X,G)=>{let Y=X,q=Q._zod.def;Y.type="array";let $=J.target==="draft-2020-12"?"prefixItems":"items",W=J.target==="draft-2020-12"?"items":J.target==="openapi-3.0"?"items":"additionalItems",j=q.items.map((U,M)=>C0(U,J,{...G,path:[...G.path,$,M]})),K=q.rest?C0(q.rest,J,{...G,path:[...G.path,W,...J.target==="openapi-3.0"?[q.items.length]:[]]}):null;if(J.target==="draft-2020-12"){if(Y.prefixItems=j,K)Y.items=K}else if(J.target==="openapi-3.0"){if(Y.items={anyOf:j},K)Y.items.anyOf.push(K);if(Y.minItems=j.length,!K)Y.maxItems=j.length}else if(Y.items=j,K)Y.additionalItems=K;let{minimum:z,maximum:N}=Q._zod.bag;if(typeof z==="number")Y.minItems=z;if(typeof N==="number")Y.maxItems=N},_H=(Q,J,X,G)=>{let Y=X,q=Q._zod.def;Y.type="object";let $=q.keyType,W=$._zod.bag?.patterns;if(q.mode==="loose"&&W&&W.size>0){let K=C0(q.valueType,J,{...G,path:[...G.path,"patternProperties","*"]});Y.patternProperties={};for(let z of W)Y.patternProperties[z.source]=K}else{if(J.target==="draft-07"||J.target==="draft-2020-12")Y.propertyNames=C0(q.keyType,J,{...G,path:[...G.path,"propertyNames"]});Y.additionalProperties=C0(q.valueType,J,{...G,path:[...G.path,"additionalProperties"]})}let j=$._zod.values;if(j){let K=[...j].filter((z)=>typeof z==="string"||typeof z==="number");if(K.length>0)Y.required=K}},FH=(Q,J,X,G)=>{let Y=Q._zod.def,q=C0(Y.innerType,J,G),$=J.seen.get(Q);if(J.target==="openapi-3.0")$.ref=Y.innerType,X.nullable=!0;else X.anyOf=[q,{type:"null"}]},PH=(Q,J,X,G)=>{let Y=Q._zod.def;C0(Y.innerType,J,G);let q=J.seen.get(Q);q.ref=Y.innerType},kH=(Q,J,X,G)=>{let Y=Q._zod.def;C0(Y.innerType,J,G);let q=J.seen.get(Q);q.ref=Y.innerType,X.default=JSON.parse(JSON.stringify(Y.defaultValue))},ZH=(Q,J,X,G)=>{let Y=Q._zod.def;C0(Y.innerType,J,G);let q=J.seen.get(Q);if(q.ref=Y.innerType,J.io==="input")X._prefault=JSON.parse(JSON.stringify(Y.defaultValue))},TH=(Q,J,X,G)=>{let Y=Q._zod.def;C0(Y.innerType,J,G);let q=J.seen.get(Q);q.ref=Y.innerType;let $;try{$=Y.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}X.default=$},xH=(Q,J,X,G)=>{let Y=Q._zod.def,q=J.io==="input"?Y.in._zod.def.type==="transform"?Y.out:Y.in:Y.out;C0(q,J,G);let $=J.seen.get(Q);$.ref=q},gH=(Q,J,X,G)=>{let Y=Q._zod.def;C0(Y.innerType,J,G);let q=J.seen.get(Q);q.ref=Y.innerType,X.readOnly=!0},fH=(Q,J,X,G)=>{let Y=Q._zod.def;C0(Y.innerType,J,G);let q=J.seen.get(Q);q.ref=Y.innerType},YK=(Q,J,X,G)=>{let Y=Q._zod.def;C0(Y.innerType,J,G);let q=J.seen.get(Q);q.ref=Y.innerType},hH=(Q,J,X,G)=>{let Y=Q._zod.innerType;C0(Y,J,G);let q=J.seen.get(Q);q.ref=Y},dW={string:JH,number:XH,boolean:YH,bigint:GH,symbol:qH,null:$H,undefined:WH,void:jH,never:KH,any:zH,unknown:NH,date:UH,enum:MH,literal:DH,nan:OH,template_literal:BH,file:RH,success:HH,custom:VH,function:LH,transform:EH,map:wH,set:CH,array:AH,object:IH,union:XK,intersection:SH,tuple:vH,record:_H,nullable:FH,nonoptional:PH,default:kH,prefault:ZH,catch:TH,pipe:xH,readonly:gH,promise:fH,optional:YK,lazy:hH};function mH(Q,J){if("_idmap"in Q){let G=Q,Y=pX({...J,processors:dW}),q={};for(let j of G._idmap.entries()){let[K,z]=j;C0(z,Y)}let $={},W={registry:G,uri:J?.uri,defs:q};Y.external=W;for(let j of G._idmap.entries()){let[K,z]=j;bX(Y,z),$[K]=oX(Y,z)}if(Object.keys(q).length>0){let j=Y.target==="draft-2020-12"?"$defs":"definitions";$.__shared={[j]:q}}return{schemas:$}}let X=pX({...J,processors:dW});return C0(Q,X),bX(X,Q),oX(X,Q)}class yH{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(Q){this.ctx.counter=Q}get seen(){return this.ctx.seen}constructor(Q){let J=Q?.target??"draft-2020-12";if(J==="draft-4")J="draft-04";if(J==="draft-7")J="draft-07";this.ctx=pX({processors:dW,target:J,...Q?.metadata&&{metadata:Q.metadata},...Q?.unrepresentable&&{unrepresentable:Q.unrepresentable},...Q?.override&&{override:Q.override},...Q?.io&&{io:Q.io}})}process(Q,J={path:[],schemaPath:[]}){return C0(Q,this.ctx,J)}emit(Q,J){if(J){if(J.cycles)this.ctx.cycles=J.cycles;if(J.reused)this.ctx.reused=J.reused;if(J.external)this.ctx.external=J.external}bX(this.ctx,Q);let X=oX(this.ctx,Q),{"~standard":G,...Y}=X;return Y}}var _F={},lH={};QQ(lH,{xor:()=>iV,xid:()=>HV,void:()=>pV,uuidv7:()=>zV,uuidv6:()=>KV,uuidv4:()=>jV,uuid:()=>WV,url:()=>NV,unknown:()=>QX,union:()=>U9,undefined:()=>uV,ulid:()=>RV,uint64:()=>yV,uint32:()=>fV,tuple:()=>SK,transform:()=>D9,templateLiteral:()=>jL,symbol:()=>lV,superRefine:()=>eK,success:()=>qL,stringbool:()=>OL,stringFormat:()=>FV,string:()=>z$,strictObject:()=>rV,set:()=>QL,refine:()=>aK,record:()=>vK,readonly:()=>dK,promise:()=>KL,preprocess:()=>RL,prefault:()=>yK,pipe:()=>GG,partialRecord:()=>nV,optional:()=>XG,object:()=>dV,number:()=>zK,nullish:()=>GL,nullable:()=>YG,null:()=>OK,nonoptional:()=>lK,never:()=>z9,nativeEnum:()=>JL,nanoid:()=>DV,nan:()=>$L,meta:()=>ML,map:()=>eV,mac:()=>EV,looseRecord:()=>aV,looseObject:()=>sV,literal:()=>XL,lazy:()=>iK,ksuid:()=>VV,keyof:()=>oV,jwt:()=>_V,json:()=>BL,ipv6:()=>wV,ipv4:()=>LV,intersection:()=>AK,int64:()=>mV,int32:()=>gV,int:()=>N$,instanceof:()=>DL,httpUrl:()=>UV,hostname:()=>PV,hex:()=>kV,hash:()=>ZV,guid:()=>$V,function:()=>U$,float64:()=>xV,float32:()=>TV,file:()=>YL,exactOptional:()=>xK,enum:()=>M9,emoji:()=>MV,email:()=>qV,e164:()=>vV,discriminatedUnion:()=>tV,describe:()=>UL,date:()=>bV,custom:()=>NL,cuid2:()=>BV,cuid:()=>OV,codec:()=>WL,cidrv6:()=>AV,cidrv4:()=>CV,check:()=>zL,catch:()=>pK,boolean:()=>NK,bigint:()=>hV,base64url:()=>SV,base64:()=>IV,array:()=>uG,any:()=>cV,_function:()=>U$,_default:()=>hK,_ZodString:()=>d$,ZodXor:()=>EK,ZodXID:()=>e$,ZodVoid:()=>VK,ZodUnknown:()=>RK,ZodUnion:()=>pG,ZodUndefined:()=>MK,ZodUUID:()=>DQ,ZodURL:()=>hG,ZodULID:()=>a$,ZodType:()=>q0,ZodTuple:()=>IK,ZodTransform:()=>ZK,ZodTemplateLiteral:()=>rK,ZodSymbol:()=>UK,ZodSuccess:()=>uK,ZodStringFormat:()=>S0,ZodString:()=>fG,ZodSet:()=>FK,ZodRecord:()=>bG,ZodReadonly:()=>oK,ZodPromise:()=>tK,ZodPrefault:()=>mK,ZodPipe:()=>R9,ZodOptional:()=>O9,ZodObject:()=>cG,ZodNumberFormat:()=>KX,ZodNumber:()=>mG,ZodNullable:()=>gK,ZodNull:()=>DK,ZodNonOptional:()=>B9,ZodNever:()=>HK,ZodNanoID:()=>i$,ZodNaN:()=>bK,ZodMap:()=>_K,ZodMAC:()=>KK,ZodLiteral:()=>PK,ZodLazy:()=>sK,ZodKSUID:()=>Q9,ZodJWT:()=>j9,ZodIntersection:()=>CK,ZodIPv6:()=>X9,ZodIPv4:()=>J9,ZodGUID:()=>JG,ZodFunction:()=>nK,ZodFile:()=>kK,ZodExactOptional:()=>TK,ZodEnum:()=>dX,ZodEmoji:()=>s$,ZodEmail:()=>r$,ZodE164:()=>W9,ZodDiscriminatedUnion:()=>wK,ZodDefault:()=>fK,ZodDate:()=>N9,ZodCustomStringFormat:()=>WY,ZodCustom:()=>oG,ZodCodec:()=>H9,ZodCatch:()=>cK,ZodCUID2:()=>n$,ZodCUID:()=>t$,ZodCIDRv6:()=>G9,ZodCIDRv4:()=>Y9,ZodBoolean:()=>yG,ZodBigIntFormat:()=>K9,ZodBigInt:()=>lG,ZodBase64URL:()=>$9,ZodBase64:()=>q9,ZodArray:()=>LK,ZodAny:()=>BK});var uH={};QQ(uH,{uppercase:()=>f$,trim:()=>c$,toUpperCase:()=>b$,toLowerCase:()=>p$,startsWith:()=>m$,slugify:()=>o$,size:()=>ZG,regex:()=>x$,property:()=>JK,positive:()=>nj,overwrite:()=>dQ,normalize:()=>u$,nonpositive:()=>ej,nonnegative:()=>QK,negative:()=>aj,multipleOf:()=>cX,minSize:()=>BJ,minLength:()=>eJ,mime:()=>l$,maxSize:()=>$Y,maxLength:()=>TG,lte:()=>u8,lt:()=>DJ,lowercase:()=>g$,length:()=>xG,includes:()=>h$,gte:()=>w8,gt:()=>OJ,endsWith:()=>y$});var GK={};QQ(GK,{time:()=>bH,duration:()=>oH,datetime:()=>cH,date:()=>pH,ZodISOTime:()=>WK,ZodISODuration:()=>jK,ZodISODateTime:()=>qK,ZodISODate:()=>$K});var qK=V("ZodISODateTime",(Q,J)=>{WB.init(Q,J),S0.init(Q,J)});function cH(Q){return HR(qK,Q)}var $K=V("ZodISODate",(Q,J)=>{jB.init(Q,J),S0.init(Q,J)});function pH(Q){return VR($K,Q)}var WK=V("ZodISOTime",(Q,J)=>{KB.init(Q,J),S0.init(Q,J)});function bH(Q){return LR(WK,Q)}var jK=V("ZodISODuration",(Q,J)=>{zB.init(Q,J),S0.init(Q,J)});function oH(Q){return ER(jK,Q)}var dH=(Q,J)=>{qj.init(Q,J),Q.name="ZodError",Object.defineProperties(Q,{format:{value:(X)=>Wj(Q,X)},flatten:{value:(X)=>$j(Q,X)},addIssue:{value:(X)=>{Q.issues.push(X),Q.message=JSON.stringify(Q.issues,q$,2)}},addIssues:{value:(X)=>{Q.issues.push(...X),Q.message=JSON.stringify(Q.issues,q$,2)}},isEmpty:{get(){return Q.issues.length===0}}})},FF=V("ZodError",dH),x8=V("ZodError",dH,{Parent:Error}),rH=AG(x8),sH=IG(x8),iH=SG(x8),tH=vG(x8),nH=jj(x8),aH=Kj(x8),eH=zj(x8),QV=Nj(x8),JV=Uj(x8),XV=Mj(x8),YV=Dj(x8),GV=Oj(x8),q0=V("ZodType",(Q,J)=>{return G0.init(Q,J),Object.assign(Q["~standard"],{jsonSchema:{input:QG(Q,"input"),output:QG(Q,"output")}}),Q.toJSONSchema=QH(Q,{}),Q.def=J,Q.type=J.type,Object.defineProperty(Q,"_def",{value:J}),Q.check=(...X)=>{return Q.clone(M0.mergeDefs(J,{checks:[...J.checks??[],...X.map((G)=>typeof G==="function"?{_zod:{check:G,def:{check:"custom"},onattach:[]}}:G)]}),{parent:!0})},Q.with=Q.check,Q.clone=(X,G)=>b8(Q,X,G),Q.brand=()=>Q,Q.register=(X,G)=>{return X.add(Q,G),Q},Q.parse=(X,G)=>rH(Q,X,G,{callee:Q.parse}),Q.safeParse=(X,G)=>iH(Q,X,G),Q.parseAsync=async(X,G)=>sH(Q,X,G,{callee:Q.parseAsync}),Q.safeParseAsync=async(X,G)=>tH(Q,X,G),Q.spa=Q.safeParseAsync,Q.encode=(X,G)=>nH(Q,X,G),Q.decode=(X,G)=>aH(Q,X,G),Q.encodeAsync=async(X,G)=>eH(Q,X,G),Q.decodeAsync=async(X,G)=>QV(Q,X,G),Q.safeEncode=(X,G)=>JV(Q,X,G),Q.safeDecode=(X,G)=>XV(Q,X,G),Q.safeEncodeAsync=async(X,G)=>YV(Q,X,G),Q.safeDecodeAsync=async(X,G)=>GV(Q,X,G),Q.refine=(X,G)=>Q.check(aK(X,G)),Q.superRefine=(X)=>Q.check(eK(X)),Q.overwrite=(X)=>Q.check(dQ(X)),Q.optional=()=>XG(Q),Q.exactOptional=()=>xK(Q),Q.nullable=()=>YG(Q),Q.nullish=()=>XG(YG(Q)),Q.nonoptional=(X)=>lK(Q,X),Q.array=()=>uG(Q),Q.or=(X)=>U9([Q,X]),Q.and=(X)=>AK(Q,X),Q.transform=(X)=>GG(Q,D9(X)),Q.default=(X)=>hK(Q,X),Q.prefault=(X)=>yK(Q,X),Q.catch=(X)=>pK(Q,X),Q.pipe=(X)=>GG(Q,X),Q.readonly=()=>dK(Q),Q.describe=(X)=>{let G=Q.clone();return l8.add(G,{description:X}),G},Object.defineProperty(Q,"description",{get(){return l8.get(Q)?.description},configurable:!0}),Q.meta=(...X)=>{if(X.length===0)return l8.get(Q);let G=Q.clone();return l8.add(G,X[0]),G},Q.isOptional=()=>Q.safeParse(void 0).success,Q.isNullable=()=>Q.safeParse(null).success,Q.apply=(X)=>X(Q),Q}),d$=V("_ZodString",(Q,J)=>{kG.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(G,Y,q)=>JH(Q,G,Y,q);let X=Q._zod.bag;Q.format=X.format??null,Q.minLength=X.minimum??null,Q.maxLength=X.maximum??null,Q.regex=(...G)=>Q.check(x$(...G)),Q.includes=(...G)=>Q.check(h$(...G)),Q.startsWith=(...G)=>Q.check(m$(...G)),Q.endsWith=(...G)=>Q.check(y$(...G)),Q.min=(...G)=>Q.check(eJ(...G)),Q.max=(...G)=>Q.check(TG(...G)),Q.length=(...G)=>Q.check(xG(...G)),Q.nonempty=(...G)=>Q.check(eJ(1,...G)),Q.lowercase=(G)=>Q.check(g$(G)),Q.uppercase=(G)=>Q.check(f$(G)),Q.trim=()=>Q.check(c$()),Q.normalize=(...G)=>Q.check(u$(...G)),Q.toLowerCase=()=>Q.check(p$()),Q.toUpperCase=()=>Q.check(b$()),Q.slugify=()=>Q.check(o$())}),fG=V("ZodString",(Q,J)=>{kG.init(Q,J),d$.init(Q,J),Q.email=(X)=>Q.check(kj(r$,X)),Q.url=(X)=>Q.check(T$(hG,X)),Q.jwt=(X)=>Q.check(tj(j9,X)),Q.emoji=(X)=>Q.check(fj(s$,X)),Q.guid=(X)=>Q.check(K$(JG,X)),Q.uuid=(X)=>Q.check(Zj(DQ,X)),Q.uuidv4=(X)=>Q.check(Tj(DQ,X)),Q.uuidv6=(X)=>Q.check(xj(DQ,X)),Q.uuidv7=(X)=>Q.check(gj(DQ,X)),Q.nanoid=(X)=>Q.check(hj(i$,X)),Q.guid=(X)=>Q.check(K$(JG,X)),Q.cuid=(X)=>Q.check(mj(t$,X)),Q.cuid2=(X)=>Q.check(yj(n$,X)),Q.ulid=(X)=>Q.check(lj(a$,X)),Q.base64=(X)=>Q.check(rj(q9,X)),Q.base64url=(X)=>Q.check(sj($9,X)),Q.xid=(X)=>Q.check(uj(e$,X)),Q.ksuid=(X)=>Q.check(cj(Q9,X)),Q.ipv4=(X)=>Q.check(pj(J9,X)),Q.ipv6=(X)=>Q.check(bj(X9,X)),Q.cidrv4=(X)=>Q.check(oj(Y9,X)),Q.cidrv6=(X)=>Q.check(dj(G9,X)),Q.e164=(X)=>Q.check(ij(W9,X)),Q.datetime=(X)=>Q.check(cH(X)),Q.date=(X)=>Q.check(pH(X)),Q.time=(X)=>Q.check(bH(X)),Q.duration=(X)=>Q.check(oH(X))});function z$(Q){return DR(fG,Q)}var S0=V("ZodStringFormat",(Q,J)=>{I0.init(Q,J),d$.init(Q,J)}),r$=V("ZodEmail",(Q,J)=>{aO.init(Q,J),S0.init(Q,J)});function qV(Q){return kj(r$,Q)}var JG=V("ZodGUID",(Q,J)=>{tO.init(Q,J),S0.init(Q,J)});function $V(Q){return K$(JG,Q)}var DQ=V("ZodUUID",(Q,J)=>{nO.init(Q,J),S0.init(Q,J)});function WV(Q){return Zj(DQ,Q)}function jV(Q){return Tj(DQ,Q)}function KV(Q){return xj(DQ,Q)}function zV(Q){return gj(DQ,Q)}var hG=V("ZodURL",(Q,J)=>{eO.init(Q,J),S0.init(Q,J)});function NV(Q){return T$(hG,Q)}function UV(Q){return T$(hG,{protocol:/^https?$/,hostname:jX.domain,...M0.normalizeParams(Q)})}var s$=V("ZodEmoji",(Q,J)=>{QB.init(Q,J),S0.init(Q,J)});function MV(Q){return fj(s$,Q)}var i$=V("ZodNanoID",(Q,J)=>{JB.init(Q,J),S0.init(Q,J)});function DV(Q){return hj(i$,Q)}var t$=V("ZodCUID",(Q,J)=>{XB.init(Q,J),S0.init(Q,J)});function OV(Q){return mj(t$,Q)}var n$=V("ZodCUID2",(Q,J)=>{YB.init(Q,J),S0.init(Q,J)});function BV(Q){return yj(n$,Q)}var a$=V("ZodULID",(Q,J)=>{GB.init(Q,J),S0.init(Q,J)});function RV(Q){return lj(a$,Q)}var e$=V("ZodXID",(Q,J)=>{qB.init(Q,J),S0.init(Q,J)});function HV(Q){return uj(e$,Q)}var Q9=V("ZodKSUID",(Q,J)=>{$B.init(Q,J),S0.init(Q,J)});function VV(Q){return cj(Q9,Q)}var J9=V("ZodIPv4",(Q,J)=>{NB.init(Q,J),S0.init(Q,J)});function LV(Q){return pj(J9,Q)}var KK=V("ZodMAC",(Q,J)=>{MB.init(Q,J),S0.init(Q,J)});function EV(Q){return BR(KK,Q)}var X9=V("ZodIPv6",(Q,J)=>{UB.init(Q,J),S0.init(Q,J)});function wV(Q){return bj(X9,Q)}var Y9=V("ZodCIDRv4",(Q,J)=>{DB.init(Q,J),S0.init(Q,J)});function CV(Q){return oj(Y9,Q)}var G9=V("ZodCIDRv6",(Q,J)=>{OB.init(Q,J),S0.init(Q,J)});function AV(Q){return dj(G9,Q)}var q9=V("ZodBase64",(Q,J)=>{BB.init(Q,J),S0.init(Q,J)});function IV(Q){return rj(q9,Q)}var $9=V("ZodBase64URL",(Q,J)=>{HB.init(Q,J),S0.init(Q,J)});function SV(Q){return sj($9,Q)}var W9=V("ZodE164",(Q,J)=>{VB.init(Q,J),S0.init(Q,J)});function vV(Q){return ij(W9,Q)}var j9=V("ZodJWT",(Q,J)=>{EB.init(Q,J),S0.init(Q,J)});function _V(Q){return tj(j9,Q)}var WY=V("ZodCustomStringFormat",(Q,J)=>{wB.init(Q,J),S0.init(Q,J)});function FV(Q,J,X={}){return gG(WY,Q,J,X)}function PV(Q){return gG(WY,"hostname",jX.hostname,Q)}function kV(Q){return gG(WY,"hex",jX.hex,Q)}function ZV(Q,J){let X=J?.enc??"hex",G=`${Q}_${X}`,Y=jX[G];if(!Y)throw Error(`Unrecognized hash format: ${G}`);return gG(WY,G,Y,J)}var mG=V("ZodNumber",(Q,J)=>{wj.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(G,Y,q)=>XH(Q,G,Y,q),Q.gt=(G,Y)=>Q.check(OJ(G,Y)),Q.gte=(G,Y)=>Q.check(w8(G,Y)),Q.min=(G,Y)=>Q.check(w8(G,Y)),Q.lt=(G,Y)=>Q.check(DJ(G,Y)),Q.lte=(G,Y)=>Q.check(u8(G,Y)),Q.max=(G,Y)=>Q.check(u8(G,Y)),Q.int=(G)=>Q.check(N$(G)),Q.safe=(G)=>Q.check(N$(G)),Q.positive=(G)=>Q.check(OJ(0,G)),Q.nonnegative=(G)=>Q.check(w8(0,G)),Q.negative=(G)=>Q.check(DJ(0,G)),Q.nonpositive=(G)=>Q.check(u8(0,G)),Q.multipleOf=(G,Y)=>Q.check(cX(G,Y)),Q.step=(G,Y)=>Q.check(cX(G,Y)),Q.finite=()=>Q;let X=Q._zod.bag;Q.minValue=Math.max(X.minimum??Number.NEGATIVE_INFINITY,X.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,Q.maxValue=Math.min(X.maximum??Number.POSITIVE_INFINITY,X.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,Q.isInt=(X.format??"").includes("int")||Number.isSafeInteger(X.multipleOf??0.5),Q.isFinite=!0,Q.format=X.format??null});function zK(Q){return wR(mG,Q)}var KX=V("ZodNumberFormat",(Q,J)=>{CB.init(Q,J),mG.init(Q,J)});function N$(Q){return AR(KX,Q)}function TV(Q){return IR(KX,Q)}function xV(Q){return SR(KX,Q)}function gV(Q){return vR(KX,Q)}function fV(Q){return _R(KX,Q)}var yG=V("ZodBoolean",(Q,J)=>{Cj.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>YH(Q,X,G,Y)});function NK(Q){return FR(yG,Q)}var lG=V("ZodBigInt",(Q,J)=>{Aj.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(G,Y,q)=>GH(Q,G,Y,q),Q.gte=(G,Y)=>Q.check(w8(G,Y)),Q.min=(G,Y)=>Q.check(w8(G,Y)),Q.gt=(G,Y)=>Q.check(OJ(G,Y)),Q.gte=(G,Y)=>Q.check(w8(G,Y)),Q.min=(G,Y)=>Q.check(w8(G,Y)),Q.lt=(G,Y)=>Q.check(DJ(G,Y)),Q.lte=(G,Y)=>Q.check(u8(G,Y)),Q.max=(G,Y)=>Q.check(u8(G,Y)),Q.positive=(G)=>Q.check(OJ(BigInt(0),G)),Q.negative=(G)=>Q.check(DJ(BigInt(0),G)),Q.nonpositive=(G)=>Q.check(u8(BigInt(0),G)),Q.nonnegative=(G)=>Q.check(w8(BigInt(0),G)),Q.multipleOf=(G,Y)=>Q.check(cX(G,Y));let X=Q._zod.bag;Q.minValue=X.minimum??null,Q.maxValue=X.maximum??null,Q.format=X.format??null});function hV(Q){return kR(lG,Q)}var K9=V("ZodBigIntFormat",(Q,J)=>{AB.init(Q,J),lG.init(Q,J)});function mV(Q){return TR(K9,Q)}function yV(Q){return xR(K9,Q)}var UK=V("ZodSymbol",(Q,J)=>{IB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>qH(Q,X,G,Y)});function lV(Q){return gR(UK,Q)}var MK=V("ZodUndefined",(Q,J)=>{SB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>WH(Q,X,G,Y)});function uV(Q){return fR(MK,Q)}var DK=V("ZodNull",(Q,J)=>{vB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>$H(Q,X,G,Y)});function OK(Q){return hR(DK,Q)}var BK=V("ZodAny",(Q,J)=>{_B.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>zH(Q,X,G,Y)});function cV(){return mR(BK)}var RK=V("ZodUnknown",(Q,J)=>{FB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>NH(Q,X,G,Y)});function QX(){return yR(RK)}var HK=V("ZodNever",(Q,J)=>{PB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>KH(Q,X,G,Y)});function z9(Q){return lR(HK,Q)}var VK=V("ZodVoid",(Q,J)=>{kB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>jH(Q,X,G,Y)});function pV(Q){return uR(VK,Q)}var N9=V("ZodDate",(Q,J)=>{ZB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(G,Y,q)=>UH(Q,G,Y,q),Q.min=(G,Y)=>Q.check(w8(G,Y)),Q.max=(G,Y)=>Q.check(u8(G,Y));let X=Q._zod.bag;Q.minDate=X.minimum?new Date(X.minimum):null,Q.maxDate=X.maximum?new Date(X.maximum):null});function bV(Q){return cR(N9,Q)}var LK=V("ZodArray",(Q,J)=>{TB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>AH(Q,X,G,Y),Q.element=J.element,Q.min=(X,G)=>Q.check(eJ(X,G)),Q.nonempty=(X)=>Q.check(eJ(1,X)),Q.max=(X,G)=>Q.check(TG(X,G)),Q.length=(X,G)=>Q.check(xG(X,G)),Q.unwrap=()=>Q.element});function uG(Q,J){return oR(LK,Q,J)}function oV(Q){let J=Q._zod.def.shape;return M9(Object.keys(J))}var cG=V("ZodObject",(Q,J)=>{hB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>IH(Q,X,G,Y),M0.defineLazy(Q,"shape",()=>{return J.shape}),Q.keyof=()=>M9(Object.keys(Q._zod.def.shape)),Q.catchall=(X)=>Q.clone({...Q._zod.def,catchall:X}),Q.passthrough=()=>Q.clone({...Q._zod.def,catchall:QX()}),Q.loose=()=>Q.clone({...Q._zod.def,catchall:QX()}),Q.strict=()=>Q.clone({...Q._zod.def,catchall:z9()}),Q.strip=()=>Q.clone({...Q._zod.def,catchall:void 0}),Q.extend=(X)=>{return M0.extend(Q,X)},Q.safeExtend=(X)=>{return M0.safeExtend(Q,X)},Q.merge=(X)=>M0.merge(Q,X),Q.pick=(X)=>M0.pick(Q,X),Q.omit=(X)=>M0.omit(Q,X),Q.partial=(...X)=>M0.partial(O9,Q,X[0]),Q.required=(...X)=>M0.required(B9,Q,X[0])});function dV(Q,J){let X={type:"object",shape:Q??{},...M0.normalizeParams(J)};return new cG(X)}function rV(Q,J){return new cG({type:"object",shape:Q,catchall:z9(),...M0.normalizeParams(J)})}function sV(Q,J){return new cG({type:"object",shape:Q,catchall:QX(),...M0.normalizeParams(J)})}var pG=V("ZodUnion",(Q,J)=>{Z$.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>XK(Q,X,G,Y),Q.options=J.options});function U9(Q,J){return new pG({type:"union",options:Q,...M0.normalizeParams(J)})}var EK=V("ZodXor",(Q,J)=>{pG.init(Q,J),mB.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>XK(Q,X,G,Y),Q.options=J.options});function iV(Q,J){return new EK({type:"union",options:Q,inclusive:!1,...M0.normalizeParams(J)})}var wK=V("ZodDiscriminatedUnion",(Q,J)=>{pG.init(Q,J),yB.init(Q,J)});function tV(Q,J,X){return new wK({type:"union",options:J,discriminator:Q,...M0.normalizeParams(X)})}var CK=V("ZodIntersection",(Q,J)=>{lB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>SH(Q,X,G,Y)});function AK(Q,J){return new CK({type:"intersection",left:Q,right:J})}var IK=V("ZodTuple",(Q,J)=>{Ij.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>vH(Q,X,G,Y),Q.rest=(X)=>Q.clone({...Q._zod.def,rest:X})});function SK(Q,J,X){let G=J instanceof G0,Y=G?X:J;return new IK({type:"tuple",items:Q,rest:G?J:null,...M0.normalizeParams(Y)})}var bG=V("ZodRecord",(Q,J)=>{uB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>_H(Q,X,G,Y),Q.keyType=J.keyType,Q.valueType=J.valueType});function vK(Q,J,X){return new bG({type:"record",keyType:Q,valueType:J,...M0.normalizeParams(X)})}function nV(Q,J,X){let G=b8(Q);return G._zod.values=void 0,new bG({type:"record",keyType:G,valueType:J,...M0.normalizeParams(X)})}function aV(Q,J,X){return new bG({type:"record",keyType:Q,valueType:J,mode:"loose",...M0.normalizeParams(X)})}var _K=V("ZodMap",(Q,J)=>{cB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>wH(Q,X,G,Y),Q.keyType=J.keyType,Q.valueType=J.valueType,Q.min=(...X)=>Q.check(BJ(...X)),Q.nonempty=(X)=>Q.check(BJ(1,X)),Q.max=(...X)=>Q.check($Y(...X)),Q.size=(...X)=>Q.check(ZG(...X))});function eV(Q,J,X){return new _K({type:"map",keyType:Q,valueType:J,...M0.normalizeParams(X)})}var FK=V("ZodSet",(Q,J)=>{pB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>CH(Q,X,G,Y),Q.min=(...X)=>Q.check(BJ(...X)),Q.nonempty=(X)=>Q.check(BJ(1,X)),Q.max=(...X)=>Q.check($Y(...X)),Q.size=(...X)=>Q.check(ZG(...X))});function QL(Q,J){return new FK({type:"set",valueType:Q,...M0.normalizeParams(J)})}var dX=V("ZodEnum",(Q,J)=>{bB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(G,Y,q)=>MH(Q,G,Y,q),Q.enum=J.entries,Q.options=Object.values(J.entries);let X=new Set(Object.keys(J.entries));Q.extract=(G,Y)=>{let q={};for(let $ of G)if(X.has($))q[$]=J.entries[$];else throw Error(`Key ${$} not found in enum`);return new dX({...J,checks:[],...M0.normalizeParams(Y),entries:q})},Q.exclude=(G,Y)=>{let q={...J.entries};for(let $ of G)if(X.has($))delete q[$];else throw Error(`Key ${$} not found in enum`);return new dX({...J,checks:[],...M0.normalizeParams(Y),entries:q})}});function M9(Q,J){let X=Array.isArray(Q)?Object.fromEntries(Q.map((G)=>[G,G])):Q;return new dX({type:"enum",entries:X,...M0.normalizeParams(J)})}function JL(Q,J){return new dX({type:"enum",entries:Q,...M0.normalizeParams(J)})}var PK=V("ZodLiteral",(Q,J)=>{oB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>DH(Q,X,G,Y),Q.values=new Set(J.values),Object.defineProperty(Q,"value",{get(){if(J.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return J.values[0]}})});function XL(Q,J){return new PK({type:"literal",values:Array.isArray(Q)?Q:[Q],...M0.normalizeParams(J)})}var kK=V("ZodFile",(Q,J)=>{dB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>RH(Q,X,G,Y),Q.min=(X,G)=>Q.check(BJ(X,G)),Q.max=(X,G)=>Q.check($Y(X,G)),Q.mime=(X,G)=>Q.check(l$(Array.isArray(X)?X:[X],G))});function YL(Q){return dR(kK,Q)}var ZK=V("ZodTransform",(Q,J)=>{rB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>EH(Q,X,G,Y),Q._zod.parse=(X,G)=>{if(G.direction==="backward")throw new wG(Q.constructor.name);X.addIssue=(q)=>{if(typeof q==="string")X.issues.push(M0.issue(q,X.value,J));else{let $=q;if($.fatal)$.continue=!1;$.code??($.code="custom"),$.input??($.input=X.value),$.inst??($.inst=Q),X.issues.push(M0.issue($))}};let Y=J.transform(X.value,X);if(Y instanceof Promise)return Y.then((q)=>{return X.value=q,X});return X.value=Y,X}});function D9(Q){return new ZK({type:"transform",transform:Q})}var O9=V("ZodOptional",(Q,J)=>{Sj.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>YK(Q,X,G,Y),Q.unwrap=()=>Q._zod.def.innerType});function XG(Q){return new O9({type:"optional",innerType:Q})}var TK=V("ZodExactOptional",(Q,J)=>{sB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>YK(Q,X,G,Y),Q.unwrap=()=>Q._zod.def.innerType});function xK(Q){return new TK({type:"optional",innerType:Q})}var gK=V("ZodNullable",(Q,J)=>{iB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>FH(Q,X,G,Y),Q.unwrap=()=>Q._zod.def.innerType});function YG(Q){return new gK({type:"nullable",innerType:Q})}function GL(Q){return XG(YG(Q))}var fK=V("ZodDefault",(Q,J)=>{tB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>kH(Q,X,G,Y),Q.unwrap=()=>Q._zod.def.innerType,Q.removeDefault=Q.unwrap});function hK(Q,J){return new fK({type:"default",innerType:Q,get defaultValue(){return typeof J==="function"?J():M0.shallowClone(J)}})}var mK=V("ZodPrefault",(Q,J)=>{nB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>ZH(Q,X,G,Y),Q.unwrap=()=>Q._zod.def.innerType});function yK(Q,J){return new mK({type:"prefault",innerType:Q,get defaultValue(){return typeof J==="function"?J():M0.shallowClone(J)}})}var B9=V("ZodNonOptional",(Q,J)=>{aB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>PH(Q,X,G,Y),Q.unwrap=()=>Q._zod.def.innerType});function lK(Q,J){return new B9({type:"nonoptional",innerType:Q,...M0.normalizeParams(J)})}var uK=V("ZodSuccess",(Q,J)=>{eB.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>HH(Q,X,G,Y),Q.unwrap=()=>Q._zod.def.innerType});function qL(Q){return new uK({type:"success",innerType:Q})}var cK=V("ZodCatch",(Q,J)=>{QR.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>TH(Q,X,G,Y),Q.unwrap=()=>Q._zod.def.innerType,Q.removeCatch=Q.unwrap});function pK(Q,J){return new cK({type:"catch",innerType:Q,catchValue:typeof J==="function"?J:()=>J})}var bK=V("ZodNaN",(Q,J)=>{JR.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>OH(Q,X,G,Y)});function $L(Q){return bR(bK,Q)}var R9=V("ZodPipe",(Q,J)=>{XR.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>xH(Q,X,G,Y),Q.in=J.in,Q.out=J.out});function GG(Q,J){return new R9({type:"pipe",in:Q,out:J})}var H9=V("ZodCodec",(Q,J)=>{R9.init(Q,J),vj.init(Q,J)});function WL(Q,J,X){return new H9({type:"pipe",in:Q,out:J,transform:X.decode,reverseTransform:X.encode})}var oK=V("ZodReadonly",(Q,J)=>{YR.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>gH(Q,X,G,Y),Q.unwrap=()=>Q._zod.def.innerType});function dK(Q){return new oK({type:"readonly",innerType:Q})}var rK=V("ZodTemplateLiteral",(Q,J)=>{GR.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>BH(Q,X,G,Y)});function jL(Q,J){return new rK({type:"template_literal",parts:Q,...M0.normalizeParams(J)})}var sK=V("ZodLazy",(Q,J)=>{WR.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>hH(Q,X,G,Y),Q.unwrap=()=>Q._zod.def.getter()});function iK(Q){return new sK({type:"lazy",getter:Q})}var tK=V("ZodPromise",(Q,J)=>{$R.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>fH(Q,X,G,Y),Q.unwrap=()=>Q._zod.def.innerType});function KL(Q){return new tK({type:"promise",innerType:Q})}var nK=V("ZodFunction",(Q,J)=>{qR.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>LH(Q,X,G,Y)});function U$(Q){return new nK({type:"function",input:Array.isArray(Q?.input)?SK(Q?.input):Q?.input??uG(QX()),output:Q?.output??QX()})}var oG=V("ZodCustom",(Q,J)=>{jR.init(Q,J),q0.init(Q,J),Q._zod.processJSONSchema=(X,G,Y)=>VH(Q,X,G,Y)});function zL(Q){let J=new k0({check:"custom"});return J._zod.check=Q,J}function NL(Q,J){return rR(oG,Q??(()=>!0),J)}function aK(Q,J={}){return sR(oG,Q,J)}function eK(Q){return iR(Q)}var UL=nR,ML=aR;function DL(Q,J={}){let X=new oG({type:"custom",check:"custom",fn:(G)=>G instanceof Q,abort:!0,...M0.normalizeParams(J)});return X._zod.bag.Class=Q,X._zod.check=(G)=>{if(!(G.value instanceof Q))G.issues.push({code:"invalid_type",expected:Q.name,input:G.value,inst:X,path:[...X._zod.def.path??[]]})},X}var OL=(...Q)=>eR({Codec:H9,Boolean:yG,String:fG},...Q);function BL(Q){let J=iK(()=>{return U9([z$(Q),zK(),NK(),OK(),uG(J),vK(z$(),J)])});return J}function RL(Q,J){return GG(D9(Q),J)}var PF={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function kF(Q){$8({customError:Q})}function ZF(){return $8().customError}var rW;(function(Q){})(rW||(rW={}));var y={...lH,...uH,iso:GK},TF=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function xF(Q,J){let X=Q.$schema;if(X==="https://json-schema.org/draft/2020-12/schema")return"draft-2020-12";if(X==="http://json-schema.org/draft-07/schema#")return"draft-7";if(X==="http://json-schema.org/draft-04/schema#")return"draft-4";return J??"draft-2020-12"}function gF(Q,J){if(!Q.startsWith("#"))throw Error("External $ref is not supported, only local refs (#/...) are allowed");let X=Q.slice(1).split("/").filter(Boolean);if(X.length===0)return J.rootSchema;let G=J.version==="draft-2020-12"?"$defs":"definitions";if(X[0]===G){let Y=X[1];if(!Y||!J.defs[Y])throw Error(`Reference not found: ${Q}`);return J.defs[Y]}throw Error(`Reference not found: ${Q}`)}function HL(Q,J){if(Q.not!==void 0){if(typeof Q.not==="object"&&Object.keys(Q.not).length===0)return y.never();throw Error("not is not supported in Zod (except { not: {} } for never)")}if(Q.unevaluatedItems!==void 0)throw Error("unevaluatedItems is not supported");if(Q.unevaluatedProperties!==void 0)throw Error("unevaluatedProperties is not supported");if(Q.if!==void 0||Q.then!==void 0||Q.else!==void 0)throw Error("Conditional schemas (if/then/else) are not supported");if(Q.dependentSchemas!==void 0||Q.dependentRequired!==void 0)throw Error("dependentSchemas and dependentRequired are not supported");if(Q.$ref){let Y=Q.$ref;if(J.refs.has(Y))return J.refs.get(Y);if(J.processing.has(Y))return y.lazy(()=>{if(!J.refs.has(Y))throw Error(`Circular reference not resolved: ${Y}`);return J.refs.get(Y)});J.processing.add(Y);let q=gF(Y,J),$=G8(q,J);return J.refs.set(Y,$),J.processing.delete(Y),$}if(Q.enum!==void 0){let Y=Q.enum;if(J.version==="openapi-3.0"&&Q.nullable===!0&&Y.length===1&&Y[0]===null)return y.null();if(Y.length===0)return y.never();if(Y.length===1)return y.literal(Y[0]);if(Y.every(($)=>typeof $==="string"))return y.enum(Y);let q=Y.map(($)=>y.literal($));if(q.length<2)return q[0];return y.union([q[0],q[1],...q.slice(2)])}if(Q.const!==void 0)return y.literal(Q.const);let X=Q.type;if(Array.isArray(X)){let Y=X.map((q)=>{let $={...Q,type:q};return HL($,J)});if(Y.length===0)return y.never();if(Y.length===1)return Y[0];return y.union(Y)}if(!X)return y.any();let G;switch(X){case"string":{let Y=y.string();if(Q.format){let q=Q.format;if(q==="email")Y=Y.check(y.email());else if(q==="uri"||q==="uri-reference")Y=Y.check(y.url());else if(q==="uuid"||q==="guid")Y=Y.check(y.uuid());else if(q==="date-time")Y=Y.check(y.iso.datetime());else if(q==="date")Y=Y.check(y.iso.date());else if(q==="time")Y=Y.check(y.iso.time());else if(q==="duration")Y=Y.check(y.iso.duration());else if(q==="ipv4")Y=Y.check(y.ipv4());else if(q==="ipv6")Y=Y.check(y.ipv6());else if(q==="mac")Y=Y.check(y.mac());else if(q==="cidr")Y=Y.check(y.cidrv4());else if(q==="cidr-v6")Y=Y.check(y.cidrv6());else if(q==="base64")Y=Y.check(y.base64());else if(q==="base64url")Y=Y.check(y.base64url());else if(q==="e164")Y=Y.check(y.e164());else if(q==="jwt")Y=Y.check(y.jwt());else if(q==="emoji")Y=Y.check(y.emoji());else if(q==="nanoid")Y=Y.check(y.nanoid());else if(q==="cuid")Y=Y.check(y.cuid());else if(q==="cuid2")Y=Y.check(y.cuid2());else if(q==="ulid")Y=Y.check(y.ulid());else if(q==="xid")Y=Y.check(y.xid());else if(q==="ksuid")Y=Y.check(y.ksuid())}if(typeof Q.minLength==="number")Y=Y.min(Q.minLength);if(typeof Q.maxLength==="number")Y=Y.max(Q.maxLength);if(Q.pattern)Y=Y.regex(new RegExp(Q.pattern));G=Y;break}case"number":case"integer":{let Y=X==="integer"?y.number().int():y.number();if(typeof Q.minimum==="number")Y=Y.min(Q.minimum);if(typeof Q.maximum==="number")Y=Y.max(Q.maximum);if(typeof Q.exclusiveMinimum==="number")Y=Y.gt(Q.exclusiveMinimum);else if(Q.exclusiveMinimum===!0&&typeof Q.minimum==="number")Y=Y.gt(Q.minimum);if(typeof Q.exclusiveMaximum==="number")Y=Y.lt(Q.exclusiveMaximum);else if(Q.exclusiveMaximum===!0&&typeof Q.maximum==="number")Y=Y.lt(Q.maximum);if(typeof Q.multipleOf==="number")Y=Y.multipleOf(Q.multipleOf);G=Y;break}case"boolean":{G=y.boolean();break}case"null":{G=y.null();break}case"object":{let Y={},q=Q.properties||{},$=new Set(Q.required||[]);for(let[j,K]of Object.entries(q)){let z=G8(K,J);Y[j]=$.has(j)?z:z.optional()}if(Q.propertyNames){let j=G8(Q.propertyNames,J),K=Q.additionalProperties&&typeof Q.additionalProperties==="object"?G8(Q.additionalProperties,J):y.any();if(Object.keys(Y).length===0){G=y.record(j,K);break}let z=y.object(Y).passthrough(),N=y.looseRecord(j,K);G=y.intersection(z,N);break}if(Q.patternProperties){let j=Q.patternProperties,K=Object.keys(j),z=[];for(let U of K){let M=G8(j[U],J),D=y.string().regex(new RegExp(U));z.push(y.looseRecord(D,M))}let N=[];if(Object.keys(Y).length>0)N.push(y.object(Y).passthrough());if(N.push(...z),N.length===0)G=y.object({}).passthrough();else if(N.length===1)G=N[0];else{let U=y.intersection(N[0],N[1]);for(let M=2;M<N.length;M++)U=y.intersection(U,N[M]);G=U}break}let W=y.object(Y);if(Q.additionalProperties===!1)G=W.strict();else if(typeof Q.additionalProperties==="object")G=W.catchall(G8(Q.additionalProperties,J));else G=W.passthrough();break}case"array":{let{prefixItems:Y,items:q}=Q;if(Y&&Array.isArray(Y)){let $=Y.map((j)=>G8(j,J)),W=q&&typeof q==="object"&&!Array.isArray(q)?G8(q,J):void 0;if(W)G=y.tuple($).rest(W);else G=y.tuple($);if(typeof Q.minItems==="number")G=G.check(y.minLength(Q.minItems));if(typeof Q.maxItems==="number")G=G.check(y.maxLength(Q.maxItems))}else if(Array.isArray(q)){let $=q.map((j)=>G8(j,J)),W=Q.additionalItems&&typeof Q.additionalItems==="object"?G8(Q.additionalItems,J):void 0;if(W)G=y.tuple($).rest(W);else G=y.tuple($);if(typeof Q.minItems==="number")G=G.check(y.minLength(Q.minItems));if(typeof Q.maxItems==="number")G=G.check(y.maxLength(Q.maxItems))}else if(q!==void 0){let $=G8(q,J),W=y.array($);if(typeof Q.minItems==="number")W=W.min(Q.minItems);if(typeof Q.maxItems==="number")W=W.max(Q.maxItems);G=W}else G=y.array(y.any());break}default:throw Error(`Unsupported type: ${X}`)}if(Q.description)G=G.describe(Q.description);if(Q.default!==void 0)G=G.default(Q.default);return G}function G8(Q,J){if(typeof Q==="boolean")return Q?y.any():y.never();let X=HL(Q,J),G=Q.type||Q.enum!==void 0||Q.const!==void 0;if(Q.anyOf&&Array.isArray(Q.anyOf)){let W=Q.anyOf.map((K)=>G8(K,J)),j=y.union(W);X=G?y.intersection(X,j):j}if(Q.oneOf&&Array.isArray(Q.oneOf)){let W=Q.oneOf.map((K)=>G8(K,J)),j=y.xor(W);X=G?y.intersection(X,j):j}if(Q.allOf&&Array.isArray(Q.allOf))if(Q.allOf.length===0)X=G?X:y.any();else{let W=G?X:G8(Q.allOf[0],J),j=G?0:1;for(let K=j;K<Q.allOf.length;K++)W=y.intersection(W,G8(Q.allOf[K],J));X=W}if(Q.nullable===!0&&J.version==="openapi-3.0")X=y.nullable(X);if(Q.readOnly===!0)X=y.readonly(X);let Y={},q=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(let W of q)if(W in Q)Y[W]=Q[W];let $=["contentEncoding","contentMediaType","contentSchema"];for(let W of $)if(W in Q)Y[W]=Q[W];for(let W of Object.keys(Q))if(!TF.has(W))Y[W]=Q[W];if(Object.keys(Y).length>0)J.registry.add(X,Y);return X}function fF(Q,J){if(typeof Q==="boolean")return Q?y.any():y.never();let X=xF(Q,J?.defaultTarget),G=Q.$defs||Q.definitions||{},Y={version:X,defs:G,refs:new Map,processing:new Set,rootSchema:Q,registry:J?.registry??l8};return G8(Q,Y)}var VL={};QQ(VL,{string:()=>hF,number:()=>mF,date:()=>uF,boolean:()=>yF,bigint:()=>lF});function hF(Q){return OR(fG,Q)}function mF(Q){return CR(mG,Q)}function yF(Q){return PR(yG,Q)}function lF(Q){return ZR(lG,Q)}function uF(Q){return pR(N9,Q)}$8(KR());var vX=L,r=L.string().regex(/^0x[a-fA-F0-9]+$/),jY=L.object({from:r,to_address:r,to_identity:L.string(),token:r,amount:L.bigint(),priorityFee:L.bigint().optional(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),isAsyncExec:L.boolean(),signature:L.string()}),vg=L.object({from:r,toData:L.array(L.object({amount:L.bigint(),to_address:r,to_identity:L.string()})),token:r,amount:L.bigint(),priorityFee:L.bigint().optional(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),isAsyncExec:L.boolean(),signature:L.string()}),_g=L.object({user:r,tokenA:r,tokenB:r,amountA:L.bigint(),amountB:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint(),signaturePay:L.string()}),Fg=L.object({user:r,tokenA:r,tokenB:r,orderId:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),cF=L.object({user:r,tokenA:r,tokenB:r,orderId:L.bigint(),amountOfTokenBToFill:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint(),signaturePay:L.string()}),Pg=cF.extend({maxFillFixedFee:L.bigint()}),kg=L.object({user:r,username:L.string(),offerID:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Zg=L.object({user:r,identity:L.string(),value:L.string(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Tg=L.object({user:r,identity:L.string(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),xg=L.object({user:r,username:L.string(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),gg=L.object({user:r,username:L.string(),amount:L.bigint(),expirationDate:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),fg=L.object({user:r,hashPreRegisteredUsername:L.string(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),hg=L.object({user:r,username:L.string(),lockNumber:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),mg=L.object({user:r,identity:L.string(),key:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),yg=L.object({user:r,username:L.string(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),lg=L.object({user:r,username:L.string(),offerID:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),ug=L.object({user:r,isStaking:L.boolean(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),cg=L.object({user:r,isStaking:L.boolean(),amountOfStaking:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),pg=L.object({isStaking:L.boolean(),amountOfStaking:L.bigint(),signaturePay:L.string().optional()}),LL=L.enum(["pure","view","nonpayable","payable"]),rX=L.lazy(()=>L.object({name:L.string(),type:L.string(),internalType:L.string().optional(),components:L.array(rX).optional(),indexed:L.boolean().optional()})),pF=L.object({type:L.literal("function"),name:L.string(),inputs:L.array(rX),outputs:L.array(rX),stateMutability:LL}),bF=L.object({type:L.literal("event"),name:L.string(),inputs:L.array(rX),anonymous:L.boolean().optional()}),oF=L.object({type:L.literal("error"),name:L.string(),inputs:L.array(rX)}),dF=L.object({type:L.literal("constructor"),inputs:L.array(rX),stateMutability:LL}),EL=L.discriminatedUnion("type",[pF,bF,oF,dF]),bg=L.array(EL),K0="0x0000000000000000000000000000000000000000";qX();k5();class dG{address;abi;chainId;evvmId;signer;constructor({signer:Q,address:J,abi:X,evvmId:G,chainId:Y}){this.signer=Q,this.address=J,this.abi=X,this.chainId=Y,this.evvmId=G}async view(Q,J,X){let G=await this.signer.getChainId();if(this.chainId!=G)await this.signer.switchChain(this.chainId);return this.signer.readContract({functionName:Q,contractAddress:this.address,contractAbi:X?.abi||this.abi,args:J||[]})}getFunctionAbi(Q){let J=this.abi.find((X)=>X.type==="function"&&X.name===Q);if(!J)throw Error(`No function signature with name ${Q}`);return J}buildHashPayload(Q,J,X){let G=[...this.getFunctionAbi(Q).inputs];if(X?.customAbiParams)X.customAbiParams.forEach((z)=>{let N=G.findIndex((U)=>U.name==z.insertAfter);if(N==-1){console.warn("[WARN]: custom abi insertion couldn't find insertAfter abi");return}G.splice(N+1,0,{type:z.type,name:z.name})});let Y=G.filter((z)=>Object.prototype.hasOwnProperty.call(J,z.name)),q=Y.map((z)=>J[z.name]),$=/dispatchOrder/.test(Q)?"dispatchOrder":Q,W=[{type:"string"},...Y],j=[$,...q],K=qY(W,j);return P5(K)}buildMessageToSign(Q,J,X,G,Y,q){return`${Q.toString()},${J.toLowerCase()},${X},${G.toLowerCase()},${Y.toString()},${JSON.stringify(q)}`}async getEvvmID(){if(this.evvmId!==void 0)return this.evvmId;return this.evvmId=await this.view("getEvvmID",[],{abi:[{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"}]}),this.evvmId}}function i0(Q,J,X){let G=X.value;if(!G)throw Error(`@SignMethod decorator applied to undefined method ${J}`);return X.value=async function(...Y){return await G.apply(this,Y)},X}var KY=(Q)=>vX.object({functionName:vX.string(),functionAbi:EL,contractAddress:r,chainId:vX.number(),evvmId:vX.string(),data:Q,args:vX.array(vX.any())}).loose();class u0{service;evvmId;functionName;data;functionAbi;args;constructor(Q,J,X,G){this.service=Q,this.evvmId=J,this.functionName=X,this.data=G,this.functionAbi=this.service.getFunctionAbi(X),this.args=this.getArgs()}toJSON(){let Q=this.serializeData();return{chainId:this.service.chainId,evvmId:this.evvmId.toString(),functionName:this.functionName,functionAbi:this.functionAbi,contractAddress:this.service.address,data:Q,args:this.args}}getArgs(){let Q=[],J=this.serializeData();return this.functionAbi.inputs.forEach((X,G)=>{if(!X.name||X.name.length===0)throw Error(`ABI input at index ${G} for function ${this.functionName} has empty name`);if(!Object.prototype.hasOwnProperty.call(J,X.name))throw Error(`Missing data property '${X.name}' for function '${this.functionName}'`);Q[G]=J[X.name]}),Q}serializeData(){let Q=(J)=>{if(typeof J==="bigint")return J.toString();if(Array.isArray(J))return J.map((X)=>Q(X));if(J&&typeof J==="object")return Object.fromEntries(Object.entries(J).map(([X,G])=>[X,Q(G)]));return J};return Q(this.data)}}var rF={abi:[{type:"constructor",inputs:[{name:"_activator",type:"address",internalType:"address"},{name:"_coreAddress",type:"address",internalType:"address"},{name:"_addressStaking",type:"address",internalType:"address"},{name:"_admin",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptActivatorProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptAddressStakingProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptAdminProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptEvvmAddressProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelActivatorProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelAddressStakingProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelAdminProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelEvvmAddressProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getActivatorMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.AddressTypeProposal",components:[{name:"actual",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getActualEpochInFormat",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getActualEpochInUint",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getAddressStakingMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.AddressTypeProposal",components:[{name:"actual",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAdminMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.AddressTypeProposal",components:[{name:"actual",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getCoreAddressMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.AddressTypeProposal",components:[{name:"actual",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getEpochMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.EpochMetadata",components:[{name:"tokenPool",type:"address",internalType:"address"},{name:"totalPool",type:"uint256",internalType:"uint256"},{name:"totalStaked",type:"uint256",internalType:"uint256"},{name:"tFinal",type:"uint256",internalType:"uint256"},{name:"tStart",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"makeEstimation",inputs:[{name:"_user",type:"address",internalType:"address"}],outputs:[{name:"epochAnswer",type:"bytes32",internalType:"bytes32"},{name:"tokenAddress",type:"address",internalType:"address"},{name:"amountTotalToBeRewarded",type:"uint256",internalType:"uint256"},{name:"idToOverwrite",type:"uint256",internalType:"uint256"},{name:"timestampToOverwrite",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"notifyNewEpoch",inputs:[{name:"tokenPool",type:"address",internalType:"address"},{name:"totalPool",type:"uint256",internalType:"uint256"},{name:"totalStaked",type:"uint256",internalType:"uint256"},{name:"tStart",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setActivatorProposal",inputs:[{name:"_proposal",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setAddressStakingProposal",inputs:[{name:"_proposal",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setAdminProposal",inputs:[{name:"_proposal",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setEvvmAddressProposal",inputs:[{name:"_proposal",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"simulteEstimation",inputs:[{name:"_user",type:"address",internalType:"address"}],outputs:[{name:"epochAnswer",type:"bytes32",internalType:"bytes32"},{name:"tokenAddress",type:"address",internalType:"address"},{name:"amountTotalToBeRewarded",type:"uint256",internalType:"uint256"},{name:"idToOverwrite",type:"uint256",internalType:"uint256"},{name:"timestampToOverwrite",type:"uint256",internalType:"uint256"}],stateMutability:"view"}],bytecode:{object:"0x60803460c257601f610f5338819003918201601f19168301916001600160401b0383118484101760c65780849260809460405283398101031260c25760428160da565b90604d6020820160da565b60616060605b6040850160da565b930160da565b6003601155600580546001600160a01b03199081166001600160a01b039687161790915560088054821693861693909317909255600b8054831693851693909317909255600e805490911691909216179055604051610e6590816100ee8239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820360c25756fe60806040526004361015610011575f80fd5b5f3560e01c80630f9d8a70146107ab578063112c1d5a1461070f5780631fa75673146106b957806333a61fc3146106955780634cc05f461461065d57806355dbb311146106195780635637455a146105ef5780635b65a897146105995780635fd99c5914610510578063608bd0bf146104cc5780636e14f5591461047157806370b170da1461043957806379eb30f0146103e05780637aa84eae146103a85780637fa80f081461034f5780639da2bb11146102f4578063a9131e2314610287578063b1fc6a911461022c578063c1a53583146101d1578063c9ed28e9146101b4578063f7027207146101475763fd3607d01461010b575f80fd5b34610143575f366003190112610143576001600160a01b0360055416330361014357600680546001600160a01b03191690555f600755005b5f80fd5b3461014357602036600319011261014357610160610804565b6001600160a01b03600b541633036101435761017e6101b091610bef565b604080519586526001600160a01b039094166020860152928401919091526060830152608082015290819060a0820190565b0390f35b34610143575f366003190112610143576020601154604051908152f35b34610143575f366003190112610143576101e9610bd1565b506101b06040516101f9816108a5565b6001600160a01b03600e541681526001600160a01b03600f5416602082015260105460408201526040519182918261081a565b34610143575f36600319011261014357610244610bd1565b506101b0604051610254816108a5565b6001600160a01b036005541681526001600160a01b0360065416602082015260075460408201526040519182918261081a565b34610143576020366003190112610143576102a0610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b60095416176009556201518042018042116102e057600a55005b634e487b7160e01b5f52601160045260245ffd5b34610143575f3660031901126101435761030c610bd1565b506101b060405161031c816108a5565b6001600160a01b036008541681526001600160a01b03600954166020820152600a5460408201526040519182918261081a565b3461014357602036600319011261014357610368610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b600f541617600f556201518042018042116102e057601055005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600c80546001600160a01b03191690555f600d55005b34610143576020366003190112610143576103f9610804565b6001600160a01b03600554163303610143576001600160a01b03166001600160601b0360a01b60065416176006556201518042018042116102e057600755005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600980546001600160a01b03191690555f600a55005b34610143575f36600319011261014357610489610bd1565b506101b0604051610499816108a5565b6001600160a01b03600b541681526001600160a01b03600c54166020820152600d5460408201526040519182918261081a565b34610143575f3660031901126101435760075442106101435760068054600580546001600160a01b03199081166001600160a01b038416179091551690555f600755005b3461014357608036600319011261014357610529610804565b60243560443590606435926001600160a01b03600554163303610143578360806001600160a01b036040519361055e85610859565b169283815284602082015285604082015242606082015201526001600160601b0360a01b5f5416175f55600155600255426003556004555f80f35b34610143575f366003190112610143576001600160a01b03600e5416330361014357600d54421061014357600c8054600b80546001600160a01b03199081166001600160a01b038416179091551690555f600d55005b34610143575f3660031901126101435760115460011981019081116102e057602090604051908152f35b34610143575f36600319011261014357601054421061014357600f8054600e80546001600160a01b03199081166001600160a01b038416179091551690555f601055005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600f80546001600160a01b03191690555f601055005b34610143576020366003190112610143576101b061017e6106b4610804565b610981565b34610143575f366003190112610143576001600160a01b03600e5416330361014357600a5442106101435760098054600880546001600160a01b03199081166001600160a01b038416179091551690555f600a55005b34610143575f366003190112610143575f608060405161072e81610859565b828152826020820152826040820152826060820152015260a060405161075381610859565b6001600160a01b035f5416908181526001546020820190815260025460408301908152600354916060840192835260806004549401938452604051948552516020850152516040840152516060830152516080820152f35b34610143576020366003190112610143576107c4610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b600c541617600c556201518042018042116102e057600d55005b600435906001600160a01b038216820361014357565b91909160408060608301946001600160a01b0381511684526001600160a01b0360208201511660208501520151910152565b919082018092116102e057565b60a0810190811067ffffffffffffffff82111761087557604052565b634e487b7160e01b5f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761087557604052565b6060810190811067ffffffffffffffff82111761087557604052565b90601f8019910116810190811067ffffffffffffffff82111761087557604052565b604051906108f082610889565b5f6060838281528260208201528260408201520152565b908160809103126101435760606040519161092183610889565b8051835260208101516020840152604081015160408401520151606082015290565b919082039182116102e057565b818102929181159184041417156102e057565b811561096d570490565b634e487b7160e01b5f52601260045260245ffd5b905f915f915f905f925f60045491826109986108e3565b506001600160a01b03600b54169660405190637e17f55960e11b82526001600160a01b03841660048301526020826024818c5afa918215610b92575f92610b9d575b50929197905f9360035499601154915b838710610a54575b50505050505050670de0b6b3a7640000810290808204670de0b6b3a764000014901517156102e057610a3a610a4f91610a34670de0b6b3a76400009488610943565b90610963565b610a4960015460025490610963565b90610950565b049290565b60405163120a744b60e31b81526001600160a01b038716600482015260248101889052969a509495939492939192608083604481895afa928315610b92575f93610b62575b5060408301918c835111610b125784845114610af75781610ace575b5050516060919091015160018a019594939291906109ea565b97610ae9610aef92610ae4859b60609651610943565b610950565b9061084c565b96905f610ab5565b5050505050505050505093505050505f905f905f905f905f90565b9550955050916001915097949714610b56575b5081610b3b575b5050925f8080808080806109f2565b610b4e929591610ae4610ae99289610943565b925f80610b2c565b6060015191505f610b25565b610b8491935060803d8111610b8b575b610b7c81836108c1565b810190610907565b915f610a99565b503d610b72565b6040513d5f823e3d90fd5b9091506020813d602011610bc9575b81610bb9602093836108c1565b810103126101435751905f6109da565b3d9150610bac565b60405190610bde826108a5565b5f6040838281528260208201520152565b5f915f915f905f925f600454928390610c066108e3565b946001600160a01b03600b54169760405190637e17f55960e11b82526001600160a01b03841660048301526020826024818d5afa918215610b92575f92610dfb575b5091985f93916003549a601154905b828710610cd4575b50505050505050670de0b6b3a7640000820291808304670de0b6b3a764000014901517156102e057610ccf91610a34610c989288610943565b606060015494610cc4670de0b6b3a7640000610cbb60025495610a49878b610963565b04809997610943565b600155015190610943565b600255565b60405163120a744b60e31b81526001600160a01b038616600482015260248101889052969b509499509294919390929190608082604481885afa918215610b92575f92610ddb575b50819960018514610dd0575b60408301918d835111610d955784845114610d7a5781610d5c575b5050606090519101519160018b01959391949294610c57565b98610ae9610d7292610ae4859c60609651610943565b97905f610d43565b505f9e508e9d508d9c508c9b508b9a50505050505050505050565b955095505050505081969296610db5575b5050935f808080808080610c5f565b610dc8929391610ae4610ae9928a610943565b905f80610da6565b506060820151610d28565b610df491925060803d8111610b8b57610b7c81836108c1565b905f610d1c565b9091506020813d602011610e27575b81610e17602093836108c1565b810103126101435751905f610c48565b3d9150610e0a56fea2646970667358221220c735d624f83faa268abe1416ff68fae91ab044af7434d8859bd70c0fe6194e0d64736f6c63430008210033",sourceMap:"1271:15128:67:-:0;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;3258:1;3242:19;1271:15128;4296:9;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;4335:11;1271:15128;;;;;;;;;;;;;;4378:14;1271:15128;;;;;;;;;;;;;;4427:5;1271:15128;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1271:15128:67;;;;;;-1:-1:-1;1271:15128:67;;;;;-1:-1:-1;1271:15128:67;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;:::o",linkReferences:{}},deployedBytecode:{object:"0x60806040526004361015610011575f80fd5b5f3560e01c80630f9d8a70146107ab578063112c1d5a1461070f5780631fa75673146106b957806333a61fc3146106955780634cc05f461461065d57806355dbb311146106195780635637455a146105ef5780635b65a897146105995780635fd99c5914610510578063608bd0bf146104cc5780636e14f5591461047157806370b170da1461043957806379eb30f0146103e05780637aa84eae146103a85780637fa80f081461034f5780639da2bb11146102f4578063a9131e2314610287578063b1fc6a911461022c578063c1a53583146101d1578063c9ed28e9146101b4578063f7027207146101475763fd3607d01461010b575f80fd5b34610143575f366003190112610143576001600160a01b0360055416330361014357600680546001600160a01b03191690555f600755005b5f80fd5b3461014357602036600319011261014357610160610804565b6001600160a01b03600b541633036101435761017e6101b091610bef565b604080519586526001600160a01b039094166020860152928401919091526060830152608082015290819060a0820190565b0390f35b34610143575f366003190112610143576020601154604051908152f35b34610143575f366003190112610143576101e9610bd1565b506101b06040516101f9816108a5565b6001600160a01b03600e541681526001600160a01b03600f5416602082015260105460408201526040519182918261081a565b34610143575f36600319011261014357610244610bd1565b506101b0604051610254816108a5565b6001600160a01b036005541681526001600160a01b0360065416602082015260075460408201526040519182918261081a565b34610143576020366003190112610143576102a0610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b60095416176009556201518042018042116102e057600a55005b634e487b7160e01b5f52601160045260245ffd5b34610143575f3660031901126101435761030c610bd1565b506101b060405161031c816108a5565b6001600160a01b036008541681526001600160a01b03600954166020820152600a5460408201526040519182918261081a565b3461014357602036600319011261014357610368610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b600f541617600f556201518042018042116102e057601055005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600c80546001600160a01b03191690555f600d55005b34610143576020366003190112610143576103f9610804565b6001600160a01b03600554163303610143576001600160a01b03166001600160601b0360a01b60065416176006556201518042018042116102e057600755005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600980546001600160a01b03191690555f600a55005b34610143575f36600319011261014357610489610bd1565b506101b0604051610499816108a5565b6001600160a01b03600b541681526001600160a01b03600c54166020820152600d5460408201526040519182918261081a565b34610143575f3660031901126101435760075442106101435760068054600580546001600160a01b03199081166001600160a01b038416179091551690555f600755005b3461014357608036600319011261014357610529610804565b60243560443590606435926001600160a01b03600554163303610143578360806001600160a01b036040519361055e85610859565b169283815284602082015285604082015242606082015201526001600160601b0360a01b5f5416175f55600155600255426003556004555f80f35b34610143575f366003190112610143576001600160a01b03600e5416330361014357600d54421061014357600c8054600b80546001600160a01b03199081166001600160a01b038416179091551690555f600d55005b34610143575f3660031901126101435760115460011981019081116102e057602090604051908152f35b34610143575f36600319011261014357601054421061014357600f8054600e80546001600160a01b03199081166001600160a01b038416179091551690555f601055005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600f80546001600160a01b03191690555f601055005b34610143576020366003190112610143576101b061017e6106b4610804565b610981565b34610143575f366003190112610143576001600160a01b03600e5416330361014357600a5442106101435760098054600880546001600160a01b03199081166001600160a01b038416179091551690555f600a55005b34610143575f366003190112610143575f608060405161072e81610859565b828152826020820152826040820152826060820152015260a060405161075381610859565b6001600160a01b035f5416908181526001546020820190815260025460408301908152600354916060840192835260806004549401938452604051948552516020850152516040840152516060830152516080820152f35b34610143576020366003190112610143576107c4610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b600c541617600c556201518042018042116102e057600d55005b600435906001600160a01b038216820361014357565b91909160408060608301946001600160a01b0381511684526001600160a01b0360208201511660208501520151910152565b919082018092116102e057565b60a0810190811067ffffffffffffffff82111761087557604052565b634e487b7160e01b5f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761087557604052565b6060810190811067ffffffffffffffff82111761087557604052565b90601f8019910116810190811067ffffffffffffffff82111761087557604052565b604051906108f082610889565b5f6060838281528260208201528260408201520152565b908160809103126101435760606040519161092183610889565b8051835260208101516020840152604081015160408401520151606082015290565b919082039182116102e057565b818102929181159184041417156102e057565b811561096d570490565b634e487b7160e01b5f52601260045260245ffd5b905f915f915f905f925f60045491826109986108e3565b506001600160a01b03600b54169660405190637e17f55960e11b82526001600160a01b03841660048301526020826024818c5afa918215610b92575f92610b9d575b50929197905f9360035499601154915b838710610a54575b50505050505050670de0b6b3a7640000810290808204670de0b6b3a764000014901517156102e057610a3a610a4f91610a34670de0b6b3a76400009488610943565b90610963565b610a4960015460025490610963565b90610950565b049290565b60405163120a744b60e31b81526001600160a01b038716600482015260248101889052969a509495939492939192608083604481895afa928315610b92575f93610b62575b5060408301918c835111610b125784845114610af75781610ace575b5050516060919091015160018a019594939291906109ea565b97610ae9610aef92610ae4859b60609651610943565b610950565b9061084c565b96905f610ab5565b5050505050505050505093505050505f905f905f905f905f90565b9550955050916001915097949714610b56575b5081610b3b575b5050925f8080808080806109f2565b610b4e929591610ae4610ae99289610943565b925f80610b2c565b6060015191505f610b25565b610b8491935060803d8111610b8b575b610b7c81836108c1565b810190610907565b915f610a99565b503d610b72565b6040513d5f823e3d90fd5b9091506020813d602011610bc9575b81610bb9602093836108c1565b810103126101435751905f6109da565b3d9150610bac565b60405190610bde826108a5565b5f6040838281528260208201520152565b5f915f915f905f925f600454928390610c066108e3565b946001600160a01b03600b54169760405190637e17f55960e11b82526001600160a01b03841660048301526020826024818d5afa918215610b92575f92610dfb575b5091985f93916003549a601154905b828710610cd4575b50505050505050670de0b6b3a7640000820291808304670de0b6b3a764000014901517156102e057610ccf91610a34610c989288610943565b606060015494610cc4670de0b6b3a7640000610cbb60025495610a49878b610963565b04809997610943565b600155015190610943565b600255565b60405163120a744b60e31b81526001600160a01b038616600482015260248101889052969b509499509294919390929190608082604481885afa918215610b92575f92610ddb575b50819960018514610dd0575b60408301918d835111610d955784845114610d7a5781610d5c575b5050606090519101519160018b01959391949294610c57565b98610ae9610d7292610ae4859c60609651610943565b97905f610d43565b505f9e508e9d508d9c508c9b508b9a50505050505050505050565b955095505050505081969296610db5575b5050935f808080808080610c5f565b610dc8929391610ae4610ae9928a610943565b905f80610da6565b506060820151610d28565b610df491925060803d8111610b8b57610b7c81836108c1565b905f610d1c565b9091506020813d602011610e27575b81610e17602093836108c1565b810103126101435751905f610c48565b3d9150610e0a56fea2646970667358221220c735d624f83faa268abe1416ff68fae91ab044af7434d8859bd70c0fe6194e0d64736f6c63430008210033",sourceMap:"1271:15128:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3564:9:67;1271:15128;;3550:10;:30;3546:44;;9128:18;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;9169:22:67;1271:15128;;3546:44;1271:15128;3582:8;;1271:15128;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3387:14:67;1271:15128;;3373:10;:35;3369:49;;6009:2190;1271:15128;6009:2190;;:::i;:::-;1271:15128;;;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;13190:7;1271:15128;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14317:5:67;1271:15128;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13471:9:67;1271:15128;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;-1:-1:-1;;;;;1271:15128:67;-1:-1:-1;;;;;1271:15128:67;;9731:20;1271:15128;;;9731:20;1271:15128;9818:6;9800:15;1271:15128;9800:15;;1271:15128;;;9773:24;1271:15128;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13746:11:67;1271:15128;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;-1:-1:-1;;;;;1271:15128:67;-1:-1:-1;;;;;1271:15128:67;;11499:14;1271:15128;;;11499:14;1271:15128;11574:6;11556:15;1271:15128;11556:15;;1271:15128;;;11535:18;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;10853:23;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;10899:27:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3564:9:67;1271:15128;;3550:10;:30;3546:44;;-1:-1:-1;;;;;1271:15128:67;-1:-1:-1;;;;;1271:15128:67;;8903:18;1271:15128;;;8903:18;1271:15128;8986:6;8968:15;1271:15128;8968:15;;1271:15128;;;8943:22;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;9961:20;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;10004:24:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14041:14:67;1271:15128;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;9348:22;1271:15128;9330:15;:40;9326:54;;9410:18;1271:15128;;9348:9;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;-1:-1:-1;9348:22:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;3564:9:67;1271:15128;;3550:10;:30;3546:44;;1271:15128;;-1:-1:-1;;;;;1271:15128:67;;;;;;:::i;:::-;;;;;;5105:196;1271:15128;5105:196;;1271:15128;5105:196;1271:15128;5105:196;;1271:15128;5247:15;1271:15128;5105:196;;1271:15128;5105:196;1271:15128;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;5247:15;1271:15128;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;11104:27;1271:15128;11086:15;:45;11082:59;;11176:23;1271:15128;;11104:14;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;-1:-1:-1;11104:27:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;12970:7;1271:15128;-1:-1:-1;;1271:15128:67;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;11908:18;1271:15128;11890:15;:36;11886:50;;11962:14;1271:15128;;11908:5;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;-1:-1:-1;11908:18:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;11704:14;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;11741:18:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;10200:24;1271:15128;10182:15;:42;10178:56;;10266:20;1271:15128;;10200:11;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;-1:-1:-1;10200:24:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;-1:-1:-1;;;;;1271:15128:67;-1:-1:-1;;;;;1271:15128:67;;10611:23;1271:15128;;;10611:23;1271:15128;10704:6;10686:15;1271:15128;10686:15;;1271:15128;;;10656:27;1271:15128;;;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1271:15128:67;;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1271:15128:67;;;;;-1:-1:-1;1271:15128:67;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1271:15128:67;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;14876:1521;;1271:15128;15025:20;1271:15128;15104:21;1271:15128;15192:17;1271:15128;15219:14;1271:15128;15260:12;1271:15128;;;;;:::i;:::-;;-1:-1:-1;;;;;15354:14:67;1271:15128;;;;;;;;;15346:83;;-1:-1:-1;;;;;1271:15128:67;;15260:12;15346:83;;1271:15128;;15346:83;;;;;;;;;;;1271:15128;15346:83;;;14876:1521;15445:13;;;;;1271:15128;;15637:12;1271:15128;;15905:7;1271:15128;15440:708;15460:8;;;;;;15440:708;1271:15128;;;;;;;16188:4;1271:15128;;;;;;16188:4;1271:15128;;;;;;;16178:47;16275:49;16197:27;;16188:4;16197:27;;;:::i;:::-;16178:47;;:::i;:::-;16288:35;1271:15128;;16306:17;1271:15128;16288:35;;:::i;:::-;16275:49;;:::i;:::-;1271:15128;16355:35;14876:1521;:::o;15470:3::-;1271:15128;;-1:-1:-1;;;15493:111:67;;-1:-1:-1;;;;;1271:15128:67;;15260:12;15493:111;;1271:15128;;;;;;;;;-1:-1:-1;1271:15128:67;;;;;;;;15493:111;1271:15128;;;;15493:111;;;;;;;1271:15128;15493:111;;;15470:3;15623:11;1271:15128;15623:11;;1271:15128;;;;15623:26;15619:247;;1271:15128;;;15884:28;15880:65;;15975:13;15971:62;;15470:3;-1:-1:-1;;1271:15128:67;16093:13;;;;;1271:15128;;;;;15445:13;;;16120:17;1271:15128;15445:13;;15971:62;1271:15128;16000:33;15990:43;1271:15128;16001:19;1271:15128;;16093:13;1271:15128;;16001:19;:::i;:::-;16000:33;:::i;:::-;15990:43;;:::i;:::-;15971:62;;;;;15880:65;15914:31;;;;;;;;;;;;;;;1271:15128;15914:31;1271:15128;15914:31;1271:15128;15914:31;1271:15128;15914:31;1271:15128;15914:31;:::o;15619:247::-;15673:9;;;;;;1271:15128;15673:9;;;;;;15669:40;;15619:247;15732:13;;15728:63;;15619:247;15810:17;;15846:5;;;;;;;;;;15728:63;15747:44;15758:20;;;;15757:34;15758:20;;;:::i;15747:44::-;15728:63;;;;;15669:40;16093:13;15696;1271:15128;;-1:-1:-1;15669:40:67;;;15493:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1271:15128;;;;;;;;;15346:83;;;;1271:15128;15346:83;;1271:15128;15346:83;;;;;;1271:15128;15346:83;;;:::i;:::-;;;1271:15128;;;;;15346:83;;;;;;;-1:-1:-1;15346:83:67;;1271:15128;;;;;;;:::i;:::-;-1:-1:-1;1271:15128:67;;;;;;;;;;;;:::o;6009:2190::-;1271:15128;6009:2190;1271:15128;6009:2190;1271:15128;6329:17;1271:15128;6356:14;1271:15128;6397:12;1271:15128;;;6419:39;1271:15128;;:::i;:::-;;-1:-1:-1;;;;;6491:14:67;1271:15128;;;;;;;;;6483:83;;-1:-1:-1;;;;;1271:15128:67;;6397:12;6483:83;;1271:15128;;6483:83;;;;;;;;;;;1271:15128;6483:83;;;6009:2190;6582:13;;;1271:15128;6582:13;;6829:12;1271:15128;;7038:7;1271:15128;6577:704;6597:8;;;;;;6577:704;1271:15128;;;;;;;7893:4;1271:15128;;;;;;7893:4;1271:15128;;;;;;;8158:34;7902:27;;7883:47;7902:27;;;:::i;7883:47::-;7226:13;6768:1;1271:15128;;8106:42;7893:4;7980:49;8011:17;1271:15128;7993:35;;;;;:::i;7980:49::-;1271:15128;8060:35;;8106:42;;:::i;:::-;6768:1;1271:15128;8179:13;1271:15128;8158:34;;:::i;:::-;8011:17;1271:15128;6009:2190::o;6607:3::-;1271:15128;;-1:-1:-1;;;6630:111:67;;-1:-1:-1;;;;;1271:15128:67;;6397:12;6630:111;;1271:15128;;;;;;;;;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;;;;;;;6630:111;1271:15128;;;;6630:111;;;;;;;1271:15128;6630:111;;;6607:3;6626:115;;6760:9;6768:1;6760:9;;6756:40;;6607:3;1271:15128;6815:11;;1271:15128;;;;6815:26;6811:188;;1271:15128;;;7017:28;7013:65;;7108:13;7104:62;;6607:3;1271:15128;;7226:13;1271:15128;;7226:13;;1271:15128;7253:17;6768:1;7253:17;1271:15128;6582:13;;;;;;;;7104:62;1271:15128;7133:33;7123:43;1271:15128;7134:19;1271:15128;;7226:13;1271:15128;;7134:19;:::i;7123:43::-;7104:62;;;;;7013:65;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;-1:-1:-1;;;;;;;;;;7047:31:67:o;6811:188::-;6865:13;;;;;;;;;;;;6861:63;;6811:188;6943:17;;6979:5;;;;;;;;;;6861:63;6880:44;6891:20;;;;6890:34;6891:20;;;:::i;6880:44::-;6861:63;;;;;6756:40;6783:13;7226;6783;;1271:15128;6756:40;;6630:111;;;;;;;;;;;;;;;:::i;:::-;;;;;6483:83;;;;1271:15128;6483:83;;1271:15128;6483:83;;;;;;1271:15128;6483:83;;;:::i;:::-;;;1271:15128;;;;;6483:83;;;;;;;-1:-1:-1;6483:83:67;",linkReferences:{}},methodIdentifiers:{"acceptActivatorProposal()":"608bd0bf","acceptAddressStakingProposal()":"5b65a897","acceptAdminProposal()":"55dbb311","acceptEvvmAddressProposal()":"1fa75673","cancelActivatorProposal()":"fd3607d0","cancelAddressStakingProposal()":"7aa84eae","cancelAdminProposal()":"4cc05f46","cancelEvvmAddressProposal()":"70b170da","getActivatorMetadata()":"b1fc6a91","getActualEpochInFormat()":"c9ed28e9","getActualEpochInUint()":"5637455a","getAddressStakingMetadata()":"6e14f559","getAdminMetadata()":"c1a53583","getCoreAddressMetadata()":"9da2bb11","getEpochMetadata()":"112c1d5a","makeEstimation(address)":"f7027207","notifyNewEpoch(address,uint256,uint256,uint256)":"5fd99c59","setActivatorProposal(address)":"79eb30f0","setAddressStakingProposal(address)":"0f9d8a70","setAdminProposal(address)":"7fa80f08","setEvvmAddressProposal(address)":"a9131e23","simulteEstimation(address)":"33a61fc3"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_activator","type":"address"},{"internalType":"address","name":"_coreAddress","type":"address"},{"internalType":"address","name":"_addressStaking","type":"address"},{"internalType":"address","name":"_admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"acceptActivatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptAddressStakingProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptAdminProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptEvvmAddressProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelActivatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelAddressStakingProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelAdminProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelEvvmAddressProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getActivatorMetadata","outputs":[{"components":[{"internalType":"address","name":"actual","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct Estimator.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getActualEpochInFormat","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getActualEpochInUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressStakingMetadata","outputs":[{"components":[{"internalType":"address","name":"actual","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct Estimator.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAdminMetadata","outputs":[{"components":[{"internalType":"address","name":"actual","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct Estimator.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCoreAddressMetadata","outputs":[{"components":[{"internalType":"address","name":"actual","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct Estimator.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEpochMetadata","outputs":[{"components":[{"internalType":"address","name":"tokenPool","type":"address"},{"internalType":"uint256","name":"totalPool","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"},{"internalType":"uint256","name":"tFinal","type":"uint256"},{"internalType":"uint256","name":"tStart","type":"uint256"}],"internalType":"struct Estimator.EpochMetadata","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"makeEstimation","outputs":[{"internalType":"bytes32","name":"epochAnswer","type":"bytes32"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amountTotalToBeRewarded","type":"uint256"},{"internalType":"uint256","name":"idToOverwrite","type":"uint256"},{"internalType":"uint256","name":"timestampToOverwrite","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenPool","type":"address"},{"internalType":"uint256","name":"totalPool","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"},{"internalType":"uint256","name":"tStart","type":"uint256"}],"name":"notifyNewEpoch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposal","type":"address"}],"name":"setActivatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposal","type":"address"}],"name":"setAddressStakingProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposal","type":"address"}],"name":"setAdminProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposal","type":"address"}],"name":"setEvvmAddressProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"simulteEstimation","outputs":[{"internalType":"bytes32","name":"epochAnswer","type":"bytes32"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amountTotalToBeRewarded","type":"uint256"},{"internalType":"uint256","name":"idToOverwrite","type":"uint256"},{"internalType":"uint256","name":"timestampToOverwrite","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Mate Labs","details":"Collaborates with Staking.sol to track epochs, total staked amounts, and distribution pools. Features time-delayed governance for administrative changes.","kind":"dev","methods":{"constructor":{"details":"Sets up all required addresses for contract operation","params":{"_activator":"Address authorized to start new epochs","_addressStaking":"Address of the Staking contract","_admin":"Address with administrative privileges","_coreAddress":"Address of the EVVM core contract"}},"getActivatorMetadata()":{"returns":{"_0":"Complete AddressTypeProposal struct for activator"}},"getActualEpochInFormat()":{"returns":{"_0":"Current epoch identifier"}},"getActualEpochInUint()":{"returns":{"_0":"Current epoch number (epochId - 2)"}},"getAddressStakingMetadata()":{"returns":{"_0":"Complete AddressTypeProposal struct for Staking"}},"getAdminMetadata()":{"returns":{"_0":"Complete AddressTypeProposal struct for admin"}},"getCoreAddressMetadata()":{"returns":{"_0":"Complete AddressTypeProposal struct for EVVM"}},"getEpochMetadata()":{"returns":{"_0":"Complete EpochMetadata struct with pool and timing information"}},"makeEstimation(address)":{"details":"Only callable by the Staking contract. Uses time-weighted average calculation to determine proportional rewards based on staking duration and amount.","params":{"_user":"Address of the user to calculate rewards for"},"returns":{"amountTotalToBeRewarded":"Calculated reward amount for the user","epochAnswer":"Epoch identifier to record in user history","idToOverwrite":"Index in user history to update with reward info","timestampToOverwrite":"Timestamp to record for the reward transaction","tokenAddress":"Address of the reward token"}},"notifyNewEpoch(address,uint256,uint256,uint256)":{"details":"Only callable by the activator address. Records epoch metadata for reward calculations.","params":{"tStart":"Timestamp when the epoch started","tokenPool":"Address of the token to be distributed as rewards","totalPool":"Total amount of tokens available for distribution this epoch","totalStaked":"Total staking tokens staked at epoch start"}},"setActivatorProposal(address)":{"params":{"_proposal":"Address of the proposed new activator"}},"setAddressStakingProposal(address)":{"params":{"_proposal":"Address of the proposed new Staking contract"}},"setAdminProposal(address)":{"params":{"_proposal":"Address of the proposed new admin"}},"setEvvmAddressProposal(address)":{"params":{"_proposal":"Address of the proposed new EVVM contract"}},"simulteEstimation(address)":{"details":"View function for previewing rewards before claiming","params":{"_user":"Address of the user to simulate rewards for"},"returns":{"amountTotalToBeRewarded":"Calculated reward amount","epochAnswer":"Epoch identifier that would be recorded","idToOverwrite":"Index in user history that would be updated","timestampToOverwrite":"Timestamp that would be recorded","tokenAddress":"Address of the reward token"}}},"stateVariables":{"BEGUIN_IDENTIFIER":{"details":"Beginning identifier same as withdraw for epoch tracking"},"DEPOSIT_IDENTIFIER":{"details":"Transaction type identifier for deposit (staking) operations"},"WITHDRAW_IDENTIFIER":{"details":"Transaction type identifier for withdraw (unstaking) operations"},"activator":{"details":"Proposal system for activator address changes"},"addressStaking":{"details":"Proposal system for Staking contract address changes"},"admin":{"details":"Proposal system for admin address changes"},"coreAddress":{"details":"Proposal system for EVVM address changes"},"epoch":{"details":"Current epoch metadata storage"},"epochId":{"details":"Current epoch identifier, increments with each new epoch"}},"title":"EVVM Staking Estimator","version":1},"userdoc":{"kind":"user","methods":{"acceptActivatorProposal()":{"notice":"Accepts the activator proposal after time delay"},"acceptAddressStakingProposal()":{"notice":"Accepts the Staking address proposal after time delay"},"acceptAdminProposal()":{"notice":"Accepts the admin proposal after time delay"},"acceptEvvmAddressProposal()":{"notice":"Accepts the EVVM address proposal after time delay"},"cancelActivatorProposal()":{"notice":"Cancels the pending activator proposal"},"cancelAddressStakingProposal()":{"notice":"Cancels the pending Staking address proposal"},"cancelAdminProposal()":{"notice":"Cancels the pending admin proposal"},"cancelEvvmAddressProposal()":{"notice":"Cancels the pending EVVM address proposal"},"constructor":{"notice":"Initializes the Estimator contract"},"getActivatorMetadata()":{"notice":"Returns the activator address proposal information"},"getActualEpochInFormat()":{"notice":"Returns the current epoch identifier in bytes32 format"},"getActualEpochInUint()":{"notice":"Returns the current epoch number as uint256"},"getAddressStakingMetadata()":{"notice":"Returns the Staking contract address proposal information"},"getAdminMetadata()":{"notice":"Returns the admin address proposal information"},"getCoreAddressMetadata()":{"notice":"Returns the EVVM address proposal information"},"getEpochMetadata()":{"notice":"Returns the current epoch metadata"},"makeEstimation(address)":{"notice":"Calculates and returns the reward amount for a specific user"},"notifyNewEpoch(address,uint256,uint256,uint256)":{"notice":"Starts a new reward epoch with the provided parameters"},"setActivatorProposal(address)":{"notice":"Proposes a new activator address with 1-day time delay"},"setAddressStakingProposal(address)":{"notice":"Proposes a new Staking contract address with 1-day time delay"},"setAdminProposal(address)":{"notice":"Proposes a new admin address with 1-day time delay"},"setEvvmAddressProposal(address)":{"notice":"Proposes a new EVVM address with 1-day time delay"},"simulteEstimation(address)":{"notice":"Simulates reward estimation without modifying state"}},"notice":"MM\\"\\"\\"\\"\\"\\"\\"\\"`M dP oo dP MM mmmmmmmM 88 88 M` MMMM .d8888b. d8888P dP 88d8b.d8b. .d8888b. d8888P .d8888b. 88d888b. MM MMMMMMMM Y8ooooo. 88 88 88\'`88\'`88 88\' `88 88 88\' `88 88\' `88 MM MMMMMMMM 88 88 88 88 88 88 88. .88 88 88. .88 88 MM .M `88888P\' dP dP dP dP dP `88888P8 dP `88888P\' dP MMMMMMMMMMMM Calculates validator rewards using time-weighted averages.","version":1}},"settings":{"compilationTarget":{"src/contracts/staking/Estimator.sol":"Estimator"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/contracts/staking/Estimator.sol":{"keccak256":"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"]},"src/contracts/staking/Staking.sol":{"keccak256":"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/errors/StakingError.sol":{"keccak256":"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/structs/StakingStructs.sol":{"keccak256":"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]},"src/library/utils/signature/StakingHashUtils.sol":{"keccak256":"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"_activator",type:"address"},{internalType:"address",name:"_coreAddress",type:"address"},{internalType:"address",name:"_addressStaking",type:"address"},{internalType:"address",name:"_admin",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptActivatorProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptAddressStakingProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptAdminProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptEvvmAddressProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelActivatorProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelAddressStakingProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelAdminProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelEvvmAddressProposal"},{inputs:[],stateMutability:"view",type:"function",name:"getActivatorMetadata",outputs:[{internalType:"struct Estimator.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"actual",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getActualEpochInFormat",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}]},{inputs:[],stateMutability:"view",type:"function",name:"getActualEpochInUint",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getAddressStakingMetadata",outputs:[{internalType:"struct Estimator.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"actual",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getAdminMetadata",outputs:[{internalType:"struct Estimator.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"actual",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getCoreAddressMetadata",outputs:[{internalType:"struct Estimator.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"actual",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getEpochMetadata",outputs:[{internalType:"struct Estimator.EpochMetadata",name:"",type:"tuple",components:[{internalType:"address",name:"tokenPool",type:"address"},{internalType:"uint256",name:"totalPool",type:"uint256"},{internalType:"uint256",name:"totalStaked",type:"uint256"},{internalType:"uint256",name:"tFinal",type:"uint256"},{internalType:"uint256",name:"tStart",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"_user",type:"address"}],stateMutability:"nonpayable",type:"function",name:"makeEstimation",outputs:[{internalType:"bytes32",name:"epochAnswer",type:"bytes32"},{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint256",name:"amountTotalToBeRewarded",type:"uint256"},{internalType:"uint256",name:"idToOverwrite",type:"uint256"},{internalType:"uint256",name:"timestampToOverwrite",type:"uint256"}]},{inputs:[{internalType:"address",name:"tokenPool",type:"address"},{internalType:"uint256",name:"totalPool",type:"uint256"},{internalType:"uint256",name:"totalStaked",type:"uint256"},{internalType:"uint256",name:"tStart",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"notifyNewEpoch"},{inputs:[{internalType:"address",name:"_proposal",type:"address"}],stateMutability:"nonpayable",type:"function",name:"setActivatorProposal"},{inputs:[{internalType:"address",name:"_proposal",type:"address"}],stateMutability:"nonpayable",type:"function",name:"setAddressStakingProposal"},{inputs:[{internalType:"address",name:"_proposal",type:"address"}],stateMutability:"nonpayable",type:"function",name:"setAdminProposal"},{inputs:[{internalType:"address",name:"_proposal",type:"address"}],stateMutability:"nonpayable",type:"function",name:"setEvvmAddressProposal"},{inputs:[{internalType:"address",name:"_user",type:"address"}],stateMutability:"view",type:"function",name:"simulteEstimation",outputs:[{internalType:"bytes32",name:"epochAnswer",type:"bytes32"},{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint256",name:"amountTotalToBeRewarded",type:"uint256"},{internalType:"uint256",name:"idToOverwrite",type:"uint256"},{internalType:"uint256",name:"timestampToOverwrite",type:"uint256"}]}],devdoc:{kind:"dev",methods:{constructor:{details:"Sets up all required addresses for contract operation",params:{_activator:"Address authorized to start new epochs",_addressStaking:"Address of the Staking contract",_admin:"Address with administrative privileges",_coreAddress:"Address of the EVVM core contract"}},"getActivatorMetadata()":{returns:{_0:"Complete AddressTypeProposal struct for activator"}},"getActualEpochInFormat()":{returns:{_0:"Current epoch identifier"}},"getActualEpochInUint()":{returns:{_0:"Current epoch number (epochId - 2)"}},"getAddressStakingMetadata()":{returns:{_0:"Complete AddressTypeProposal struct for Staking"}},"getAdminMetadata()":{returns:{_0:"Complete AddressTypeProposal struct for admin"}},"getCoreAddressMetadata()":{returns:{_0:"Complete AddressTypeProposal struct for EVVM"}},"getEpochMetadata()":{returns:{_0:"Complete EpochMetadata struct with pool and timing information"}},"makeEstimation(address)":{details:"Only callable by the Staking contract. Uses time-weighted average calculation to determine proportional rewards based on staking duration and amount.",params:{_user:"Address of the user to calculate rewards for"},returns:{amountTotalToBeRewarded:"Calculated reward amount for the user",epochAnswer:"Epoch identifier to record in user history",idToOverwrite:"Index in user history to update with reward info",timestampToOverwrite:"Timestamp to record for the reward transaction",tokenAddress:"Address of the reward token"}},"notifyNewEpoch(address,uint256,uint256,uint256)":{details:"Only callable by the activator address. Records epoch metadata for reward calculations.",params:{tStart:"Timestamp when the epoch started",tokenPool:"Address of the token to be distributed as rewards",totalPool:"Total amount of tokens available for distribution this epoch",totalStaked:"Total staking tokens staked at epoch start"}},"setActivatorProposal(address)":{params:{_proposal:"Address of the proposed new activator"}},"setAddressStakingProposal(address)":{params:{_proposal:"Address of the proposed new Staking contract"}},"setAdminProposal(address)":{params:{_proposal:"Address of the proposed new admin"}},"setEvvmAddressProposal(address)":{params:{_proposal:"Address of the proposed new EVVM contract"}},"simulteEstimation(address)":{details:"View function for previewing rewards before claiming",params:{_user:"Address of the user to simulate rewards for"},returns:{amountTotalToBeRewarded:"Calculated reward amount",epochAnswer:"Epoch identifier that would be recorded",idToOverwrite:"Index in user history that would be updated",timestampToOverwrite:"Timestamp that would be recorded",tokenAddress:"Address of the reward token"}}},version:1},userdoc:{kind:"user",methods:{"acceptActivatorProposal()":{notice:"Accepts the activator proposal after time delay"},"acceptAddressStakingProposal()":{notice:"Accepts the Staking address proposal after time delay"},"acceptAdminProposal()":{notice:"Accepts the admin proposal after time delay"},"acceptEvvmAddressProposal()":{notice:"Accepts the EVVM address proposal after time delay"},"cancelActivatorProposal()":{notice:"Cancels the pending activator proposal"},"cancelAddressStakingProposal()":{notice:"Cancels the pending Staking address proposal"},"cancelAdminProposal()":{notice:"Cancels the pending admin proposal"},"cancelEvvmAddressProposal()":{notice:"Cancels the pending EVVM address proposal"},constructor:{notice:"Initializes the Estimator contract"},"getActivatorMetadata()":{notice:"Returns the activator address proposal information"},"getActualEpochInFormat()":{notice:"Returns the current epoch identifier in bytes32 format"},"getActualEpochInUint()":{notice:"Returns the current epoch number as uint256"},"getAddressStakingMetadata()":{notice:"Returns the Staking contract address proposal information"},"getAdminMetadata()":{notice:"Returns the admin address proposal information"},"getCoreAddressMetadata()":{notice:"Returns the EVVM address proposal information"},"getEpochMetadata()":{notice:"Returns the current epoch metadata"},"makeEstimation(address)":{notice:"Calculates and returns the reward amount for a specific user"},"notifyNewEpoch(address,uint256,uint256,uint256)":{notice:"Starts a new reward epoch with the provided parameters"},"setActivatorProposal(address)":{notice:"Proposes a new activator address with 1-day time delay"},"setAddressStakingProposal(address)":{notice:"Proposes a new Staking contract address with 1-day time delay"},"setAdminProposal(address)":{notice:"Proposes a new admin address with 1-day time delay"},"setEvvmAddressProposal(address)":{notice:"Proposes a new EVVM address with 1-day time delay"},"simulteEstimation(address)":{notice:"Simulates reward estimation without modifying state"}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/staking/Estimator.sol":"Estimator"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Estimator.sol":{keccak256:"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057",urls:["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Staking.sol":{keccak256:"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a",urls:["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/StakingError.sol":{keccak256:"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2",urls:["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/StakingStructs.sol":{keccak256:"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf",urls:["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/StakingHashUtils.sol":{keccak256:"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65",urls:["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:67},sF={abi:[{type:"constructor",inputs:[{name:"_initialOwner",type:"address",internalType:"address"},{name:"_stakingContractAddress",type:"address",internalType:"address"},{name:"_evvmMetadata",type:"tuple",internalType:"struct CoreStructs.EvvmMetadata",components:[{name:"EvvmName",type:"string",internalType:"string"},{name:"EvvmID",type:"uint256",internalType:"uint256"},{name:"principalTokenName",type:"string",internalType:"string"},{name:"principalTokenSymbol",type:"string",internalType:"string"},{name:"principalTokenAddress",type:"address",internalType:"address"},{name:"totalSupply",type:"uint256",internalType:"uint256"},{name:"eraTokens",type:"uint256",internalType:"uint256"},{name:"reward",type:"uint256",internalType:"uint256"}]}],stateMutability:"nonpayable"},{type:"fallback",stateMutability:"nonpayable"},{type:"function",name:"acceptAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptChangeBaseRewardAmount",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptChangeRewardFlowDistribution",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptDeleteTotalSupply",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptImplementation",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptListStatusProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptUserValidatorProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addAmountToUser",inputs:[{name:"user",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addBalance",inputs:[{name:"user",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"},{name:"quantity",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"asyncNonceStatus",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bytes1",internalType:"bytes1"}],stateMutability:"view"},{type:"function",name:"batchPay",inputs:[{name:"batchData",type:"tuple[]",internalType:"struct CoreStructs.BatchData[]",components:[{name:"from",type:"address",internalType:"address"},{name:"to_address",type:"address",internalType:"address"},{name:"to_identity",type:"string",internalType:"string"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"priorityFee",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"isAsyncExec",type:"bool",internalType:"bool"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"successfulTransactions",type:"uint256",internalType:"uint256"},{name:"results",type:"bool[]",internalType:"bool[]"}],stateMutability:"nonpayable"},{type:"function",name:"caPay",inputs:[{name:"to",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"canExecuteUserTransaction",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"cancelUserValidatorProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"disperseCaPay",inputs:[{name:"toData",type:"tuple[]",internalType:"struct CoreStructs.DisperseCaPayMetadata[]",components:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"toAddress",type:"address",internalType:"address"}]},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"dispersePay",inputs:[{name:"from",type:"address",internalType:"address"},{name:"toData",type:"tuple[]",internalType:"struct CoreStructs.DispersePayMetadata[]",components:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"to_address",type:"address",internalType:"address"},{name:"to_identity",type:"string",internalType:"string"}]},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"priorityFee",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"isAsyncExec",type:"bool",internalType:"bool"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAllowListStatus",inputs:[{name:"token",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getAsyncNonceReservation",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getBalance",inputs:[{name:"user",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getChainHostCoinAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"pure"},{type:"function",name:"getCurrentAdmin",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCurrentImplementation",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCurrentListStatus",inputs:[],outputs:[{name:"",type:"bytes1",internalType:"bytes1"}],stateMutability:"view"},{type:"function",name:"getCurrentSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getDenyListStatus",inputs:[{name:"token",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEvvmMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct CoreStructs.EvvmMetadata",components:[{name:"EvvmName",type:"string",internalType:"string"},{name:"EvvmID",type:"uint256",internalType:"uint256"},{name:"principalTokenName",type:"string",internalType:"string"},{name:"principalTokenSymbol",type:"string",internalType:"string"},{name:"principalTokenAddress",type:"address",internalType:"address"},{name:"totalSupply",type:"uint256",internalType:"uint256"},{name:"eraTokens",type:"uint256",internalType:"uint256"},{name:"reward",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailAdmin",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.AddressTypeProposal",components:[{name:"current",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailImplementation",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.AddressTypeProposal",components:[{name:"current",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailListStatus",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.Bytes1TypeProposal",components:[{name:"current",type:"bytes1",internalType:"bytes1"},{name:"proposal",type:"bytes1",internalType:"bytes1"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailReward",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.UintTypeProposal",components:[{name:"current",type:"uint256",internalType:"uint256"},{name:"proposal",type:"uint256",internalType:"uint256"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailRewardFlowDistribution",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.BoolTypeProposal",components:[{name:"flag",type:"bool",internalType:"bool"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailUserValidator",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.AddressTypeProposal",components:[{name:"current",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getIfUsedAsyncNonce",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getNameServiceAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getNextCurrentSyncNonce",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPrincipalTokenAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getPrincipalTokenTotalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getRewardAmount",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getRewardFlowDistributionFlag",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getStakingContractAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getTimeToDeleteMaxSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getUserValidatorAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"initializeSystemContracts",inputs:[{name:"_nameServiceAddress",type:"address",internalType:"address"},{name:"_treasuryAddress",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isAddressStaker",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"pay",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to_address",type:"address",internalType:"address"},{name:"to_identity",type:"string",internalType:"string"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"priorityFee",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"isAsyncExec",type:"bool",internalType:"bool"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"pointStaker",inputs:[{name:"user",type:"address",internalType:"address"},{name:"answer",type:"bytes1",internalType:"bytes1"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeAdmin",inputs:[{name:"_newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeChangeBaseRewardAmount",inputs:[{name:"newBaseReward",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeChangeRewardFlowDistribution",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeDeleteTotalSupply",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeImplementation",inputs:[{name:"_newImpl",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeListStatus",inputs:[{name:"newStatus",type:"bytes1",internalType:"bytes1"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeUserValidator",inputs:[{name:"newValidator",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"recalculateReward",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectChangeBaseRewardAmount",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectChangeRewardFlowDistribution",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectDeleteTotalSupply",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectListStatusProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectUpgrade",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"removeAmountFromUser",inputs:[{name:"user",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"reserveAsyncNonce",inputs:[{name:"nonce",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"revokeAsyncNonce",inputs:[{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setEvvmID",inputs:[{name:"newEvvmID",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPointStaker",inputs:[{name:"user",type:"address",internalType:"address"},{name:"answer",type:"bytes1",internalType:"bytes1"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setTokenStatusOnAllowList",inputs:[{name:"token",type:"address",internalType:"address"},{name:"status",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setTokenStatusOnDenyList",inputs:[{name:"token",type:"address",internalType:"address"},{name:"status",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"validateAndConsumeNonce",inputs:[{name:"user",type:"address",internalType:"address"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"hashPayload",type:"bytes32",internalType:"bytes32"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"isAsyncExec",type:"bool",internalType:"bool"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"AddressCantBeZero",inputs:[]},{type:"error",name:"AsyncNonceAlreadyReserved",inputs:[]},{type:"error",name:"AsyncNonceAlreadyUsed",inputs:[]},{type:"error",name:"AsyncNonceIsReservedByAnotherService",inputs:[]},{type:"error",name:"AsyncNonceNotReserved",inputs:[]},{type:"error",name:"BaseRewardIncreaseNotAllowed",inputs:[]},{type:"error",name:"BreakerExploded",inputs:[]},{type:"error",name:"ImplementationIsNotActive",inputs:[]},{type:"error",name:"IncorrectAddressInput",inputs:[]},{type:"error",name:"InsufficientBalance",inputs:[]},{type:"error",name:"InvalidAmount",inputs:[]},{type:"error",name:"InvalidListStatus",inputs:[]},{type:"error",name:"InvalidServiceAddress",inputs:[]},{type:"error",name:"InvalidSignature",inputs:[]},{type:"error",name:"MaxSupplyDeletionNotAllowed",inputs:[]},{type:"error",name:"NotAnCA",inputs:[]},{type:"error",name:"OriginIsNotTheOriginExecutor",inputs:[]},{type:"error",name:"ProposalNotReadyToAccept",inputs:[]},{type:"error",name:"RewardFlowDistributionChangeNotAllowed",inputs:[]},{type:"error",name:"SenderIsNotAdmin",inputs:[]},{type:"error",name:"SenderIsNotTheProposedAdmin",inputs:[]},{type:"error",name:"SenderIsNotTreasury",inputs:[]},{type:"error",name:"ServiceSenderMismatch",inputs:[]},{type:"error",name:"SyncNonceMismatch",inputs:[]},{type:"error",name:"TokenIsDeniedForExecution",inputs:[]},{type:"error",name:"UserCannotExecuteTransaction",inputs:[]},{type:"error",name:"WindowExpired",inputs:[]}],bytecode:{object:"0x60806040523461061c576144f38038038061001981610620565b92833981019060608183031261061c5761003281610645565b9061003f60208201610645565b604082015190916001600160401b03821161061c5701916101008385031261061c576040519261010084016001600160401b038111858210176104065760405280516001600160401b03811161061c578561009b918301610659565b845260208181015190850190815260408201516001600160401b03811161061c57866100c8918401610659565b60408601908152606083015190966001600160401b03821161061c576100ef918401610659565b6060860190815261010260808401610645565b966080870197885260a08401519260a0880193845260e060c08601519560c08a0196875201519560e0890196875260018060a01b0316978815801561060b575b6105fc57518051906001600160401b0382116104065760095490600182811c921680156105f2575b60208310146103e85781601f84931161057c575b50602090601f8311600114610516575f9261050b575b50508160011b915f199060031b1c1916176009555b51600a55518051906001600160401b03821161040657600b5490600182811c92168015610501575b60208310146103e85781601f84931161048b575b50602090601f8311600114610425575f9261041a575b50508160011b915f199060031b1c191617600b555b5180519096906001600160401b03811161040657600c54600181811c911680156103fc575b60208210146103e857601f811161037a575b506020601f82116001146103125781906102d598995f92610307575b50508160011b915f199060031b1c191617600c555b51600d80546001600160a01b03199081166001600160a01b03938416179091559151600e559151600f5591516010556001805483169184169182178155601180549093169095179091556014805460ff19169094179093556106cb565b5f52601b60205260405f20600160ff19825416179055600160ff19601a541617601a55604051613da9908161074a8239f35b015190505f80610263565b601f19821698600c5f52815f20995f5b8181106103625750916102d5999a9184600195941061034a575b505050811b01600c55610278565b01515f1960f88460031b161c191690555f808061033c565b838301518c556001909b019a60209384019301610322565b8181111561024757600c5f52601f820160051c7fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7602084106103e0575b81601f9101920160051c03905f5b8281106103d3575050610247565b5f828201556001016103c5565b5f91506103b7565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610235565b634e487b7160e01b5f52604160045260245ffd5b015190505f806101fb565b600b5f9081528281209350601f198516905b818110610473575090846001959493921061045b575b505050811b01600b55610210565b01515f1960f88460031b161c191690555f808061044d565b92936020600181928786015181550195019301610437565b828111156101e557600b5f52909150601f830160051c7f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9602085106104f9575b849392601f0160051c82900391015f5b8281106104e95750506101e5565b5f818301558594506001016104db565b5f91506104cb565b91607f16916101d1565b015190505f80610194565b60095f9081528281209350601f198516905b818110610564575090846001959493921061054c575b505050811b016009556101a9565b01515f1960f88460031b161c191690555f808061053e565b92936020600181928786015181550195019301610528565b8281111561017e5760095f52909150601f830160051c7f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af602085106105ea575b849392601f0160051c82900391015f5b8281106105da57505061017e565b5f818301558594506001016105cc565b5f91506105bc565b91607f169161016a565b632582a64160e11b5f5260045ffd5b506001600160a01b03881615610142565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761040657604052565b51906001600160a01b038216820361061c57565b81601f8201121561061c578051906001600160401b03821161040657610688601f8301601f1916602001610620565b928284526020838301011161061c57815f9260208093018386015e8301015290565b919082018092116106b757565b634e487b7160e01b5f52601160045260245ffd5b60ff6014541615801561073b575b610738576010548060011b90808204600214901517156106b7576107339160018060a01b03165f52601c60205260405f2060018060a01b03600d54165f5260205260405f206107298282546106aa565b90556008546106aa565b600855565b50565b50600854600e5411156106d956fe60806040526004361015610019575b341561323d575b5f80fd5b5f3560e01c806301ed3f51146104685780630211de41146104635780630761a3ad1461045e57806308351bdd1461045957806309a69f571461045457806309fc69711461044f5780630e18b6811461044a5780630f1f38b2146104455780630faff8e814610440578063147bf6c41461043b57806315ba56e51461043657806317c85152146104315780631d3a4e2d1461042c57806325e3243b14610427578063280e32fb14610422578063286b4b441461041d57806329cca5691461041857806332e26fdc146104135780633625c9011461040e5780633a8cd872146104095780633f54542a14610404578063401dffee146103ff57806347ecd0f6146103fa5780634b366ccc146103f55780634c3b7bdb146103f05780634f3e1efc146103eb5780635300e162146103e657806354a12357146103e157806355160ea6146103dc578063563b6170146103d75780635a2cba27146103d2578063643d430c146103cd5780636a230fb4146103c85780636afe5795146103c35780636c9fa638146103be5780636cd30148146103b9578063766dd07b146103b457806376e6eb7e146103af5780637797e97d146103aa5780637a975c80146103a5578063804ef86f146103a0578063862b37371461039b5780638b62e507146103965780638e0c71ad1461039157806390fcb4ee1461038c57806392ab1f24146103875780639dd18c1514610382578063a574aac41461037d578063a7a096f614610378578063ab82aa0a14610373578063adb6233f1461036e578063ae63d1a714610369578063b139c79714610364578063b38c950a1461035f578063b517ac7d1461035a578063bd26035e14610355578063be726ffd14610350578063c898a6e91461034b578063cd654e3e14610346578063d0e3692d14610341578063d3bca8841461033c578063d4fac45d14610337578063e08290ee14610332578063e4e3cfee1461032d578063e7816eb814610328578063e8163dda14610323578063ef0035291461031e578063ef802613146103195763fa7a2e2a0361000e57612251565b6121b1565b61218b565b61213f565b611ca2565b611c03565b611ba6565b611b60565b611aeb565b611a9d565b611a42565b6119db565b6119be565b611991565b61193b565b6118ba565b611894565b61181f565b6117c1565b611738565b611699565b611653565b6115f0565b611588565b6114e6565b6114cc565b6113b8565b611365565b6112fd565b611281565b61123b565b6111dc565b611193565b611157565b6110ca565b611078565b61103b565b611015565b610fd4565b610f80565b610ea2565b610e4b565b610d86565b610d69565b610d20565b610cba565b610c9d565b610c65565b610c2d565b610c08565b610be0565b610b46565b610a9d565b610a4e565b610a28565b6109b4565b610992565b610975565b61091f565b610873565b6107a5565b6106c6565b610648565b610620565b610603565b6105c2565b61051a565b6104e2565b34610015576020366003190112610015576004356001600160a01b036011541633036104c957600a546104b0575b600a556201518042018042116104ab57600755005b6122c6565b60075442111561049657633ddfdb7f60e11b5f5260045ffd5b636587b01b60e11b5f5260045ffd5b5f91031261001557565b34610015575f366003190112610015576001600160a01b036011541633036104c95761051461ff001960185416601855565b5f601955005b34610015575f366003190112610015576105326123ca565b506060601054601654601754906040805161054c81612333565b8481526020810192835201918252604051928352516020830152516040820152f35b6001600160a01b0381160361001557565b60a4359061058c8261056e565b565b60c4359061058c8261056e565b6024359061058c8261056e565b6064359061058c8261056e565b60e4359061058c8261056e565b34610015576020366003190112610015576001600160a01b036004356105e78161056e565b165f526023602052602060ff60405f2054166040519015158152f35b34610015575f366003190112610015576020601054604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c9575f601555005b34610015575f3660031901126100155760135442106106b7576001600160a01b03601254168033036106a8576106a6906106956040519161068883612333565b6001600160a01b03168252565b5f60208201525f60408201526123e8565b005b63036834cf60e51b5f5260045ffd5b633ec513fd60e01b5f5260045ffd5b346100155760203660031901126100155760206106ed6004356106e88161056e565b612451565b6040519015158152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6020815261010060e061077661076061074086518560208801526101208701906106f7565b602087015160408701526040870151601f198783030160608801526106f7565b6060860151858203601f190160808701526106f7565b60808501516001600160a01b031660a08501529360a081015160c085015260c081015182850152015191015290565b34610015575f366003190112610015575f60e06040516107c481612353565b60608152826020820152606060408201526060808201528260808201528260a08201528260c0820152015261086f6107fa6123ab565b6108026124cf565b8152600a5460208201526108146125a4565b604082015261082161264b565b606082015261084b61083b600d546001600160a01b031690565b6001600160a01b03166080830152565b600e5460a0820152600f5460c082015260105460e08201526040519182918261071b565b0390f35b34610015576020366003190112610015576004356108908161056e565b6001600160a01b03601154168033036104c9576001600160a01b038216818115918215610915575b5050610906576201518042018042116104ab576108fc6106a6936108ec6108dd6123bb565b6001600160a01b039095168552565b6001600160a01b03166020840152565b60408201526123e8565b630f107a8160e11b5f5260045ffd5b149050815f6108b8565b34610015575f366003190112610015576001600160a01b036011541633036104c95760055442106106b75760048054600380546001600160a01b03199081166001600160a01b038416179091551690555f600555005b34610015575f366003190112610015576020600a54604051908152f35b34610015575f36600319011261001557602060ff601454166040519015158152f35b34610015575f366003190112610015576109cc6123ca565b506040516109d981612333565b6018546001600160f81b031960f882901b811680845260f09290921b81166020808501918252601954604095860190815285519485529151909216918301919091525191810191909152606090f35b34610015575f3660031901126100155760206001600160a01b03600d5416604051908152f35b346100155760203660031901126100155760206106ed600435610a708161056e565b6001600160a01b03165f908152601b602052604090205460f81b6001600160f81b031916600160f81b1490565b34610015575f3660031901126100155760206001600160a01b0360035416604051908152f35b9181601f84011215610015578235916001600160401b038311610015576020808501948460051b01011161001557565b8015150361001557565b610104359061058c82610af3565b610124359061058c82610af3565b9181601f84011215610015578235916001600160401b038311610015576020838186019501011161001557565b346100155761014036600319011261001557600435610b648161056e565b6024356001600160401b03811161001557610b83903690600401610ac3565b91604435610b908161056e565b606435608435610b9e61057f565b610ba661058e565b9160e43593610bb3610afd565b9561012435996001600160401b038b1161001557610bd86106a69b3690600401610b19565b9a90996128fd565b34610015575f366003190112610015576001600160a01b036011541633036104c9575f600655005b34610015575f3660031901126100155760206001600160a01b035f5416604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c957600480546001600160a01b03191690555f600555005b34610015575f366003190112610015576001600160a01b036011541633036104c957601e80546001600160a01b03191690555f601f55005b34610015575f366003190112610015576020600e54604051908152f35b34610015576040366003190112610015576020610ce5600435610cdc8161056e565b60243590612bed565b6040516001600160f81b03199091168152f35b604090600319011261001557600435610d108161056e565b90602435610d1d81610af3565b90565b3461001557610d2e36610cf8565b6001600160a01b036011541633036104c9576001600160a01b036106a692165f52602460205260405f209060ff801983541691151516179055565b34610015575f366003190112610015576020600854604051908152f35b34610015575f36600319011261001557600e54600f549081811180610e40575b15610015578181039081116104ab57610dcb91610dc69160011c90612312565b600f55565b610ddf601054610dd96135ce565b90612c86565b610e2a610e22610e00336001600160a01b03165f52601c60205260405f2090565b600d546001600160a01b03165b6001600160a01b03165f5260205260405f2090565b918254612312565b90556106a6610e3b60105460011c90565b601055565b505f19811415610da6565b34610015575f366003190112610015576001600160a01b036011541633036104c95760065442106106b7575f19600e55005b604090600319011261001557600435610e958161056e565b90602435610d1d8161056e565b3461001557610eb036610e7d565b60ff601a541615610f71576001600160a01b038216158015610f60575b610f5157610ef8826001600160a01b036106a694166001600160601b0360a01b5f5416175f55613440565b610f33610f26610f0f5f546001600160a01b031690565b6001600160a01b03165f52601b60205260405f2090565b805460ff19166001179055565b6001600160a01b03166001600160601b0360a01b6002541617600255565b632582a64160e11b5f5260045ffd5b506001600160a01b03811615610ecd565b630169759360e61b5f5260045ffd5b34610015575f366003190112610015575f6020604051610f9f8161236f565b828152015260408051610fb18161236f565b60ff60145416151590818152602060155491019081528251918252516020820152f35b34610015576020366003190112610015576001600160a01b03600435610ff98161056e565b165f526024602052602060ff60405f2054166040519015158152f35b34610015575f3660031901126100155760206001600160a01b0360115416604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c95760175442106106b7576016546010555f6016555f6017555f80f35b34610015575f3660031901126100155760206001600160a01b0360015416604051908152f35b6060906003190112610015576004356110b68161056e565b906024356110c38161056e565b9060443590565b34610015576110d83661109e565b919060ff60f81b60185460f81b16611149575b6001600160a01b0360025416330361113a576001600160a01b0361112b92165f52601c60205260405f20906001600160a01b03165f5260205260405f2090565b80549182018092116104ab5755005b63aab0382b60e01b5f5260045ffd5b61115281613366565b6110eb565b34610015576020366003190112610015576001600160a01b0360043561117c8161056e565b165f526022602052602060405f2054604051908152f35b34610015576111a136610cf8565b6001600160a01b036011541633036104c9576001600160a01b036106a692165f52602360205260405f209060ff801983541691151516179055565b34610015576111ea3661109e565b91906001600160a01b0360025416330361113a576001600160a01b0361122c92165f52601c60205260405f20906001600160a01b03165f5260205260405f2090565b80549182039182116104ab5755005b34610015575f366003190112610015576001600160a01b036011541633036104c95760195442106106b7576018805461ffff19811660089190911c60ff16179055610514565b34610015575f366003190112610015576001600160a01b036011541633036104c957600854600e549061270f820282810461270f14831517156104ab576127109004119081156112f2575b506112e3576201518042018042116104ab57600655005b633cfd42e960e01b5f5260045ffd5b5f191490505f6112cc565b34610015576020366003190112610015576004356001600160a01b036011541633036104c957600e545f1914801590611359575b61134a576016556201518042018042116104ab57601755005b633527678960e01b5f5260045ffd5b50601054811015611331565b34610015576040366003190112610015576004356113828161056e565b6001600160a01b0360243591165f52602160205260405f20905f5260205260206001600160a01b0360405f205416604051908152f35b34610015576040366003190112610015576004356024356113d88161056e565b6001600160a01b038116156114bd57335f526020805261140d6114068360405f20905f5260205260405f2090565b5460ff1690565b6114ae5761145c61145061144384611436336001600160a01b03165f52602160205260405f2090565b905f5260205260405f2090565b546001600160a01b031690565b6001600160a01b031690565b61149f576114826106a692611436336001600160a01b03165f52602160205260405f2090565b906001600160a01b03166001600160601b0360a01b825416179055565b632e81b29360e01b5f5260045ffd5b632a0c4a2360e01b5f5260045ffd5b635ece24d960e11b5f5260045ffd5b34610015575f3660031901126100155760206040515f8152f35b3461001557610160366003190112610015576004356115048161056e565b61150c61059b565b6044356001600160401b0381116100155761152b903690600401610b19565b6115369391936105a8565b60843560a43561154461058e565b9061154d6105b5565b92610104359461155b610b0b565b96610144359a6001600160401b038c11610015576115806106a69c3690600401610b19565b9b909a612ce2565b34610015575f366003190112610015576001600160a01b036011541633036104c957600854600e5461270f81029080820461270f14901517156104ab576127109004116115e1576201518042018042116104ab57601555005b63228f257f60e11b5f5260045ffd5b346100155760203660031901126100155760043561160d8161056e565b6001600160a01b036011541633036104c9576001600160a01b03168015610906576001600160601b0360a01b600454161760045562278d0042018042116104ab57600555005b34610015575f366003190112610015576001600160a01b036011541633036104c95760155442106106b75760145460ff80821615169060ff1916176014555f6015555f80f35b34610015576060366003190112610015576004356001600160401b0381116100155736602382011215610015578060040135906001600160401b038211610015573660248360061b83010111610015576106a691602435906116fa8261056e565b60246044359301612e6a565b91909160408060608301946001600160a01b0381511684526001600160a01b0360208201511660208501520151910152565b34610015575f366003190112610015576117506123ca565b5061086f60405161176081612333565b6001600160a01b036011541681526001600160a01b03601254166020820152601354604082015260405191829182611706565b602435906001600160f81b03198216820361001557565b600435906001600160f81b03198216820361001557565b34610015576040366003190112610015576004356117de8161056e565b6117e6611793565b6001600160a01b03600154163303610015576001600160a01b036106a692165f52601b60205260405f209060f81c60ff19825416179055565b34610015576020366003190112610015576118386117aa565b6001600160a01b036011541633036104c95760038160f81c1015611885576118739061ff00806018549260f01c16169061ff00191617601855565b6201518042018042116104ab57601955005b631fd8bc0560e11b5f5260045ffd5b34610015575f3660031901126100155760206001600160a01b03601d5416604051908152f35b34610015575f366003190112610015576001600160a01b03601154168033036104c9576001600160a01b03905f604080516118f481612333565b8381528260208201520152166001600160601b0360a01b60115416176011556119355f6001600160a01b03166001600160601b0360a01b6012541617601255565b5f601355005b34610015575f366003190112610015576001600160a01b036011541633036104c957601f5442106106b757601e8054601d80546001600160a01b03199081166001600160a01b038416179091551690555f601f55005b34610015575f366003190112610015576001600160a01b036011541633036104c9575f6016819055601755005b34610015575f366003190112610015576020600654604051908152f35b34610015576119e93661109e565b906119f333612451565b15611a3357611a029233613644565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14611a2a57005b6106a6336134c5565b630296e8bf60e61b5f5260045ffd5b34610015575f36600319011261001557611a5a6123ca565b5061086f604051611a6a81612333565b6001600160a01b03601d541681526001600160a01b03601e54166020820152601f54604082015260405191829182611706565b3461001557604036600319011261001557600435611aba8161056e565b6001600160a01b0360243591165f526020805260405f20905f52602052602060ff60405f2054166040519015158152f35b34610015576001600160a01b03611b013661109e565b929091165f52601c602052611b2a8160405f20906001600160a01b03165f5260205260405f2090565b8054908382018092116104ab57556001600160a01b0380600d5416911614611b4e57005b6008549081018091116104ab57600855005b34610015576020611b9d6001600160a01b03611b7b36610e7d565b91165f52601c835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b34610015575f36600319011261001557611bbe6123ca565b5061086f6001600160a01b03600354166001600160a01b03600454166005549060405192611beb84612333565b83526020830152604082015260405191829182611706565b3461001557602036600319011261001557600435611c208161056e565b6001600160a01b036011541633036104c9576001600160a01b03166001600160601b0360a01b601e541617601e556201518042018042116104ab57601f55005b6060602091604081019381526040838201528451809452019201905f5b818110611c8a5750505090565b82511515845260209384019390920191600101611c7d565b34610015576020366003190112610015576004356001600160401b03811161001557611cd2903690600401610ac3565b335f908152601b60205260408120549192909160f81b6001600160f81b031916600160f81b1490611d0284612f84565b9373__$4eed29582e89dabffcea3de7fdb0d1406e$__905f5b818110611d495750505050611d3a575b61086f60405192839283611c60565b611d448133613528565b611d2b565b611d54818386612fb6565b611d5d816128ad565b611d6960c083016128ad565b6020830191611d77836128ad565b926040850190611d878287612867565b909360608801956020611d99886128ad565b938d60808c01359860a08d01359b611dc98d8c6040519a8b9788968796634c09e2c960e01b885260048801612ca8565b03915af4928315612039575f9361210f575b50611de860e08a016128ad565b916101008a013592611dfd6101208c01612fd9565b611e0b6101408d018d612867565b91303b15610015575f96611e3494604051998a988998637d3d171560e11b8a5260048a01612fe3565b038183305af190816120f5575b50611e6257505050505050805f611e5a6001938a613026565b525b01611d1b565b601854969b9660f81b600160f81b6001600160f81b031982161490816120c4575b811561207a575b5061205b578a1561207057611e9f8386612312565b611ece611ec5611eae896128ad565b6001600160a01b03165f52601c60205260405f2090565b610e0d876128ad565b541061205b57611f00611efc611eee611ee7858a612867565b3691612724565b611ef6612899565b90613413565b1590565b1561203e57506020611f4c91611f2d611f266114506114505f546001600160a01b031690565b9188612867565b604051630d3dcb9f60e01b8152948593928492839291600484016128d7565b03915afa908115612039575f9161200b575b506001600160a01b03811615611ff15791611f966001969492611fac96945b611f86866128ad565b90611f90856128ad565b91613644565b81151580611fea575b611fc5575b50505061303a565b95611fc0611fba828a613026565b60019052565b611e5c565b611fda611fd4611fe2946128ad565b916128ad565b903390613644565b5f8080611fa4565b5089611f9f565b505050505094805f6120056001938a613026565b52611e5c565b61202c915060203d8111612032575b612024818361238a565b8101906128e8565b5f611f5e565b503d61201a565b612446565b611fac959391506001969492612056611f96926128ad565b611f7d565b50505050505094805f6120056001938a613026565b611e9f835f612312565b6001600160f81b031916600160f91b14905080612098575b5f611e8a565b506120bf6114066120a8866128ad565b6001600160a01b03165f52602360205260405f2090565b612092565b90506120ef611efc6114066120d8886128ad565b6001600160a01b03165f52602460205260405f2090565b90611e83565b806121035f6121099361238a565b806104d8565b5f611e41565b61213191935060203d8111612138575b612129818361238a565b810190612c99565b915f611ddb565b503d61211f565b34610015576040366003190112610015576106a660043561215f8161056e565b6001600160a01b0361216f611793565b91165f52601b60205260405f209060f81c60ff19825416179055565b34610015575f36600319011261001557602060185460f81b6040519060ff60f81b168152f35b3461001557602036600319011261001557600435335f526020805260405f20815f5260205260ff60405f2054166114ae57335f5260216020526001600160a01b0361220a6114438360405f20905f5260205260405f2090565b1615612242576122326106a691611436336001600160a01b03165f52602160205260405f2090565b80546001600160a01b0319169055565b63eb54a44d60e01b5f5260045ffd5b346100155760e03660031901126100155760043561226e8161056e565b6024359061227b8261056e565b606435916122888361056e565b60a43560843561229782610af3565b60c435946001600160401b038611610015576122ba6106a6963690600401610b19565b95909460443591613048565b634e487b7160e01b5f52601160045260245ffd5b90600182018092116104ab57565b60020190816002116104ab57565b60030190816003116104ab57565b90600c82018092116104ab57565b919082018092116104ab57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761234e57604052565b61231f565b61010081019081106001600160401b0382111761234e57604052565b604081019081106001600160401b0382111761234e57604052565b90601f801991011681019081106001600160401b0382111761234e57604052565b6040519061058c6101008361238a565b6040519061058c60608361238a565b604051906123d782612333565b5f6040838281528260208201520152565b6040906001600160a01b038151166001600160601b0360a01b60115416176011556001600160a01b036020820151166001600160601b0360a01b60125416176012550151601355565b908160209103126100155751610d1d81610af3565b6040513d5f823e3d90fd5b6001600160a01b03601d541680156124c8576040516385c99e2b60e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115612039575f9161249f575090565b610d1d915060203d6020116124c1575b6124b9818361238a565b810190612431565b503d6124af565b5050600190565b604051905f6009548060011c9160018216801561259a575b602084108114612586578386528592602084019190811561256d5750600114612518575b5061058c9250038361238a565b60095f90815291507f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b848310612556575061058c9350015f61250b565b805482840152869350602090920191600101612542565b60ff191682525061058c93151560051b0190505f61250b565b634e487b7160e01b5f52602260045260245ffd5b92607f16926124e7565b604051905f600b548060011c91600182168015612641575b602084108114612586578386528592602084019190811561256d57506001146125ec575061058c9250038361238a565b600b5f90815291507f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db95b84831061262a575061058c9350015f61250b565b805482840152869350602090920191600101612616565b92607f16926125bc565b604051905f600c548060011c916001821680156126e8575b602084108114612586578386528592602084019190811561256d5750600114612693575061058c9250038361238a565b600c5f90815291507fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b8483106126d1575061058c9350015f61250b565b8054828401528693506020909201916001016126bd565b92607f1692612663565b6001600160401b03811161234e5760051b60200190565b6001600160401b03811161234e57601f01601f191660200190565b92919261273082612709565b9161273e604051938461238a565b829481845281830111610015578281602093845f960137010152565b929192612766826126f2565b93612774604051958661238a565b602085848152019260051b8201918183116100155780935b83851061279a575050505050565b84356001600160401b0381116100155782019060608285031261001557604051916127c483612333565b8035835260208101356127d68161056e565b60208401526040810135906001600160401b03821161001557019084601f830112156100155760209261280f8684868096359101612724565b604082015281520194019361278c565b919082039182116104ab57565b634e487b7160e01b5f52603260045260245ffd5b91908110156128625760051b81013590605e1981360301821215610015570190565b61282c565b903590601e198136030182121561001557018035906001600160401b0382116100155760200191813603831361001557565b604051906128a860208361238a565b5f8252565b35610d1d8161056e565b908060209392818452848401375f828201840152601f01601f1916010190565b916020610d1d9381815201916128b7565b908160209103126100155751610d1d8161056e565b9681999296612925878761292c999f989c95979e978f90612920908d369161275a565b61327b565b9089613048565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14936129848661296e856001600160a01b03165f52601c60205260405f2090565b906001600160a01b03165f5260205260405f2090565b548515612be457612996885b86612312565b11612bd55760185460f81b6001600160f81b031916612bc7575b5f928515612bb1576129f06129e88861296e6129d08c9796975b8a612312565b946001600160a01b03165f52601c60205260405f2090565b91825461281f565b90555f91825b828410612a44575050505003612a3557612a0e575050565b610e22612a3191612a1e336134c5565b335f908152601c6020526040902061296e565b9055565b63162908e360e11b5f5260045ffd5b90919293612a5e90612a57868686612840565b3590612312565b93612a80611efc611eee611ee7612a76858989612840565b6040810190612867565b15612b9157612a9c6114506114505f546001600160a01b031690565b612acb6020612aaf612a76858989612840565b6040516310d9158b60e31b8152938492839290600484016128d7565b0381855afa908115612039575f91612b73575b50612b22575b506001905b612af4818686612840565b35612b17610e228b61296e876001600160a01b03165f52601c60205260405f2090565b9055019291906129f6565b819250602090611f2d612a76612b39948888612840565b03915afa8015612039576001915f91612b55575b509190612ae4565b612b6d915060203d811161203257612024818361238a565b5f612b4d565b612b8b915060203d81116124c1576124b9818361238a565b5f612ade565b90506001612bab6020612ba5848787612840565b016128ad565b91612ae9565b6129f06129e88861296e6129d05f9796976129ca565b612bd086613366565b6129b0565b631e9acf1760e31b5f5260045ffd5b6129965f612990565b6001600160a01b0381165f526020805260405f20825f5260205260ff60405f2054165f14612c205750600160f81b919050565b612c3b906001600160a01b03165f52602160205260405f2090565b905f526020526001600160a01b03612c5e60405f206001600160a01b0390541690565b1615612c6c57600160f91b90565b5f90565b908160011b91808304600214901517156104ab57565b818102929181159184041417156104ab57565b90816020910312610015575190565b9260809497969592612cd2916001600160a01b03809416865260a0602087015260a08601916128b7565b9616604083015260608201520152565b9b92988598602084848a9f969b9a899f969a908f9a91612d17926040519c8d968796634c09e2c960e01b885260048801612ca8565b038173__$4eed29582e89dabffcea3de7fdb0d1406e$__5af48015612039578c988f612d4a985f93612e39575b50613048565b612d5b611efc611eee368887612724565b15612e2c575050612d9d92602091612d806114506114505f546001600160a01b031690565b9060405180968194829363063c696360e11b8452600484016128d7565b03915afa91821561203957612dbd9284915f91612e0d575b505b86613644565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14612de857505050565b81612dfa575b50505061058c336134c5565b612e05923390613644565b5f8080612dee565b612e26915060203d60201161203257612024818361238a565b5f612db5565b909150612dbd9350612db7565b612e5391935060203d60201161213857612129818361238a565b915f612d44565b91908110156128625760061b0190565b60185460f81b6001600160f81b031916612f76575b333b15612f675783612ea68461296e336001600160a01b03165f52601c60205260405f2090565b5410612bd55791905f92612ecf8361296e336001600160a01b03165f52601c60205260405f2090565b612eda86825461281f565b90555f925b828410612f20575050505003612a3557335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14612f1757565b61058c336134c5565b90919293612f35600191612a57878787612e5a565b94612f41818686612e5a565b35612f5c610e228561296e611eae6020612ba5888d8d612e5a565b905501929190612edf565b633d0c12e760e21b5f5260045ffd5b612f7f83613366565b612e7f565b90612f8e826126f2565b612f9b604051918261238a565b8281528092612fac601f19916126f2565b0190602036910137565b91908110156128625760051b8101359061015e1981360301821215610015570190565b35610d1d81610af3565b93610d1d9896936001600160a01b0360e0979481809516885216602087015260408601521660608401526080830152151560a08201528160c082015201916128b7565b80518210156128625760209160051b010190565b5f1981146104ab5760010190565b9590919396926001600160a01b0381168015159081613232575b50613223576001600160a01b0383168015159081613218575b50613209578588613096926130a49761309e96600a54613791565b923691612724565b906138a1565b6001600160a01b038084169116036131fa576130c2611efc83612451565b611a3357156131a5576130d58282612bed565b600160f81b6001600160f81b03196130ed8585612bed565b16146114ae576001600160f81b031916600160f91b148061313d575b61312e5761058c91611436610f26926001600160a01b03165f526020805260405f2090565b633d83838160e21b5f5260045ffd5b50336001600160a01b0361316961144385611436866001600160a01b03165f52602160205260405f2090565b161415806131095750326001600160a01b0361319d61144385611436866001600160a01b03165f52602160205260405f2090565b161415613109565b906131c1826001600160a01b03165f52602260205260405f2090565b54036131eb576131e2906001600160a01b03165f52602260205260405f2090565b80546001019055565b63193ec5c960e01b5f5260045ffd5b638baa579f60e01b5f5260045ffd5b631c92090760e01b5f5260045ffd5b90503314155f61307b565b63018cc8b960e11b5f5260045ffd5b90503214155f613062565b6003546001600160a01b0381161561326c575f8091368280378136915af43d5f803e15613268573d5ff35b3d5ffd5b6332cea9e160e11b5f5260045ffd5b919092604051928391602083019560a08752600b60c08501526a646973706572736550617960a81b60e0850152610100840160e06040860152835180915261012085019060206101208260051b8801019501915f905b82821061330c57505050506001600160a01b0316606084015261330693608084015260a083015203601f19810183528261238a565b51902090565b919394965091969460208061335260019361011f198d8203018652606060408d51805184526001600160a01b0386820151168685015201519181604082015201906106f7565b9901920192018896949391929795976132d1565b60185460f881901b6001600160f81b031916600160f81b149190826133f0575b82156133a4575b505061339557565b6379d0112560e11b5f5260045ffd5b6001600160f81b031960f89190911b16600160f91b149150816133ca575b505f8061338d565b6133ea9150611406906001600160a01b03165f52602360205260405f2090565b5f6133c2565b6001600160a01b0382165f9081526024602052604090205460ff16159250613386565b908151815190818114938461342a575b5050505090565b602092939450820120920120145f808080613423565b60ff601454161580156134b7575b6134b457601054906014820291808304601414901517156104ab5761058c916001600160a01b036134af92165f52601c60205261349a60405f20610e0d600d546001600160a01b031690565b6134a5828254612312565b9055600854612312565b600855565b50565b50600854600e54111561344e565b60ff6014541615801561351a575b6134b45760105490811582800460011417156104ab5761058c916001600160a01b036134af92165f52601c60205261349a60405f20610e0d600d546001600160a01b031690565b50600854600e5411156134d3565b9060ff601454161580156135a2575b61359e5761354f6001600160a01b0391601054612c86565b91165f52601c60205261358060405f206001600160a01b03600d54166001600160a01b03165f5260205260405f2090565b8054918083018093116104ab5761058c926134af9255600854612312565b5050565b50600854600e541115613537565b81156135ba570690565b634e487b7160e01b5f52601260045260245ffd5b5f1943014381116104ab5761363d610d1d915a6040519060208201924083524260408301524460608301523360601b60808301523260601b609483015260a882015260a8815261361f60c88261238a565b51902061363761363260016113db61281f565b6122da565b906135b0565b6001612312565b6018549192916001600160a01b03919060f81b6001600160f81b0319166136e6575b1691825f52601c60205261368e8260405f20906001600160a01b03165f5260205260405f2090565b5490848210612bd5578461296e926136de955f52601c602052036136c68460405f20906001600160a01b03165f5260205260405f2090565b556001600160a01b03165f52601c60205260405f2090565b908154019055565b6136ef83613366565b613666565b805191908290602001825e015f815290565b9391959492909560405196879560208701613720916136f4565b600b60fa1b8152600101613733916136f4565b600b60fa1b8152600101613746916136f4565b600b60fa1b8152600101613759916136f4565b600b60fa1b815260010161376c916136f4565b600b60fa1b815260010161377f916136f4565b03601f198101835261058c908361238a565b6137a56137ab919796949795939295613a13565b94613bdb565b6137b3613b69565b9160306137bf84613bad565b5360786137cb84613bba565b535f5b602081106137fd5750506137f76137f16137eb610d1d9899613bdb565b94613a13565b94613ccb565b94613706565b81811a61381e61381860f483901b600f60f81b165b60f81c90565b60ff1690565b90601082101561286257600f916f181899199a1a9b1b9c1cb0b131b232b360811b901a61385b61385561385086612c70565b6122e8565b88613bca565b5316906010821015612862576001916f181899199a1a9b1b9c1cb0b131b232b360811b901a61389a61389461388f84612c70565b6122f6565b87613bca565b53016137ce565b6138f36139016138b18351613a13565b926040519283916138ed60208401967f19457468657265756d205369676e6564204d6573736167653a0a0000000000008852603a8501906136f4565b906136f4565b03601f19810183528261238a565b51902060418251036139a657815f916020809401519160606040820151910151841a92601b841061398f575b906139719161394b60ff8616601b8114908115613984575b50613d27565b604051948594859094939260ff6060936080840197845216602083015260408201520152565b838052039060015afa15612039575f5190565b601c9150145f613945565b929061399d61397192613d15565b9390915061392d565b60405162461bcd60e51b815260206004820152601860248201527f496e76616c6964207369676e6174757265206c656e67746800000000000000006044820152606490fd5b906139f582612709565b613a02604051918261238a565b8281528092612fac601f1991612709565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015613b46575b806d04ee2d6d415b85acef8100000000600a921015613b2a575b662386f26fc10000811015613b15575b6305f5e100811015613b03575b612710811015613af3575b6064811015613ae4575b1015613ad9575b613ac46021613a99600185016139eb565b938401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b600a82061a8353600a900490565b8015613ad457613ac49091613a9e565b505090565b600190910190613a88565b60029060649004930192613a81565b6004906127109004930192613a77565b6008906305f5e1009004930192613a6c565b601090662386f26fc100009004930192613a5f565b6020906d04ee2d6d415b85acef81000000009004930192613a4f565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104613a35565b60405160809190613b7a838261238a565b6042815291601f1901366020840137565b60405160609190613b9c838261238a565b602a815291601f1901366020840137565b8051156128625760200190565b8051600110156128625760210190565b908151811015612862570160200190565b6001600160a01b0316613bec613b8b565b906030613bf883613bad565b536078613c0483613bba565b535f5b60148110613c1457505090565b613c1d81612304565b602081101561286257613c3f906138189084901a60f41b600f60f81b16613812565b6010811015612862576f181899199a1a9b1b9c1cb0b131b232b360811b901a613c73613c6d61385084612c70565b85613bca565b53613c7d81612304565b60208110156128625782600f911a16906010821015612862576001916f181899199a1a9b1b9c1cb0b131b232b360811b901a613cc4613cbe61388f84612c70565b86613bca565b5301613c07565b15613cf257604051613cde60408261238a565b60048152637472756560e01b602082015290565b604051613d0060408261238a565b600581526466616c736560d81b602082015290565b60ff601b9116019060ff82116104ab57565b15613d2e57565b60405162461bcd60e51b815260206004820152601760248201527f496e76616c6964207369676e61747572652076616c75650000000000000000006044820152606490fdfea2646970667358221220feaa3592c21e9294557b92cf22bc225736906f3c7c922eb1e93819f6e0e9e29e64736f6c63430008210033",sourceMap:"3502:52503:62:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4210:27;;;:68;;;;-1:-1:-1;4193:128:62;;3502:52503;;;;-1:-1:-1;;;;;3502:52503:62;;;;4332:28;3502:52503;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;4332:28;3502:52503;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4515:39;3502:52503;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4430:5;3502:52503;;;;;;;;;;;4470:22;3502:52503;;-1:-1:-1;;3502:52503:62;;;;;;;4515:39;:::i;:::-;-1:-1:-1;1240:4:63;4565:10:62;3502:52503;1240:4:63;3502:52503:62;-1:-1:-1;1240:4:63;3502:52503:62;;;1240:4:63;;3502:52503:62;;1240:4:63;;3502:52503:62;;;4628:37;3502:52503;;;4628:37;3502:52503;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;;;;;;;4515:39;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;-1:-1:-1;;;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;4332:28;-1:-1:-1;3502:52503:62;;;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;4332:28;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4332:28;-1:-1:-1;3502:52503:62;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;4193:128;4296:25;;;-1:-1:-1;4296:25:62;;-1:-1:-1;4296:25:62;4210:68;-1:-1:-1;;;;;;3502:52503:62;;4241:37;4210:68;;3502:52503;-1:-1:-1;3502:52503:62;;;;;;;;;-1:-1:-1;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;-1:-1:-1;;3502:52503:62;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;55070:382;3502:52503;55158:22;3502:52503;;55157:28;3502:52503;;55157:85;;55070:382;55140:120;;55296:19;3502:52503;;;;;;;;;;;;;;;;55413:32;3502:52503;;;;;;;-1:-1:-1;1240:4:63;55334:8:62;1240:4:63;;;-1:-1:-1;1240:4:63;3502:52503:62;;;;;55349:34;3502:52503;;-1:-1:-1;1240:4:63;;;;-1:-1:-1;1240:4:63;55334:69:62;3502:52503;;;55334:69;:::i;:::-;3502:52503;;55413:32;3502:52503;55413:32;:::i;:::-;;3502:52503;55070:382::o;55140:120::-;55253:7;:::o;55157:85::-;3502:52503;55201:13;3502:52503;55218:24;3502:52503;-1:-1:-1;55201:41:62;55157:85;",linkReferences:{"src/library/utils/signature/CoreHashUtils.sol":{CoreHashUtils:[{start:9295,length:20},{start:13413,length:20}]}}},deployedBytecode:{object:"0x60806040526004361015610019575b341561323d575b5f80fd5b5f3560e01c806301ed3f51146104685780630211de41146104635780630761a3ad1461045e57806308351bdd1461045957806309a69f571461045457806309fc69711461044f5780630e18b6811461044a5780630f1f38b2146104455780630faff8e814610440578063147bf6c41461043b57806315ba56e51461043657806317c85152146104315780631d3a4e2d1461042c57806325e3243b14610427578063280e32fb14610422578063286b4b441461041d57806329cca5691461041857806332e26fdc146104135780633625c9011461040e5780633a8cd872146104095780633f54542a14610404578063401dffee146103ff57806347ecd0f6146103fa5780634b366ccc146103f55780634c3b7bdb146103f05780634f3e1efc146103eb5780635300e162146103e657806354a12357146103e157806355160ea6146103dc578063563b6170146103d75780635a2cba27146103d2578063643d430c146103cd5780636a230fb4146103c85780636afe5795146103c35780636c9fa638146103be5780636cd30148146103b9578063766dd07b146103b457806376e6eb7e146103af5780637797e97d146103aa5780637a975c80146103a5578063804ef86f146103a0578063862b37371461039b5780638b62e507146103965780638e0c71ad1461039157806390fcb4ee1461038c57806392ab1f24146103875780639dd18c1514610382578063a574aac41461037d578063a7a096f614610378578063ab82aa0a14610373578063adb6233f1461036e578063ae63d1a714610369578063b139c79714610364578063b38c950a1461035f578063b517ac7d1461035a578063bd26035e14610355578063be726ffd14610350578063c898a6e91461034b578063cd654e3e14610346578063d0e3692d14610341578063d3bca8841461033c578063d4fac45d14610337578063e08290ee14610332578063e4e3cfee1461032d578063e7816eb814610328578063e8163dda14610323578063ef0035291461031e578063ef802613146103195763fa7a2e2a0361000e57612251565b6121b1565b61218b565b61213f565b611ca2565b611c03565b611ba6565b611b60565b611aeb565b611a9d565b611a42565b6119db565b6119be565b611991565b61193b565b6118ba565b611894565b61181f565b6117c1565b611738565b611699565b611653565b6115f0565b611588565b6114e6565b6114cc565b6113b8565b611365565b6112fd565b611281565b61123b565b6111dc565b611193565b611157565b6110ca565b611078565b61103b565b611015565b610fd4565b610f80565b610ea2565b610e4b565b610d86565b610d69565b610d20565b610cba565b610c9d565b610c65565b610c2d565b610c08565b610be0565b610b46565b610a9d565b610a4e565b610a28565b6109b4565b610992565b610975565b61091f565b610873565b6107a5565b6106c6565b610648565b610620565b610603565b6105c2565b61051a565b6104e2565b34610015576020366003190112610015576004356001600160a01b036011541633036104c957600a546104b0575b600a556201518042018042116104ab57600755005b6122c6565b60075442111561049657633ddfdb7f60e11b5f5260045ffd5b636587b01b60e11b5f5260045ffd5b5f91031261001557565b34610015575f366003190112610015576001600160a01b036011541633036104c95761051461ff001960185416601855565b5f601955005b34610015575f366003190112610015576105326123ca565b506060601054601654601754906040805161054c81612333565b8481526020810192835201918252604051928352516020830152516040820152f35b6001600160a01b0381160361001557565b60a4359061058c8261056e565b565b60c4359061058c8261056e565b6024359061058c8261056e565b6064359061058c8261056e565b60e4359061058c8261056e565b34610015576020366003190112610015576001600160a01b036004356105e78161056e565b165f526023602052602060ff60405f2054166040519015158152f35b34610015575f366003190112610015576020601054604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c9575f601555005b34610015575f3660031901126100155760135442106106b7576001600160a01b03601254168033036106a8576106a6906106956040519161068883612333565b6001600160a01b03168252565b5f60208201525f60408201526123e8565b005b63036834cf60e51b5f5260045ffd5b633ec513fd60e01b5f5260045ffd5b346100155760203660031901126100155760206106ed6004356106e88161056e565b612451565b6040519015158152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6020815261010060e061077661076061074086518560208801526101208701906106f7565b602087015160408701526040870151601f198783030160608801526106f7565b6060860151858203601f190160808701526106f7565b60808501516001600160a01b031660a08501529360a081015160c085015260c081015182850152015191015290565b34610015575f366003190112610015575f60e06040516107c481612353565b60608152826020820152606060408201526060808201528260808201528260a08201528260c0820152015261086f6107fa6123ab565b6108026124cf565b8152600a5460208201526108146125a4565b604082015261082161264b565b606082015261084b61083b600d546001600160a01b031690565b6001600160a01b03166080830152565b600e5460a0820152600f5460c082015260105460e08201526040519182918261071b565b0390f35b34610015576020366003190112610015576004356108908161056e565b6001600160a01b03601154168033036104c9576001600160a01b038216818115918215610915575b5050610906576201518042018042116104ab576108fc6106a6936108ec6108dd6123bb565b6001600160a01b039095168552565b6001600160a01b03166020840152565b60408201526123e8565b630f107a8160e11b5f5260045ffd5b149050815f6108b8565b34610015575f366003190112610015576001600160a01b036011541633036104c95760055442106106b75760048054600380546001600160a01b03199081166001600160a01b038416179091551690555f600555005b34610015575f366003190112610015576020600a54604051908152f35b34610015575f36600319011261001557602060ff601454166040519015158152f35b34610015575f366003190112610015576109cc6123ca565b506040516109d981612333565b6018546001600160f81b031960f882901b811680845260f09290921b81166020808501918252601954604095860190815285519485529151909216918301919091525191810191909152606090f35b34610015575f3660031901126100155760206001600160a01b03600d5416604051908152f35b346100155760203660031901126100155760206106ed600435610a708161056e565b6001600160a01b03165f908152601b602052604090205460f81b6001600160f81b031916600160f81b1490565b34610015575f3660031901126100155760206001600160a01b0360035416604051908152f35b9181601f84011215610015578235916001600160401b038311610015576020808501948460051b01011161001557565b8015150361001557565b610104359061058c82610af3565b610124359061058c82610af3565b9181601f84011215610015578235916001600160401b038311610015576020838186019501011161001557565b346100155761014036600319011261001557600435610b648161056e565b6024356001600160401b03811161001557610b83903690600401610ac3565b91604435610b908161056e565b606435608435610b9e61057f565b610ba661058e565b9160e43593610bb3610afd565b9561012435996001600160401b038b1161001557610bd86106a69b3690600401610b19565b9a90996128fd565b34610015575f366003190112610015576001600160a01b036011541633036104c9575f600655005b34610015575f3660031901126100155760206001600160a01b035f5416604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c957600480546001600160a01b03191690555f600555005b34610015575f366003190112610015576001600160a01b036011541633036104c957601e80546001600160a01b03191690555f601f55005b34610015575f366003190112610015576020600e54604051908152f35b34610015576040366003190112610015576020610ce5600435610cdc8161056e565b60243590612bed565b6040516001600160f81b03199091168152f35b604090600319011261001557600435610d108161056e565b90602435610d1d81610af3565b90565b3461001557610d2e36610cf8565b6001600160a01b036011541633036104c9576001600160a01b036106a692165f52602460205260405f209060ff801983541691151516179055565b34610015575f366003190112610015576020600854604051908152f35b34610015575f36600319011261001557600e54600f549081811180610e40575b15610015578181039081116104ab57610dcb91610dc69160011c90612312565b600f55565b610ddf601054610dd96135ce565b90612c86565b610e2a610e22610e00336001600160a01b03165f52601c60205260405f2090565b600d546001600160a01b03165b6001600160a01b03165f5260205260405f2090565b918254612312565b90556106a6610e3b60105460011c90565b601055565b505f19811415610da6565b34610015575f366003190112610015576001600160a01b036011541633036104c95760065442106106b7575f19600e55005b604090600319011261001557600435610e958161056e565b90602435610d1d8161056e565b3461001557610eb036610e7d565b60ff601a541615610f71576001600160a01b038216158015610f60575b610f5157610ef8826001600160a01b036106a694166001600160601b0360a01b5f5416175f55613440565b610f33610f26610f0f5f546001600160a01b031690565b6001600160a01b03165f52601b60205260405f2090565b805460ff19166001179055565b6001600160a01b03166001600160601b0360a01b6002541617600255565b632582a64160e11b5f5260045ffd5b506001600160a01b03811615610ecd565b630169759360e61b5f5260045ffd5b34610015575f366003190112610015575f6020604051610f9f8161236f565b828152015260408051610fb18161236f565b60ff60145416151590818152602060155491019081528251918252516020820152f35b34610015576020366003190112610015576001600160a01b03600435610ff98161056e565b165f526024602052602060ff60405f2054166040519015158152f35b34610015575f3660031901126100155760206001600160a01b0360115416604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c95760175442106106b7576016546010555f6016555f6017555f80f35b34610015575f3660031901126100155760206001600160a01b0360015416604051908152f35b6060906003190112610015576004356110b68161056e565b906024356110c38161056e565b9060443590565b34610015576110d83661109e565b919060ff60f81b60185460f81b16611149575b6001600160a01b0360025416330361113a576001600160a01b0361112b92165f52601c60205260405f20906001600160a01b03165f5260205260405f2090565b80549182018092116104ab5755005b63aab0382b60e01b5f5260045ffd5b61115281613366565b6110eb565b34610015576020366003190112610015576001600160a01b0360043561117c8161056e565b165f526022602052602060405f2054604051908152f35b34610015576111a136610cf8565b6001600160a01b036011541633036104c9576001600160a01b036106a692165f52602360205260405f209060ff801983541691151516179055565b34610015576111ea3661109e565b91906001600160a01b0360025416330361113a576001600160a01b0361122c92165f52601c60205260405f20906001600160a01b03165f5260205260405f2090565b80549182039182116104ab5755005b34610015575f366003190112610015576001600160a01b036011541633036104c95760195442106106b7576018805461ffff19811660089190911c60ff16179055610514565b34610015575f366003190112610015576001600160a01b036011541633036104c957600854600e549061270f820282810461270f14831517156104ab576127109004119081156112f2575b506112e3576201518042018042116104ab57600655005b633cfd42e960e01b5f5260045ffd5b5f191490505f6112cc565b34610015576020366003190112610015576004356001600160a01b036011541633036104c957600e545f1914801590611359575b61134a576016556201518042018042116104ab57601755005b633527678960e01b5f5260045ffd5b50601054811015611331565b34610015576040366003190112610015576004356113828161056e565b6001600160a01b0360243591165f52602160205260405f20905f5260205260206001600160a01b0360405f205416604051908152f35b34610015576040366003190112610015576004356024356113d88161056e565b6001600160a01b038116156114bd57335f526020805261140d6114068360405f20905f5260205260405f2090565b5460ff1690565b6114ae5761145c61145061144384611436336001600160a01b03165f52602160205260405f2090565b905f5260205260405f2090565b546001600160a01b031690565b6001600160a01b031690565b61149f576114826106a692611436336001600160a01b03165f52602160205260405f2090565b906001600160a01b03166001600160601b0360a01b825416179055565b632e81b29360e01b5f5260045ffd5b632a0c4a2360e01b5f5260045ffd5b635ece24d960e11b5f5260045ffd5b34610015575f3660031901126100155760206040515f8152f35b3461001557610160366003190112610015576004356115048161056e565b61150c61059b565b6044356001600160401b0381116100155761152b903690600401610b19565b6115369391936105a8565b60843560a43561154461058e565b9061154d6105b5565b92610104359461155b610b0b565b96610144359a6001600160401b038c11610015576115806106a69c3690600401610b19565b9b909a612ce2565b34610015575f366003190112610015576001600160a01b036011541633036104c957600854600e5461270f81029080820461270f14901517156104ab576127109004116115e1576201518042018042116104ab57601555005b63228f257f60e11b5f5260045ffd5b346100155760203660031901126100155760043561160d8161056e565b6001600160a01b036011541633036104c9576001600160a01b03168015610906576001600160601b0360a01b600454161760045562278d0042018042116104ab57600555005b34610015575f366003190112610015576001600160a01b036011541633036104c95760155442106106b75760145460ff80821615169060ff1916176014555f6015555f80f35b34610015576060366003190112610015576004356001600160401b0381116100155736602382011215610015578060040135906001600160401b038211610015573660248360061b83010111610015576106a691602435906116fa8261056e565b60246044359301612e6a565b91909160408060608301946001600160a01b0381511684526001600160a01b0360208201511660208501520151910152565b34610015575f366003190112610015576117506123ca565b5061086f60405161176081612333565b6001600160a01b036011541681526001600160a01b03601254166020820152601354604082015260405191829182611706565b602435906001600160f81b03198216820361001557565b600435906001600160f81b03198216820361001557565b34610015576040366003190112610015576004356117de8161056e565b6117e6611793565b6001600160a01b03600154163303610015576001600160a01b036106a692165f52601b60205260405f209060f81c60ff19825416179055565b34610015576020366003190112610015576118386117aa565b6001600160a01b036011541633036104c95760038160f81c1015611885576118739061ff00806018549260f01c16169061ff00191617601855565b6201518042018042116104ab57601955005b631fd8bc0560e11b5f5260045ffd5b34610015575f3660031901126100155760206001600160a01b03601d5416604051908152f35b34610015575f366003190112610015576001600160a01b03601154168033036104c9576001600160a01b03905f604080516118f481612333565b8381528260208201520152166001600160601b0360a01b60115416176011556119355f6001600160a01b03166001600160601b0360a01b6012541617601255565b5f601355005b34610015575f366003190112610015576001600160a01b036011541633036104c957601f5442106106b757601e8054601d80546001600160a01b03199081166001600160a01b038416179091551690555f601f55005b34610015575f366003190112610015576001600160a01b036011541633036104c9575f6016819055601755005b34610015575f366003190112610015576020600654604051908152f35b34610015576119e93661109e565b906119f333612451565b15611a3357611a029233613644565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14611a2a57005b6106a6336134c5565b630296e8bf60e61b5f5260045ffd5b34610015575f36600319011261001557611a5a6123ca565b5061086f604051611a6a81612333565b6001600160a01b03601d541681526001600160a01b03601e54166020820152601f54604082015260405191829182611706565b3461001557604036600319011261001557600435611aba8161056e565b6001600160a01b0360243591165f526020805260405f20905f52602052602060ff60405f2054166040519015158152f35b34610015576001600160a01b03611b013661109e565b929091165f52601c602052611b2a8160405f20906001600160a01b03165f5260205260405f2090565b8054908382018092116104ab57556001600160a01b0380600d5416911614611b4e57005b6008549081018091116104ab57600855005b34610015576020611b9d6001600160a01b03611b7b36610e7d565b91165f52601c835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b34610015575f36600319011261001557611bbe6123ca565b5061086f6001600160a01b03600354166001600160a01b03600454166005549060405192611beb84612333565b83526020830152604082015260405191829182611706565b3461001557602036600319011261001557600435611c208161056e565b6001600160a01b036011541633036104c9576001600160a01b03166001600160601b0360a01b601e541617601e556201518042018042116104ab57601f55005b6060602091604081019381526040838201528451809452019201905f5b818110611c8a5750505090565b82511515845260209384019390920191600101611c7d565b34610015576020366003190112610015576004356001600160401b03811161001557611cd2903690600401610ac3565b335f908152601b60205260408120549192909160f81b6001600160f81b031916600160f81b1490611d0284612f84565b9373__$4eed29582e89dabffcea3de7fdb0d1406e$__905f5b818110611d495750505050611d3a575b61086f60405192839283611c60565b611d448133613528565b611d2b565b611d54818386612fb6565b611d5d816128ad565b611d6960c083016128ad565b6020830191611d77836128ad565b926040850190611d878287612867565b909360608801956020611d99886128ad565b938d60808c01359860a08d01359b611dc98d8c6040519a8b9788968796634c09e2c960e01b885260048801612ca8565b03915af4928315612039575f9361210f575b50611de860e08a016128ad565b916101008a013592611dfd6101208c01612fd9565b611e0b6101408d018d612867565b91303b15610015575f96611e3494604051998a988998637d3d171560e11b8a5260048a01612fe3565b038183305af190816120f5575b50611e6257505050505050805f611e5a6001938a613026565b525b01611d1b565b601854969b9660f81b600160f81b6001600160f81b031982161490816120c4575b811561207a575b5061205b578a1561207057611e9f8386612312565b611ece611ec5611eae896128ad565b6001600160a01b03165f52601c60205260405f2090565b610e0d876128ad565b541061205b57611f00611efc611eee611ee7858a612867565b3691612724565b611ef6612899565b90613413565b1590565b1561203e57506020611f4c91611f2d611f266114506114505f546001600160a01b031690565b9188612867565b604051630d3dcb9f60e01b8152948593928492839291600484016128d7565b03915afa908115612039575f9161200b575b506001600160a01b03811615611ff15791611f966001969492611fac96945b611f86866128ad565b90611f90856128ad565b91613644565b81151580611fea575b611fc5575b50505061303a565b95611fc0611fba828a613026565b60019052565b611e5c565b611fda611fd4611fe2946128ad565b916128ad565b903390613644565b5f8080611fa4565b5089611f9f565b505050505094805f6120056001938a613026565b52611e5c565b61202c915060203d8111612032575b612024818361238a565b8101906128e8565b5f611f5e565b503d61201a565b612446565b611fac959391506001969492612056611f96926128ad565b611f7d565b50505050505094805f6120056001938a613026565b611e9f835f612312565b6001600160f81b031916600160f91b14905080612098575b5f611e8a565b506120bf6114066120a8866128ad565b6001600160a01b03165f52602360205260405f2090565b612092565b90506120ef611efc6114066120d8886128ad565b6001600160a01b03165f52602460205260405f2090565b90611e83565b806121035f6121099361238a565b806104d8565b5f611e41565b61213191935060203d8111612138575b612129818361238a565b810190612c99565b915f611ddb565b503d61211f565b34610015576040366003190112610015576106a660043561215f8161056e565b6001600160a01b0361216f611793565b91165f52601b60205260405f209060f81c60ff19825416179055565b34610015575f36600319011261001557602060185460f81b6040519060ff60f81b168152f35b3461001557602036600319011261001557600435335f526020805260405f20815f5260205260ff60405f2054166114ae57335f5260216020526001600160a01b0361220a6114438360405f20905f5260205260405f2090565b1615612242576122326106a691611436336001600160a01b03165f52602160205260405f2090565b80546001600160a01b0319169055565b63eb54a44d60e01b5f5260045ffd5b346100155760e03660031901126100155760043561226e8161056e565b6024359061227b8261056e565b606435916122888361056e565b60a43560843561229782610af3565b60c435946001600160401b038611610015576122ba6106a6963690600401610b19565b95909460443591613048565b634e487b7160e01b5f52601160045260245ffd5b90600182018092116104ab57565b60020190816002116104ab57565b60030190816003116104ab57565b90600c82018092116104ab57565b919082018092116104ab57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761234e57604052565b61231f565b61010081019081106001600160401b0382111761234e57604052565b604081019081106001600160401b0382111761234e57604052565b90601f801991011681019081106001600160401b0382111761234e57604052565b6040519061058c6101008361238a565b6040519061058c60608361238a565b604051906123d782612333565b5f6040838281528260208201520152565b6040906001600160a01b038151166001600160601b0360a01b60115416176011556001600160a01b036020820151166001600160601b0360a01b60125416176012550151601355565b908160209103126100155751610d1d81610af3565b6040513d5f823e3d90fd5b6001600160a01b03601d541680156124c8576040516385c99e2b60e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115612039575f9161249f575090565b610d1d915060203d6020116124c1575b6124b9818361238a565b810190612431565b503d6124af565b5050600190565b604051905f6009548060011c9160018216801561259a575b602084108114612586578386528592602084019190811561256d5750600114612518575b5061058c9250038361238a565b60095f90815291507f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b848310612556575061058c9350015f61250b565b805482840152869350602090920191600101612542565b60ff191682525061058c93151560051b0190505f61250b565b634e487b7160e01b5f52602260045260245ffd5b92607f16926124e7565b604051905f600b548060011c91600182168015612641575b602084108114612586578386528592602084019190811561256d57506001146125ec575061058c9250038361238a565b600b5f90815291507f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db95b84831061262a575061058c9350015f61250b565b805482840152869350602090920191600101612616565b92607f16926125bc565b604051905f600c548060011c916001821680156126e8575b602084108114612586578386528592602084019190811561256d5750600114612693575061058c9250038361238a565b600c5f90815291507fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b8483106126d1575061058c9350015f61250b565b8054828401528693506020909201916001016126bd565b92607f1692612663565b6001600160401b03811161234e5760051b60200190565b6001600160401b03811161234e57601f01601f191660200190565b92919261273082612709565b9161273e604051938461238a565b829481845281830111610015578281602093845f960137010152565b929192612766826126f2565b93612774604051958661238a565b602085848152019260051b8201918183116100155780935b83851061279a575050505050565b84356001600160401b0381116100155782019060608285031261001557604051916127c483612333565b8035835260208101356127d68161056e565b60208401526040810135906001600160401b03821161001557019084601f830112156100155760209261280f8684868096359101612724565b604082015281520194019361278c565b919082039182116104ab57565b634e487b7160e01b5f52603260045260245ffd5b91908110156128625760051b81013590605e1981360301821215610015570190565b61282c565b903590601e198136030182121561001557018035906001600160401b0382116100155760200191813603831361001557565b604051906128a860208361238a565b5f8252565b35610d1d8161056e565b908060209392818452848401375f828201840152601f01601f1916010190565b916020610d1d9381815201916128b7565b908160209103126100155751610d1d8161056e565b9681999296612925878761292c999f989c95979e978f90612920908d369161275a565b61327b565b9089613048565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14936129848661296e856001600160a01b03165f52601c60205260405f2090565b906001600160a01b03165f5260205260405f2090565b548515612be457612996885b86612312565b11612bd55760185460f81b6001600160f81b031916612bc7575b5f928515612bb1576129f06129e88861296e6129d08c9796975b8a612312565b946001600160a01b03165f52601c60205260405f2090565b91825461281f565b90555f91825b828410612a44575050505003612a3557612a0e575050565b610e22612a3191612a1e336134c5565b335f908152601c6020526040902061296e565b9055565b63162908e360e11b5f5260045ffd5b90919293612a5e90612a57868686612840565b3590612312565b93612a80611efc611eee611ee7612a76858989612840565b6040810190612867565b15612b9157612a9c6114506114505f546001600160a01b031690565b612acb6020612aaf612a76858989612840565b6040516310d9158b60e31b8152938492839290600484016128d7565b0381855afa908115612039575f91612b73575b50612b22575b506001905b612af4818686612840565b35612b17610e228b61296e876001600160a01b03165f52601c60205260405f2090565b9055019291906129f6565b819250602090611f2d612a76612b39948888612840565b03915afa8015612039576001915f91612b55575b509190612ae4565b612b6d915060203d811161203257612024818361238a565b5f612b4d565b612b8b915060203d81116124c1576124b9818361238a565b5f612ade565b90506001612bab6020612ba5848787612840565b016128ad565b91612ae9565b6129f06129e88861296e6129d05f9796976129ca565b612bd086613366565b6129b0565b631e9acf1760e31b5f5260045ffd5b6129965f612990565b6001600160a01b0381165f526020805260405f20825f5260205260ff60405f2054165f14612c205750600160f81b919050565b612c3b906001600160a01b03165f52602160205260405f2090565b905f526020526001600160a01b03612c5e60405f206001600160a01b0390541690565b1615612c6c57600160f91b90565b5f90565b908160011b91808304600214901517156104ab57565b818102929181159184041417156104ab57565b90816020910312610015575190565b9260809497969592612cd2916001600160a01b03809416865260a0602087015260a08601916128b7565b9616604083015260608201520152565b9b92988598602084848a9f969b9a899f969a908f9a91612d17926040519c8d968796634c09e2c960e01b885260048801612ca8565b038173__$4eed29582e89dabffcea3de7fdb0d1406e$__5af48015612039578c988f612d4a985f93612e39575b50613048565b612d5b611efc611eee368887612724565b15612e2c575050612d9d92602091612d806114506114505f546001600160a01b031690565b9060405180968194829363063c696360e11b8452600484016128d7565b03915afa91821561203957612dbd9284915f91612e0d575b505b86613644565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14612de857505050565b81612dfa575b50505061058c336134c5565b612e05923390613644565b5f8080612dee565b612e26915060203d60201161203257612024818361238a565b5f612db5565b909150612dbd9350612db7565b612e5391935060203d60201161213857612129818361238a565b915f612d44565b91908110156128625760061b0190565b60185460f81b6001600160f81b031916612f76575b333b15612f675783612ea68461296e336001600160a01b03165f52601c60205260405f2090565b5410612bd55791905f92612ecf8361296e336001600160a01b03165f52601c60205260405f2090565b612eda86825461281f565b90555f925b828410612f20575050505003612a3557335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14612f1757565b61058c336134c5565b90919293612f35600191612a57878787612e5a565b94612f41818686612e5a565b35612f5c610e228561296e611eae6020612ba5888d8d612e5a565b905501929190612edf565b633d0c12e760e21b5f5260045ffd5b612f7f83613366565b612e7f565b90612f8e826126f2565b612f9b604051918261238a565b8281528092612fac601f19916126f2565b0190602036910137565b91908110156128625760051b8101359061015e1981360301821215610015570190565b35610d1d81610af3565b93610d1d9896936001600160a01b0360e0979481809516885216602087015260408601521660608401526080830152151560a08201528160c082015201916128b7565b80518210156128625760209160051b010190565b5f1981146104ab5760010190565b9590919396926001600160a01b0381168015159081613232575b50613223576001600160a01b0383168015159081613218575b50613209578588613096926130a49761309e96600a54613791565b923691612724565b906138a1565b6001600160a01b038084169116036131fa576130c2611efc83612451565b611a3357156131a5576130d58282612bed565b600160f81b6001600160f81b03196130ed8585612bed565b16146114ae576001600160f81b031916600160f91b148061313d575b61312e5761058c91611436610f26926001600160a01b03165f526020805260405f2090565b633d83838160e21b5f5260045ffd5b50336001600160a01b0361316961144385611436866001600160a01b03165f52602160205260405f2090565b161415806131095750326001600160a01b0361319d61144385611436866001600160a01b03165f52602160205260405f2090565b161415613109565b906131c1826001600160a01b03165f52602260205260405f2090565b54036131eb576131e2906001600160a01b03165f52602260205260405f2090565b80546001019055565b63193ec5c960e01b5f5260045ffd5b638baa579f60e01b5f5260045ffd5b631c92090760e01b5f5260045ffd5b90503314155f61307b565b63018cc8b960e11b5f5260045ffd5b90503214155f613062565b6003546001600160a01b0381161561326c575f8091368280378136915af43d5f803e15613268573d5ff35b3d5ffd5b6332cea9e160e11b5f5260045ffd5b919092604051928391602083019560a08752600b60c08501526a646973706572736550617960a81b60e0850152610100840160e06040860152835180915261012085019060206101208260051b8801019501915f905b82821061330c57505050506001600160a01b0316606084015261330693608084015260a083015203601f19810183528261238a565b51902090565b919394965091969460208061335260019361011f198d8203018652606060408d51805184526001600160a01b0386820151168685015201519181604082015201906106f7565b9901920192018896949391929795976132d1565b60185460f881901b6001600160f81b031916600160f81b149190826133f0575b82156133a4575b505061339557565b6379d0112560e11b5f5260045ffd5b6001600160f81b031960f89190911b16600160f91b149150816133ca575b505f8061338d565b6133ea9150611406906001600160a01b03165f52602360205260405f2090565b5f6133c2565b6001600160a01b0382165f9081526024602052604090205460ff16159250613386565b908151815190818114938461342a575b5050505090565b602092939450820120920120145f808080613423565b60ff601454161580156134b7575b6134b457601054906014820291808304601414901517156104ab5761058c916001600160a01b036134af92165f52601c60205261349a60405f20610e0d600d546001600160a01b031690565b6134a5828254612312565b9055600854612312565b600855565b50565b50600854600e54111561344e565b60ff6014541615801561351a575b6134b45760105490811582800460011417156104ab5761058c916001600160a01b036134af92165f52601c60205261349a60405f20610e0d600d546001600160a01b031690565b50600854600e5411156134d3565b9060ff601454161580156135a2575b61359e5761354f6001600160a01b0391601054612c86565b91165f52601c60205261358060405f206001600160a01b03600d54166001600160a01b03165f5260205260405f2090565b8054918083018093116104ab5761058c926134af9255600854612312565b5050565b50600854600e541115613537565b81156135ba570690565b634e487b7160e01b5f52601260045260245ffd5b5f1943014381116104ab5761363d610d1d915a6040519060208201924083524260408301524460608301523360601b60808301523260601b609483015260a882015260a8815261361f60c88261238a565b51902061363761363260016113db61281f565b6122da565b906135b0565b6001612312565b6018549192916001600160a01b03919060f81b6001600160f81b0319166136e6575b1691825f52601c60205261368e8260405f20906001600160a01b03165f5260205260405f2090565b5490848210612bd5578461296e926136de955f52601c602052036136c68460405f20906001600160a01b03165f5260205260405f2090565b556001600160a01b03165f52601c60205260405f2090565b908154019055565b6136ef83613366565b613666565b805191908290602001825e015f815290565b9391959492909560405196879560208701613720916136f4565b600b60fa1b8152600101613733916136f4565b600b60fa1b8152600101613746916136f4565b600b60fa1b8152600101613759916136f4565b600b60fa1b815260010161376c916136f4565b600b60fa1b815260010161377f916136f4565b03601f198101835261058c908361238a565b6137a56137ab919796949795939295613a13565b94613bdb565b6137b3613b69565b9160306137bf84613bad565b5360786137cb84613bba565b535f5b602081106137fd5750506137f76137f16137eb610d1d9899613bdb565b94613a13565b94613ccb565b94613706565b81811a61381e61381860f483901b600f60f81b165b60f81c90565b60ff1690565b90601082101561286257600f916f181899199a1a9b1b9c1cb0b131b232b360811b901a61385b61385561385086612c70565b6122e8565b88613bca565b5316906010821015612862576001916f181899199a1a9b1b9c1cb0b131b232b360811b901a61389a61389461388f84612c70565b6122f6565b87613bca565b53016137ce565b6138f36139016138b18351613a13565b926040519283916138ed60208401967f19457468657265756d205369676e6564204d6573736167653a0a0000000000008852603a8501906136f4565b906136f4565b03601f19810183528261238a565b51902060418251036139a657815f916020809401519160606040820151910151841a92601b841061398f575b906139719161394b60ff8616601b8114908115613984575b50613d27565b604051948594859094939260ff6060936080840197845216602083015260408201520152565b838052039060015afa15612039575f5190565b601c9150145f613945565b929061399d61397192613d15565b9390915061392d565b60405162461bcd60e51b815260206004820152601860248201527f496e76616c6964207369676e6174757265206c656e67746800000000000000006044820152606490fd5b906139f582612709565b613a02604051918261238a565b8281528092612fac601f1991612709565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015613b46575b806d04ee2d6d415b85acef8100000000600a921015613b2a575b662386f26fc10000811015613b15575b6305f5e100811015613b03575b612710811015613af3575b6064811015613ae4575b1015613ad9575b613ac46021613a99600185016139eb565b938401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b600a82061a8353600a900490565b8015613ad457613ac49091613a9e565b505090565b600190910190613a88565b60029060649004930192613a81565b6004906127109004930192613a77565b6008906305f5e1009004930192613a6c565b601090662386f26fc100009004930192613a5f565b6020906d04ee2d6d415b85acef81000000009004930192613a4f565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104613a35565b60405160809190613b7a838261238a565b6042815291601f1901366020840137565b60405160609190613b9c838261238a565b602a815291601f1901366020840137565b8051156128625760200190565b8051600110156128625760210190565b908151811015612862570160200190565b6001600160a01b0316613bec613b8b565b906030613bf883613bad565b536078613c0483613bba565b535f5b60148110613c1457505090565b613c1d81612304565b602081101561286257613c3f906138189084901a60f41b600f60f81b16613812565b6010811015612862576f181899199a1a9b1b9c1cb0b131b232b360811b901a613c73613c6d61385084612c70565b85613bca565b53613c7d81612304565b60208110156128625782600f911a16906010821015612862576001916f181899199a1a9b1b9c1cb0b131b232b360811b901a613cc4613cbe61388f84612c70565b86613bca565b5301613c07565b15613cf257604051613cde60408261238a565b60048152637472756560e01b602082015290565b604051613d0060408261238a565b600581526466616c736560d81b602082015290565b60ff601b9116019060ff82116104ab57565b15613d2e57565b60405162461bcd60e51b815260206004820152601760248201527f496e76616c6964207369676e61747572652076616c75650000000000000000006044820152606490fdfea2646970667358221220feaa3592c21e9294557b92cf22bc225736906f3c7c922eb1e93819f6e0e9e29e64736f6c63430008210033",sourceMap:"3502:52503:62:-:0;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;5743:19;3502:52503;5739:147;;3502:52503;5743:19;3502:52503;5983:8;5965:15;3502:52503;5965:15;;3502:52503;;;5938:53;3502:52503;;;;:::i;5739:147::-;5805:24;3502:52503;5787:15;:42;5783:92;5739:147;5783:92;5854:21;;;-1:-1:-1;5854:21:62;3502:52503;-1:-1:-1;5854:21:62;3641:64;3681:24;;;-1:-1:-1;3681:24:62;3502:52503;-1:-1:-1;3681:24:62;3502:52503;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;31975:26;3502:52503;;31975:10;3502:52503;;31975:10;3502:52503;;31975:26;3502:52503;32011:23;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;42752:19;3502:52503;42799:20;3502:52503;42851:24;3502:52503;;;;;;;;:::i;:::-;;;;42692:198;;;3502:52503;;;42692:198;3502:52503;;;;;;;;;42692:198;3502:52503;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;;;:::i;:::-;;-1:-1:-1;3502:52503:62;49468:8;3502:52503;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;42228:19;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;3502:52503;31110:35;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;35104:18;3502:52503;35086:15;:36;35082:93;;-1:-1:-1;;;;;35204:14:62;3502:52503;;35190:10;;:28;35186:88;;3502:52503;;35293:147;3502:52503;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;35293:147;3502:52503;35293:147;;;3502:52503;;;35293:147;;3502:52503;;:::i;:::-;;35186:88;35239:35;;;3502:52503;35239:35;3502:52503;;35239:35;35082:93;35143:32;;;3502:52503;35143:32;3502:52503;;35143:32;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;-1:-1:-1;;3502:52503:62;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;;:27;3641:64;;-1:-1:-1;;;;;3502:52503:62;;34291:23;;;:53;;;;;3502:52503;34287:107;;;;1387:6:63;34546:15:62;3502:52503;34546:15;;3502:52503;;;34413:185;3502:52503;;34413:185;3502:52503;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;;;34413:185;-1:-1:-1;;;;;3502:52503:62;;34413:185;;3502:52503;;34413:185;;;;3502:52503;;:::i;34287:107::-;34365:29;;;-1:-1:-1;34365:29:62;3502:52503;-1:-1:-1;34365:29:62;34291:53;34318:26;;-1:-1:-1;34291:53:62;;;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;33683:26;3502:52503;33665:15;:44;33661:101;;3502:52503;;;33773:46;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;-1:-1:-1;33683:26:62;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;40372:19;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;49846:22;3502:52503;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;;;;;:::i;:::-;48754:10;3502:52503;-1:-1:-1;;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;39574:34:62;3502:52503;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;;41787:124;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;43816:21:62;3502:52503;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;3502:52503;29423:25;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;3502:52503;;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;33467:30:62;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;25276:29;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;25328:33:62;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;43196:24;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;-1:-1:-1;;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;-1:-1:-1;;;;;32465:25:62;3502:52503;;-1:-1:-1;3502:52503:62;32465:9;3502:52503;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;43483:13;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;36681:24;3502:52503;36708:22;3502:52503;36681:49;;;;:110;;;3502:52503;36664:507;;;3502:52503;;;;;;;;36816:99;3502:52503;36816:99;3502:52503;;;36816:99;;:::i;:::-;36708:22;3502:52503;;36816:99;37005:57;:19;3502:52503;37043:19;;:::i;:::-;37005:57;;:::i;:::-;36929:133;:56;:20;36938:10;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;36929:20;36950:34;3502:52503;-1:-1:-1;;;;;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;36929:56;3502:52503;;;36929:133;:::i;:::-;3502:52503;;37076:45;37098:23;37005:19;3502:52503;;;;;37098:23;37005:19;3502:52503;;36681:110;-1:-1:-1;;;36746:45:62;;;36681:110;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;29547:21;3502:52503;29529:15;:39;29525:96;;-1:-1:-1;;29632:24:62;3502:52503;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;5095:30;3502:52503;;5094:31;5090:67;;-1:-1:-1;;;;;3502:52503:62;;5172:33;:67;;;;3502:52503;5168:117;;5347:36;3502:52503;-1:-1:-1;;;;;5452:34:62;3502:52503;;-1:-1:-1;;;;;3502:52503:62;;5203:1;3502:52503;;;5203:1;3502:52503;5347:36;:::i;:::-;5394:47;:30;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;5394:10;3502:52503;;;;;;;5394:30;3502:52503;;-1:-1:-1;;3502:52503:62;19834:19;3502:52503;;;;5394:47;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;5452:34;3502:52503;;;5452:34;3502:52503;;5168:117;5260:25;;;-1:-1:-1;5260:25:62;3502:52503;-1:-1:-1;5260:25:62;5172:67;3502:52503;-1:-1:-1;;;;;3502:52503:62;;5209:30;5172:67;;5090;5134:23;;;-1:-1:-1;5134:23:62;3502:52503;-1:-1:-1;5134:23:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;50289:22;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;;;:::i;:::-;;-1:-1:-1;3502:52503:62;49107:9;3502:52503;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;44810:5:62;3502:52503;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;30489:24;3502:52503;30471:15;:42;30467:99;;30599:20;3502:52503;30577:19;3502:52503;;30599:20;3502:52503;;30489:24;3502:52503;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;41031:22:62;3502:52503;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;27938:10;3502:52503;;;;27934:71;;3502:52503;-1:-1:-1;;;;;28034:15:62;3502:52503;;28020:10;:29;28016:69;;-1:-1:-1;;;;;28096:21:62;3502:52503;;-1:-1:-1;3502:52503:62;28096:8;3502:52503;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;28096:21;3502:52503;;28096:31;3502:52503;;;;;;;;;28016:69;28058:27;;;-1:-1:-1;28058:27:62;3502:52503;-1:-1:-1;28058:27:62;27934:71;27999:5;;;:::i;:::-;27934:71;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;;;:::i;:::-;;-1:-1:-1;3502:52503:62;47283:13;3502:52503;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;-1:-1:-1;;;;;32616:24:62;3502:52503;;-1:-1:-1;3502:52503:62;32616:8;3502:52503;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;28529:15:62;3502:52503;;28515:10;:29;28511:69;;-1:-1:-1;;;;;28591:21:62;3502:52503;;-1:-1:-1;3502:52503:62;28591:8;3502:52503;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;28591:21;3502:52503;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;32138:23;3502:52503;32120:15;:41;32116:98;;32138:10;3502:52503;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;;32275:26;3502:52503;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;29099:13;3502:52503;29116:24;3502:52503;;29143:4;3502:52503;;;;;29143:4;3502:52503;;;;;;;29151:5;3502:52503;;-1:-1:-1;29099:118:62;;;;;3502:52503;29082:188;;;1387:6:63;29305:15:62;3502:52503;29305:15;;3502:52503;;;29281:65;3502:52503;;29082:188;29235:35;;;3502:52503;29235:35;3502:52503;;29235:35;29099:118;-1:-1:-1;;29172:45:62;;-1:-1:-1;36774:17:62;29099:118;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;29966:24;3502:52503;-1:-1:-1;;29966:45:62;;;;:97;;3502:52503;29949:168;;30127:36;3502:52503;1387:6:63;30200:15:62;3502:52503;30200:15;;3502:52503;;;30173:68;3502:52503;;29949:168;30081:36;;;-1:-1:-1;30081:36:62;3502:52503;-1:-1:-1;30081:36:62;29966:97;3502:52503;30044:19;3502:52503;30027:36;;;29966:97;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;-1:-1:-1;3502:52503:62;45486:26;3502:52503;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;22238:28;22234:70;;22330:10;-1:-1:-1;3502:52503:62;;;;22319:29;;3502:52503;;-1:-1:-1;3502:52503:62;;;;;;;;;;;22319:29;3502:52503;;;;;22319:29;22315:71;;22401:59;:45;;22330:10;22401:38;22330:10;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;22401:38;3502:52503;;;;;;;;;;22401:45;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;22401:45;-1:-1:-1;;;;;3502:52503:62;;;22401:59;22397:117;;22525:45;:62;22330:10;22525:38;22330:10;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;22525:45;3502:52503;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;22397:117;22481:33;;;-1:-1:-1;22481:33:62;3502:52503;-1:-1:-1;22481:33:62;22315:71;22357:29;;;-1:-1:-1;22357:29:62;3502:52503;-1:-1:-1;22357:29:62;22234:70;22275:29;;;-1:-1:-1;22275:29:62;3502:52503;-1:-1:-1;22275:29:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;30784:13;3502:52503;30801:24;3502:52503;30828:4;3502:52503;;;;;;30828:4;3502:52503;;;;;;;30836:5;3502:52503;;-1:-1:-1;30780:128:62;;1387:6:63;30969:15:62;3502:52503;30969:15;;3502:52503;;;30919:35;3502:52503;;30780:128;30862:46;;;3502:52503;30862:46;3502:52503;;30862:46;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;-1:-1:-1;;;;;3502:52503:62;33060:22;;33056:64;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;1554:7:63;33214:15:62;3502:52503;33214:15;;3502:52503;;;33173:100;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;31259:35;3502:52503;31241:15;:53;31237:110;;31259:22;3502:52503;;;;;31388:28;3502:52503;;;;;;31259:22;3502:52503;;31259:35;3502:52503;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;44976:5:62;3502:52503;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;3502:52503:62;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;;3502:52503:62;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;38155:22:62;3502:52503;;38141:10;:36;38137:50;;-1:-1:-1;;;;;38198:25:62;3502:52503;;-1:-1:-1;3502:52503:62;38198:10;3502:52503;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;31739:4;3502:52503;;;31713:31;;31709:69;;31789:31;;3502:52503;;31789:10;3502:52503;;;;;;;;;;;31789:10;3502:52503;;31789:31;1387:6:63;31856:15:62;3502:52503;31856:15;;3502:52503;;;31830:23;3502:52503;;31709:69;31753:25;;;-1:-1:-1;31753:25:62;3502:52503;-1:-1:-1;31753:25:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;47596:20:62;3502:52503;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;;:27;3641:64;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;:::i;:::-;;;;34751:146;;;;3502:52503;34751:146;3502:52503;;-1:-1:-1;;;;;3502:52503:62;;3659:5;3502:52503;;;3659:5;3502:52503;;;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;26108:33;3502:52503;26090:15;:51;26086:108;;26236:29;3502:52503;;26108:20;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;-1:-1:-1;26108:33:62;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;3502:52503;30323:24;3502:52503;;;30357:28;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;50616:21;3502:52503;;;;;;;;;;;;;;:::i;:::-;16975:10;17001:31;16975:10;17001:31;:::i;:::-;17000:32;16996:93;;17138:6;16975:10;;17138:6;:::i;:::-;16975:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;17156:59;;3502:52503;17156:59;17189:26;16975:10;17189:26;:::i;16996:93::-;17053:36;;;-1:-1:-1;17053:36:62;3502:52503;-1:-1:-1;17053:36:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;48044:20:62;3502:52503;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;:::i;:::-;;;;;-1:-1:-1;3502:52503:62;8098:8;3502:52503;;8098:21;3502:52503;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;8098:21;3502:52503;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;8155:34;3502:52503;;;;8146:43;8142:86;;3502:52503;8142:86;8203:25;3502:52503;;;;;;;;;8203:25;3502:52503;;;;;;;41478:21;-1:-1:-1;;;;;3502:52503:62;;;:::i;:::-;;;-1:-1:-1;3502:52503:62;41478:8;3502:52503;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;41478:21;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;-1:-1:-1;;;;;44392:21:62;3502:52503;;-1:-1:-1;;;;;3502:52503:62;;;44495:26;3502:52503;;;;;;;;:::i;:::-;;;44329:207;;;3502:52503;;44329:207;;3502:52503;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;24871:29;3502:52503;;;24871:29;3502:52503;1387:6:63;24973:15:62;3502:52503;24973:15;;3502:52503;;;24925:33;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;:::i;:::-;11294:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;11315:14;11393:28;;;:::i;:::-;11437:21;11710:4;;-1:-1:-1;11460:28:62;;;;;;13706:67;;;;;;11432:2264;3502:52503;11799:19;3502:52503;;;;;;:::i;13706:67::-;13750:22;11294:10;;13750:22;:::i;:::-;13706:67;;11490:11;11527:20;;;;;:::i;:::-;11632:12;;;:::i;:::-;11666:22;;;;;:::i;:::-;3502:52503;11755:18;;;;;;:::i;:::-;11799:19;;;;;;;;;:::i;:::-;11844:13;;;;;;3502:52503;11844:13;;;:::i;:::-;11883:14;;;;;3502:52503;11923:19;;;;3502:52503;;11710:254;3502:52503;;11799:19;3502:52503;;;;;;;;;;;11710:254;;3502:52503;11710:254;;;:::i;:::-;;;;;;;;;;-1:-1:-1;11710:254:62;;;11490:11;11986:22;;3502:52503;11986:22;;;:::i;:::-;12030:13;;;;3502:52503;12065:19;;;;;;:::i;:::-;12106:17;;;;;;:::i;:::-;11582:4;;:559;;;;-1:-1:-1;3502:52503:62;11582:559;3502:52503;11799:19;3502:52503;;;;;;;;;11582:559;;3502:52503;11582:559;;;:::i;:::-;;:4;;;:559;;;;;;11490:11;-1:-1:-1;11562:686:62;;12181:26;;;;;;;3502:52503;12181:26;12305:4;12181:26;;;:::i;:::-;3502:52503;11437:21;3502:52503;11437:21;;11562:686;12283:10;3502:52503;11562:686;;;3502:52503;;-1:-1:-1;;;;;;;;;3502:52503:62;;12283:26;:55;;;;11562:686;12282:132;;;;11562:686;12261:253;;;12551:40;;;;12550:59;12551:40;;12550:59;:::i;:::-;12632:37;:22;12641:12;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;12632:22;12655:13;;;:::i;12632:37::-;3502:52503;-1:-1:-1;12528:242:62;;12788:47;12789:46;3502:52503;12811:19;;;;:::i;:::-;3502:52503;;;:::i;:::-;;;:::i;:::-;12789:46;;:::i;:::-;12788:47;;3502:52503;12788:47;3502:52503;;;;;12864:109;3502:52503;12936:19;12864:50;:31;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;12864:50;12936:19;;;:::i;:::-;11799;3502:52503;-1:-1:-1;;;12864:109:62;;3502:52503;;;;;;;;;;12864:109;;;:::i;:::-;;;;;;;;;;-1:-1:-1;12864:109:62;;;12784:410;12855:118;-1:-1:-1;;;;;12855:118:62;3502:52503;12995:20;12991:123;;12784:410;13340:14;12305:4;12784:410;;;13622:24;12784:410;;;13303:12;;;:::i;:::-;13325:13;;;;:::i;:::-;13340:14;;:::i;:::-;13374:23;;;:41;;;12784:410;13370:237;;12784:410;13622:24;;;;:::i;:::-;13660:25;;;;;;:::i;:::-;12305:4;3502:52503;;;13660:25;11490:11;;13370:237;13535:13;13469:12;13570:19;13469:12;;:::i;:::-;13535:13;;:::i;:::-;11294:10;;13570:19;;:::i;:::-;13370:237;;;;;13374:41;;;;;12991:123;13039:26;;;;;;;3502:52503;13039:26;12305:4;13039:26;;;:::i;:::-;3502:52503;13087:8;;12864:109;;;;3502:52503;12864:109;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;12784:410::-;13622:24;13161:18;;;;12305:4;13161:18;;;;13340:14;13161:18;;:::i;:::-;12784:410;;12528:242;12703:26;;;;;;;;3502:52503;12703:26;12305:4;12703:26;;;:::i;12551:40::-;12550:59;12551:40;-1:-1:-1;12550:59:62;:::i;12282:132::-;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;12360:26:62;;-1:-1:-1;12360:26:62;:53;;12282:132;;;;12360:53;12399:13;12390:23;;12399:13;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;12390:8;3502:52503;;;;;;;12390:23;12360:53;;12283:55;12324:13;;12313:25;12314:24;;12324:13;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;12314:9;3502:52503;;;;;;;12313:25;12283:55;;;11582:559;;;-1:-1:-1;11582:559:62;;;:::i;:::-;;;:::i;:::-;;;;11710:254;;;;;3502:52503;11710:254;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;8489:25;3502:52503;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;:::i;:::-;;;-1:-1:-1;3502:52503:62;8489:10;3502:52503;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;48430:10;3502:52503;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;23465:10;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;23450:71;;23465:10;-1:-1:-1;3502:52503:62;23536:26;3502:52503;;-1:-1:-1;;;;;23536:45:62;;3502:52503;;-1:-1:-1;3502:52503:62;;;;;;;;;;;23536:45;3502:52503;23536:59;23532:113;;23656:45;:58;23465:10;23656:38;23465:10;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;23656:45;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;;;;23532:113;23616:29;;;-1:-1:-1;23616:29:62;3502:52503;-1:-1:-1;23616:29:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;52553:1;3502:52503;;;;;;;:::o;:::-;3815:1:93;3502:52503:62;;;3815:1:93;3502:52503:62;;;:::o;:::-;3880:1:93;3502:52503:62;;;3880:1:93;3502:52503:62;;;:::o;:::-;;2114:2:93;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;3502:52503:62;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;35104:5;3502:52503;;;35104:5;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;51507:243;-1:-1:-1;;;;;51611:20:62;3502:52503;;51611:42;;51607:59;;3502:52503;;-1:-1:-1;;;51683:60:62;;-1:-1:-1;;;;;3502:52503:62;;;51683:60;;;3502:52503;;51683:60;;3502:52503;;;;;;;51683:60;;;;;;;3502:52503;51683:60;;;51676:67;51507:243;:::o;51683:60::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;51607:59;51655:11;;51662:4;51655:11;:::o;3502:52503::-;;;;-1:-1:-1;39095:12:62;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;39095:12;3502:52503;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;-1:-1:-1;3502:52503:62;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;3502:52503:62;;;;;;-1:-1:-1;;3502:52503:62;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;-1:-1:-1;;3502:52503:62;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;14393:1966::-;;;;;;14822:63;14393:1966;;14971:9;14393:1966;;;;;;;;;;3502:52503;14393:1966;3502:52503;;;;:::i;:::-;14822:63;:::i;:::-;14971:9;;;:::i;:::-;15039:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;15065:14;:21;:14;;;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;15065:14;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;15065:21;3502:52503;15099:32;;;;15089:43;15099:32;;15089:43;;:::i;:::-;-1:-1:-1;15061:119:62;;15195:10;3502:52503;;;-1:-1:-1;;;;;;3502:52503:62;15191:71;;15099:32;-1:-1:-1;;15347:32:62;;;;15311:70;:21;15347:32;15311:14;15337:43;15347:32;;;;;15337:43;;:::i;:::-;15311:14;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;15311:21;3502:52503;;;15311:70;:::i;:::-;3502:52503;;-1:-1:-1;;;15435:17:62;;;;;;16159:26;;;;;16155:60;;16226:127;;14393:1966;;:::o;16226:127::-;16300:27;:42;15039:10;16260:26;15039:10;16260:26;:::i;:::-;15039:10;3502:52503;;;;36929:8;3502:52503;;;;;16300:20;3502:52503;16300:42;3502:52503;;14393:1966::o;16155:60::-;16194:21;;;-1:-1:-1;16194:21:62;;-1:-1:-1;16194:21:62;15420:13;15490:9;;;;15470:36;15490:9;;;;;;:::i;:::-;3502:52503;15470:36;;:::i;:::-;15548:9;15525:49;15526:48;3502:52503;15548:21;:9;;;;;:::i;:::-;:21;;;;;:::i;15525:49::-;3502:52503;;;15619:59;:31;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;15619:59;:128;;15704:21;:9;;;;;:::i;:21::-;15548;3502:52503;-1:-1:-1;;;15619:128:62;;3502:52503;;;;;;15619:128;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;15619:128:62;;;15521:496;15594:341;;;15521:496;;3502:52503;15521:496;;16058:9;;;;;:::i;:::-;3502:52503;16031:43;:23;:16;;;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;16031:43;3502:52503;;;;15420:13;;;;15594:341;15873:9;;;15619:128;15873:9;:21;:9;15797:119;15873:9;;;;:::i;15797:119::-;;;;;;;;;3502:52503;15797:119;-1:-1:-1;15797:119:62;;;15594:341;15788:128;15594:341;;;;15797:119;;;;15619:128;15797:119;;;;;;;;;:::i;:::-;;;;15619:128;;;;;;;;;;;;;;:::i;:::-;;;;15521:496;15982:9;;3502:52503;15982:20;;:9;;;;;:::i;:::-;:20;;:::i;:::-;15521:496;;;15347:32;15311:70;:21;15347:32;15311:14;15337:43;-1:-1:-1;15347:32:62;;;;;15191:71;15256:5;;;:::i;:::-;15191:71;;15061:119;15153:27;;;-1:-1:-1;15153:27:62;;-1:-1:-1;15153:27:62;15099:32;15089:43;-1:-1:-1;15099:32:62;;46071:330;-1:-1:-1;;;;;3502:52503:62;;;;46191:10;3502:52503;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;46187:208;46191:23;;;-1:-1:-1;;;;3502:52503:62;46230:11;-1:-1:-1;46230:11:62:o;46187:208::-;46262:32;;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;46262:32;:39;-1:-1:-1;3502:52503:62;;;-1:-1:-1;;;;;46262:39:62;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;;;46262:39;3502:52503;46262:53;3502:52503;;-1:-1:-1;;;3502:52503:62;46331:11::o;46258:137::-;3502:52503;46373:11;:::o;3502:52503::-;;;;;;;;;3815:1:93;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;9575:1168::-;;;;;;10006:166;9575:1168;;;;;;;;;;;;;;;10006:166;9575:1168;3502:52503;;;;;;;;;;10006:166;;;;;;:::i;:::-;;:4;;:166;;;;;;;;;10258:9;10006:166;-1:-1:-1;10006:166:62;;;9575:1168;10258:9;;:::i;:::-;10301:39;10302:38;3502:52503;;;;;:::i;10301:39::-;:187;;;3502:52503;;10355:108;3502:52503;10006:166;3502:52503;10355:65;:31;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;10355:65;3502:52503;;;;;;;;;;;;10355:108;;10006:166;10355:108;;;:::i;:::-;;;;;;;;;;10531:6;10355:108;;;-1:-1:-1;10355:108:62;;;10301:187;;;10531:6;;:::i;:::-;10569:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;10549:188;;9575:1168;;;:::o;10549:188::-;10600:15;10596:89;;10549:188;10569:10;;;10700:26;10569:10;10700:26;:::i;10596:89::-;10673:11;10569:10;;10673:11;;:::i;:::-;10596:89;;;;;10355:108;;;;10006:166;10355:108;10006:166;10355:108;;;;;;;:::i;:::-;;;;10301:187;;;;10531:6;10301:187;;;;10006:166;;;;;;;;;;;;;;;:::i;:::-;;;;;3502:52503;;;;;;;;;;;;:::o;17491:863::-;17647:10;3502:52503;;;-1:-1:-1;;;;;;3502:52503:62;17643:71;;17491:863;17740:10;811:123:94;952:9;17761:53:62;;17740:10;17829:21;17740:10;17829:14;17740:10;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;17829:21;3502:52503;17829:30;17825:70;;17906:28;;17647:18;17740:10;17945:21;17740:10;17945:14;17740:10;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;17945:21;:31;3502:52503;;;17945:31;:::i;:::-;3502:52503;;17647:18;17987:232;18007:17;;;;;;18233:26;;;;;18229:60;;17740:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;18300:47;;17491:863::o;18300:47::-;18327:20;17740:10;18327:20;:::i;17992:13::-;18062:9;;;;18042:36;3502:52503;18062:9;;;;;;:::i;18042:36::-;18132:9;;;;;;:::i;:::-;3502:52503;18092:56;:36;18101:9;18092:29;18101:19;;:9;;;;;:::i;18092:56::-;3502:52503;;;17992:13;;;;;17761:53;17799:15;;;17647:18;17799:15;;17647:18;17799:15;17643:71;17708:5;;;:::i;:::-;17643:71;;3502:52503;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;3502:52503:62;;;;;;;:::o;19105:1843::-;;;;;;;-1:-1:-1;;;;;3502:52503:62;;19451:28;;;:63;;;;19105:1843;19447:124;;;-1:-1:-1;;;;;3502:52503:62;;19586:28;;;:63;;;;19105:1843;19582:117;;;3502:52503;;19775:261;3502:52503;19727:350;3502:52503;;;19834:19;3502:52503;19775:261;:::i;:::-;3502:52503;;;;:::i;:::-;19727:350;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;;19727:358;19710:417;;20142:32;20143:31;;;:::i;20142:32::-;20138:93;;20242:700;;;20294:29;;;;:::i;:::-;-1:-1:-1;;;;;;;;;20341:29:62;;;;:::i;:::-;3502:52503;20341:37;20337:95;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;20468:19:62;;:177;;20242:700;20447:264;;20726:30;:16;;:23;:16;-1:-1:-1;;;;;3502:52503:62;;;20726:10;3502:52503;;;;;;;20447:264;20667:44;;;19477:1;20667:44;;19477:1;20667:44;20468:177;19383:10;;-1:-1:-1;;;;;20508:39:62;;:32;;;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;20508:39;3502:52503;20508:56;;;20468:177;20508:136;19427:9;;-1:-1:-1;;;;;20588:39:62;;:32;;;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;20588:39;3502:52503;20588:56;;20468:177;;20242:700;20800:19;;;-1:-1:-1;;;;;3502:52503:62;;;20800:13;3502:52503;;;;;;;20800:19;3502:52503;20791:28;20787:66;;20898:19;;-1:-1:-1;;;;;3502:52503:62;;;20800:13;3502:52503;;;;;;;20898:19;3502:52503;;;;;;14393:1966::o;20787:66::-;20828:25;;;19477:1;20828:25;;19477:1;20828:25;19710:417;20103:24;;;19477:1;20103:24;;19477:1;20103:24;19582:117;19670:29;;;19477:1;19670:29;;19477:1;19670:29;19586:63;19383:10;;;19618:31;;19586:63;;;19447:124;19535:36;;;19477:1;19535:36;;19477:1;19535:36;19451:63;19427:9;;;19483:31;;19451:63;;;6244:1312;6278:21;3502:52503;-1:-1:-1;;;;;3502:52503:62;;6278:35;6274:93;;-1:-1:-1;6378:1172:62;;;;;;;;;;;;-1:-1:-1;6378:1172:62;;;;;;-1:-1:-1;6378:1172:62;;;-1:-1:-1;6378:1172:62;6274:93;6334:33;;;-1:-1:-1;6334:33:62;;-1:-1:-1;6334:33:62;1876:459:100;;;;3502:52503:62;;2135:179:100;;;;;;3502:52503:62;;;;;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;2135:179:100;3502:52503:62;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;-1:-1:-1;;;;;;;;;3502:52503:62;;;;;2135:179:100;;3502:52503:62;;;;;;;;2135:179:100;-1:-1:-1;;2135:179:100;;;;;;:::i;:::-;3502:52503:62;2108:220:100;;1876:459;:::o;3502:52503:62:-;;;;;;;;;2135:179:100;3502:52503:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;55735:268;55834:10;3502:52503;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;55834:26:62;;3502:52503;55834:26;:47;;55735:268;55833:112;;;;55735:268;55816:180;;;;55735:268::o;55816:180::-;55963:33;;;-1:-1:-1;55963:33:62;;-1:-1:-1;55963:33:62;55833:112;-1:-1:-1;;;;;;3502:52503:62;;;;;;-1:-1:-1;;;55899:26:62;;-1:-1:-1;55899:26:62;:45;;55833:112;;;;;;55899:45;55929:15;;;;;-1:-1:-1;;;;;3502:52503:62;;;12390:8;3502:52503;;;;;;;55929:15;55899:45;;;55834:47;-1:-1:-1;;;;;3502:52503:62;;-1:-1:-1;3502:52503:62;;;55865:9;3502:52503;;;;;;;;55864:17;;-1:-1:-1;55834:47:62;;2462:228:93;;3502:52503:62;;;;2591:34:93;;;;:92;;;;2462:228;2572:111;;;;2462:228;:::o;2591:92::-;3502:52503:62;;;;;;;2641:19:93;3502:52503:62;;2664:19:93;2641:42;2591:92;;;;;;55070:382:62;3502:52503;5380:2;3502:52503;;55157:28;3502:52503;;55157:85;;55070:382;55140:120;;55296:19;3502:52503;55296:28;5380:2;3502:52503;;;;;;5380:2;3502:52503;;;;;;;55413:32;3502:52503;-1:-1:-1;;;;;55413:32:62;3502:52503;;-1:-1:-1;3502:52503:62;55334:8;3502:52503;;55334:50;3502:52503;-1:-1:-1;3502:52503:62;;55349:34;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;55334:50;:69;3502:52503;;;55334:69;:::i;:::-;3502:52503;;55413:32;3502:52503;55413:32;:::i;:::-;;3502:52503;;55140:120;55253:7;:::o;55157:85::-;3502:52503;55201:13;3502:52503;55218:24;3502:52503;-1:-1:-1;55201:41:62;55157:85;;55070:382;3502:52503;55158:22;3502:52503;;55157:28;3502:52503;;55157:85;;55070:382;55140:120;;55296:19;3502:52503;;;;;;;17213:1;3502:52503;;;;;55413:32;3502:52503;-1:-1:-1;;;;;55413:32:62;3502:52503;;-1:-1:-1;3502:52503:62;55334:8;3502:52503;;55334:50;3502:52503;-1:-1:-1;3502:52503:62;;55349:34;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;55157:85;3502:52503;55201:13;3502:52503;55218:24;3502:52503;-1:-1:-1;55201:41:62;55157:85;;55070:382;;3502:52503;55158:22;3502:52503;;55157:28;3502:52503;;55157:85;;55070:382;55140:120;;55296:28;-1:-1:-1;;;;;3502:52503:62;55296:19;3502:52503;55296:28;:::i;:::-;3502:52503;;-1:-1:-1;3502:52503:62;55334:8;3502:52503;;55334:50;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;55349:34:62;3502:52503;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;55334:50;3502:52503;;55334:69;3502:52503;;;;;;;;55413:32;3502:52503;55413:32;3502:52503;;55413:32;3502:52503;55413:32;:::i;55140:120::-;55253:7;;:::o;55157:85::-;3502:52503;55201:13;3502:52503;55218:24;3502:52503;-1:-1:-1;55201:41:62;55157:85;;3502:52503;;;;;;;:::o;:::-;;;;;;;;;;;;52311:516;36774:17;;52538:12;3502:52503;52538:12;3502:52503;;;;52791:28;52784:36;52715:9;;3502:52503;;52490:252;;;;52528:27;;3502:52503;;52577:15;3502:52503;;;;52614:16;3502:52503;;;;52652:10;3502:52503;;;;;;52684:9;3502:52503;;;;;;;;;;;52490:252;;;;;;:::i;:::-;3502:52503;52463:293;;52805:13;:9;37054:1;37057:4;52805:9;:::i;:::-;:13;:::i;:::-;52791:28;;:::i;:::-;37054:1;52784:36;:::i;53797:468::-;53938:10;3502:52503;53797:468;;;-1:-1:-1;;;;;3502:52503:62;53797:468;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;53934:71;;53797:468;3502:52503;;;-1:-1:-1;3502:52503:62;54038:8;3502:52503;;54038:21;3502:52503;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;54038:21;3502:52503;54073:19;;;;54069:59;;3502:52503;54220:12;3502:52503;54220:19;3502:52503;-1:-1:-1;3502:52503:62;54038:8;3502:52503;;;54163:21;3502:52503;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;54163:21;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;54220:19;3502:52503;;;;;;53797:468::o;53934:71::-;53999:5;;;:::i;:::-;53934:71;;3502:52503;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;4851:673:93:-;5154:20;5213:31;4851:673;;;;;;;;;5154:20;:::i;:::-;5213:31;;:::i;:::-;3687:13;;:::i;:::-;3710:15;;;;;:::i;:::-;;3735;;;;:::i;:::-;;-1:-1:-1;3781:6:93;3785:2;3781:6;;;;5350:31;;5478:25;5420:19;5350:31;5123:394;5350:31;;;:::i;:::-;5420:19;;:::i;:::-;5478:25;;:::i;:::-;5123:394;;:::i;3789:3::-;3845:7;;;3828:31;3839:19;634:18;;;;-1:-1:-1;;;3502:52503:62;3845:12:93;3502:52503:62;;;;3839:19:93;3502:52503:62;;;;3828:31:93;;;;;;;;3920:4;;-1:-1:-1;;;3828:31:93;;3808:51;3815:9;3819:5;;;:::i;:::-;3815:9;:::i;:::-;3808:51;;:::i;:::-;;3502:52503:62;3893:33:93;3828:31;3893:33;;;;;3742:1;;-1:-1:-1;;;3893:33:93;;3873:53;3880:9;3884:5;;;:::i;:::-;3880:9;:::i;:::-;3873:53;;:::i;:::-;;3502:52503:62;3766:13:93;;1338:487:86;3502:52503:62;1517:174:86;1601:51;3502:52503:62;;1601:51:86;:::i;:::-;3502:52503:62;;;1517:174:86;;;3502:52503:62;1517:174:86;;;3502:52503:62;;;;;;;;;:::i;:::-;;;:::i;:::-;1517:174:86;3502:52503:62;;1517:174:86;;;;;;:::i;:::-;3502:52503:62;1494:207:86;;2570:2;3502:52503:62;;2550:22:86;3502:52503:62;;2612:158:86;-1:-1:-1;2612:158:86;1517:174;2612:158;;;;;;3502:52503:62;2612:158:86;;;;;;;;2821:6;2825:2;2821:6;;2817:44;;1338:487;3502:52503:62;1787:31:86;3502:52503:62;2870:54:86;3502:52503:62;;;2825:2:86;2878:7;;:18;;;;;1338:487;2870:54;;:::i;:::-;3502:52503:62;;1787:31:86;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;1787:31:86;;;;;;;;;;;;-1:-1:-1;1787:31:86;1338:487;:::o;2878:18::-;2894:2;2889:7;;;2878:18;;;2817:44;2843:7;;;1787:31;2843:7;;:::i;:::-;2817:44;;;;;;3502:52503:62;;;-1:-1:-1;;;3502:52503:62;;1517:174:86;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;875:702:93:-;1001:17;-1:-1:-1;12342:17:85;-1:-1:-1;;;12342:17:85;;;12338:103;;875:702:93;12458:17:85;12467:8;13038:7;12458:17;;;12454:103;;875:702:93;12583:8:85;12574:17;;;12570:103;;875:702:93;12699:7:85;12690:16;;;12686:100;;875:702:93;12812:7:85;12803:16;;;12799:100;;875:702:93;12925:7:85;12916:16;;;12912:100;;875:702:93;13029:16:85;;13025:66;;875:702:93;1469:11;1163:76;1059:18;1021:1;3502:52503:62;;1059:18:93;:::i;:::-;1091:11;1163:76;;;1252:282;-1:-1:-1;;3502:52503:62;;-1:-1:-1;;;13038:7:85;1357:95:93;;;3502:52503:62;1357:95:93;13038:7:85;3502:52503:62;;;;1469:11:93;1502:10;;1498:21;;1469:11;1252:282;;;;1498:21;1514:5;;875:702;:::o;13025:66:85:-;13075:1;3502:52503:62;;;;13025:66:85;;12912:100;12996:1;;12925:7;3502:52503:62;;;;12912:100:85;;;12799;12883:1;;12812:7;3502:52503:62;;;;12799:100:85;;;12686;12770:1;;12699:7;3502:52503:62;;;;12686:100:85;;;12570:103;12656:2;;12583:8;3502:52503:62;;;;12570:103:85;;;12454;12540:2;;12467:8;3502:52503:62;;;;12454:103:85;;;12338;-1:-1:-1;12424:2:85;;-1:-1:-1;;;;3502:52503:62;;12338:103:85;;3502:52503:62;;;;;;;;;;:::i;:::-;3697:2:93;3502:52503:62;;;-1:-1:-1;;3502:52503:62;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;1953:2:93;3502:52503:62;;;-1:-1:-1;;3502:52503:62;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;3742:1:93;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1753:495:93:-;-1:-1:-1;;;;;3502:52503:62;1943:13:93;;:::i;:::-;1966:16;;;;;:::i;:::-;;1992;;;;:::i;:::-;;1974:1;2038:6;2042:2;2038:6;;;;2219:22;;1753:495;:::o;2046:3::-;2110:6;;;:::i;:::-;2103:14;;;;;;2086:38;;2097:26;;2103:14;;;634:18;;-1:-1:-1;;;3502:52503:62;2103:19:93;634:18;2086:38;;;;;;;-1:-1:-1;;;2086:38:93;;2065:59;2073:9;2077:5;;;:::i;2073:9::-;2065:59;;:::i;:::-;;2183:6;;;:::i;:::-;2103:14;2176;;;;;;2193:4;2176:14;;3502:52503:62;2159:40:93;2086:38;2159:40;;;;;2000:1;;-1:-1:-1;;;2159:40:93;;2138:61;2146:9;2150:5;;;:::i;2146:9::-;2138:61;;:::i;:::-;;3502:52503:62;2023:13:93;;4142:120;4231:24;;;3502:52503:62;;;;;;:::i;:::-;;;;-1:-1:-1;;;3502:52503:62;;;;4142:120:93;:::o;4231:24::-;3502:52503:62;;;;;;:::i;:::-;;;;-1:-1:-1;;;3502:52503:62;;;;4142:120:93;:::o;3502:52503:62:-;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;;;;;;;",linkReferences:{"src/library/utils/signature/CoreHashUtils.sol":{CoreHashUtils:[{start:7429,length:20},{start:11547,length:20}]}}},methodIdentifiers:{"acceptAdmin()":"0e18b681","acceptChangeBaseRewardAmount()":"6a230fb4","acceptChangeRewardFlowDistribution()":"a574aac4","acceptDeleteTotalSupply()":"54a12357","acceptImplementation()":"15ba56e5","acceptListStatusProposal()":"7797e97d","acceptUserValidatorProposal()":"b517ac7d","addAmountToUser(address,address,uint256)":"6c9fa638","addBalance(address,address,uint256)":"d3bca884","asyncNonceStatus(address,uint256)":"4b366ccc","batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":"e7816eb8","caPay(address,address,uint256)":"c898a6e9","canExecuteUserTransaction(address)":"0f1f38b2","cancelUserValidatorProposal()":"401dffee","disperseCaPay((uint256,address)[],address,uint256)":"a7a096f6","dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":"32e26fdc","getAllowListStatus(address)":"5a2cba27","getAsyncNonceReservation(address,uint256)":"862b3737","getBalance(address,address)":"d4fac45d","getChainHostCoinAddress()":"8e0c71ad","getCurrentAdmin()":"643d430c","getCurrentImplementation()":"29cca569","getCurrentListStatus()":"ef003529","getCurrentSupply()":"4f3e1efc","getDenyListStatus(address)":"08351bdd","getEvvmID()":"17c85152","getEvvmMetadata()":"0faff8e8","getFullDetailAdmin()":"ab82aa0a","getFullDetailImplementation()":"e08290ee","getFullDetailListStatus()":"25e3243b","getFullDetailReward()":"0761a3ad","getFullDetailRewardFlowDistribution()":"563b6170","getFullDetailUserValidator()":"cd654e3e","getIfUsedAsyncNonce(address,uint256)":"d0e3692d","getNameServiceAddress()":"3a8cd872","getNextCurrentSyncNonce(address)":"6cd30148","getPrincipalTokenAddress()":"280e32fb","getPrincipalTokenTotalSupply()":"47ecd0f6","getRewardAmount()":"09a69f57","getRewardFlowDistributionFlag()":"1d3a4e2d","getStakingContractAddress()":"6afe5795","getTimeToDeleteMaxSupply()":"be726ffd","getUserValidatorAddress()":"b139c797","initializeSystemContracts(address,address)":"55160ea6","isAddressStaker(address)":"286b4b44","pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":"90fcb4ee","pointStaker(address,bytes1)":"adb6233f","proposeAdmin(address)":"147bf6c4","proposeChangeBaseRewardAmount(uint256)":"804ef86f","proposeChangeRewardFlowDistribution()":"92ab1f24","proposeDeleteTotalSupply()":"7a975c80","proposeImplementation(address)":"9dd18c15","proposeListStatus(bytes1)":"ae63d1a7","proposeUserValidator(address)":"e4e3cfee","recalculateReward()":"5300e162","rejectChangeBaseRewardAmount()":"bd26035e","rejectChangeRewardFlowDistribution()":"09fc6971","rejectDeleteTotalSupply()":"3625c901","rejectListStatusProposal()":"0211de41","rejectProposalAdmin()":"b38c950a","rejectUpgrade()":"3f54542a","removeAmountFromUser(address,address,uint256)":"76e6eb7e","reserveAsyncNonce(uint256,address)":"8b62e507","revokeAsyncNonce(uint256)":"ef802613","setEvvmID(uint256)":"01ed3f51","setPointStaker(address,bytes1)":"e8163dda","setTokenStatusOnAllowList(address,bool)":"4c3b7bdb","setTokenStatusOnDenyList(address,bool)":"766dd07b","validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":"fa7a2e2a"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_initialOwner","type":"address"},{"internalType":"address","name":"_stakingContractAddress","type":"address"},{"components":[{"internalType":"string","name":"EvvmName","type":"string"},{"internalType":"uint256","name":"EvvmID","type":"uint256"},{"internalType":"string","name":"principalTokenName","type":"string"},{"internalType":"string","name":"principalTokenSymbol","type":"string"},{"internalType":"address","name":"principalTokenAddress","type":"address"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"eraTokens","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"}],"internalType":"struct CoreStructs.EvvmMetadata","name":"_evvmMetadata","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AddressCantBeZero","type":"error"},{"inputs":[],"name":"AsyncNonceAlreadyReserved","type":"error"},{"inputs":[],"name":"AsyncNonceAlreadyUsed","type":"error"},{"inputs":[],"name":"AsyncNonceIsReservedByAnotherService","type":"error"},{"inputs":[],"name":"AsyncNonceNotReserved","type":"error"},{"inputs":[],"name":"BaseRewardIncreaseNotAllowed","type":"error"},{"inputs":[],"name":"BreakerExploded","type":"error"},{"inputs":[],"name":"ImplementationIsNotActive","type":"error"},{"inputs":[],"name":"IncorrectAddressInput","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidListStatus","type":"error"},{"inputs":[],"name":"InvalidServiceAddress","type":"error"},{"inputs":[],"name":"InvalidSignature","type":"error"},{"inputs":[],"name":"MaxSupplyDeletionNotAllowed","type":"error"},{"inputs":[],"name":"NotAnCA","type":"error"},{"inputs":[],"name":"OriginIsNotTheOriginExecutor","type":"error"},{"inputs":[],"name":"ProposalNotReadyToAccept","type":"error"},{"inputs":[],"name":"RewardFlowDistributionChangeNotAllowed","type":"error"},{"inputs":[],"name":"SenderIsNotAdmin","type":"error"},{"inputs":[],"name":"SenderIsNotTheProposedAdmin","type":"error"},{"inputs":[],"name":"SenderIsNotTreasury","type":"error"},{"inputs":[],"name":"ServiceSenderMismatch","type":"error"},{"inputs":[],"name":"SyncNonceMismatch","type":"error"},{"inputs":[],"name":"TokenIsDeniedForExecution","type":"error"},{"inputs":[],"name":"UserCannotExecuteTransaction","type":"error"},{"inputs":[],"name":"WindowExpired","type":"error"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptChangeBaseRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptChangeRewardFlowDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptDeleteTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptListStatusProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptUserValidatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addAmountToUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"addBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"asyncNonceStatus","outputs":[{"internalType":"bytes1","name":"","type":"bytes1"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to_address","type":"address"},{"internalType":"string","name":"to_identity","type":"string"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"priorityFee","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bool","name":"isAsyncExec","type":"bool"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct CoreStructs.BatchData[]","name":"batchData","type":"tuple[]"}],"name":"batchPay","outputs":[{"internalType":"uint256","name":"successfulTransactions","type":"uint256"},{"internalType":"bool[]","name":"results","type":"bool[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"caPay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"canExecuteUserTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelUserValidatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"toAddress","type":"address"}],"internalType":"struct CoreStructs.DisperseCaPayMetadata[]","name":"toData","type":"tuple[]"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"disperseCaPay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to_address","type":"address"},{"internalType":"string","name":"to_identity","type":"string"}],"internalType":"struct CoreStructs.DispersePayMetadata[]","name":"toData","type":"tuple[]"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"priorityFee","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bool","name":"isAsyncExec","type":"bool"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"dispersePay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getAllowListStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"getAsyncNonceReservation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainHostCoinAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCurrentAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentListStatus","outputs":[{"internalType":"bytes1","name":"","type":"bytes1"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getDenyListStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmMetadata","outputs":[{"components":[{"internalType":"string","name":"EvvmName","type":"string"},{"internalType":"uint256","name":"EvvmID","type":"uint256"},{"internalType":"string","name":"principalTokenName","type":"string"},{"internalType":"string","name":"principalTokenSymbol","type":"string"},{"internalType":"address","name":"principalTokenAddress","type":"address"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"eraTokens","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"}],"internalType":"struct CoreStructs.EvvmMetadata","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailAdmin","outputs":[{"components":[{"internalType":"address","name":"current","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailImplementation","outputs":[{"components":[{"internalType":"address","name":"current","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailListStatus","outputs":[{"components":[{"internalType":"bytes1","name":"current","type":"bytes1"},{"internalType":"bytes1","name":"proposal","type":"bytes1"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.Bytes1TypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailReward","outputs":[{"components":[{"internalType":"uint256","name":"current","type":"uint256"},{"internalType":"uint256","name":"proposal","type":"uint256"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.UintTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailRewardFlowDistribution","outputs":[{"components":[{"internalType":"bool","name":"flag","type":"bool"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.BoolTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailUserValidator","outputs":[{"components":[{"internalType":"address","name":"current","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"getIfUsedAsyncNonce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNameServiceAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNextCurrentSyncNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrincipalTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrincipalTokenTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardFlowDistributionFlag","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakingContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimeToDeleteMaxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUserValidatorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_nameServiceAddress","type":"address"},{"internalType":"address","name":"_treasuryAddress","type":"address"}],"name":"initializeSystemContracts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isAddressStaker","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to_address","type":"address"},{"internalType":"string","name":"to_identity","type":"string"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"priorityFee","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bool","name":"isAsyncExec","type":"bool"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"pay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes1","name":"answer","type":"bytes1"}],"name":"pointStaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"proposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBaseReward","type":"uint256"}],"name":"proposeChangeBaseRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposeChangeRewardFlowDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposeDeleteTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newImpl","type":"address"}],"name":"proposeImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes1","name":"newStatus","type":"bytes1"}],"name":"proposeListStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newValidator","type":"address"}],"name":"proposeUserValidator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recalculateReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectChangeBaseRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectChangeRewardFlowDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectDeleteTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectListStatusProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeAmountFromUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"}],"name":"reserveAsyncNonce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"revokeAsyncNonce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newEvvmID","type":"uint256"}],"name":"setEvvmID","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes1","name":"answer","type":"bytes1"}],"name":"setPointStaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setTokenStatusOnAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setTokenStatusOnDenyList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"bytes32","name":"hashPayload","type":"bytes32"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bool","name":"isAsyncExec","type":"bool"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"validateAndConsumeNonce","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Mate labs","details":"Combines payment operations and nonce management. Features multi-token payments with EIP-191 signatures, dual nonce system (sync/async), and staker rewards. Governed by a time-delayed admin and implementation upgrade system.","errors":{"AddressCantBeZero()":[{"details":"Thrown when address(0) provided (constructor, setup)"}],"AsyncNonceAlreadyReserved()":[{"details":"Thrown when reserving already-reserved async nonce"}],"AsyncNonceAlreadyUsed()":[{"details":"Thrown when async nonce already consumed"}],"AsyncNonceIsReservedByAnotherService()":[{"details":"Thrown when using async nonce reserved by different service"}],"AsyncNonceNotReserved()":[{"details":"Thrown when revoking non-reserved async nonce"}],"BreakerExploded()":[{"details":"Thrown when one-time setup function called after breaker flag set"}],"ImplementationIsNotActive()":[{"details":"Thrown when proxy implementation == address(0)"}],"IncorrectAddressInput()":[{"details":"Thrown when address validation fails in proposals"}],"InsufficientBalance()":[{"details":"Thrown when balance < transfer amount"}],"InvalidAmount()":[{"details":"Thrown when amount validation fails (e.g., dispersePay total != sum)"}],"InvalidListStatus()":[{"details":"Thrown when list status is invalid (not 0x00, 0x01, or 0x02)"}],"InvalidServiceAddress()":[{"details":"Thrown when reserving nonce with service == address(0)"}],"InvalidSignature()":[{"details":"Thrown when EIP-191 signature invalid or signer mismatch"}],"NotAnCA()":[{"details":"Thrown when EOA calls caPay/disperseCaPay (contract-only functions)"}],"ProposalNotReadyToAccept()":[{"details":"Thrown when accepting before timelock"}],"SenderIsNotAdmin()":[{"details":"Thrown when non-admin calls admin-only function (onlyAdmin modifier)"}],"SenderIsNotTheProposedAdmin()":[{"details":"Thrown when non-proposed admin attempts acceptAdmin before timelock"}],"SenderIsNotTreasury()":[{"details":"Thrown when non-treasury calls treasury-only function"}],"ServiceSenderMismatch()":[{"details":"Thrown when msg.sender != service address only if diferent to address(0)"}],"SyncNonceMismatch()":[{"details":"Thrown when sync nonce != expected sequential nonce"}],"TokenIsDeniedForExecution()":[{"details":"Thrown when a token is in - the denylist (if the denylist is active) - not in the allowlist (if the allowlist is active)"}],"UserCannotExecuteTransaction()":[{"details":"Thrown when UserValidator blocks user transaction"}],"WindowExpired()":[{"details":"Thrown when attempting EVVM ID change after 24h window"}]},"kind":"dev","methods":{"acceptAdmin()":{"details":"Must be called by the proposed admin."},"acceptUserValidatorProposal()":{"custom:access":"Admin only","custom:timelock":"Requires DELAY (1 day) to have passed","details":"Activates new validator after delay period expires Activation Process: - Validates time-lock period has passed - Sets new validator as current active validator - Clears proposal state - Validator becomes active immediately Impact: - All future transactions checked by new validator - Affects validateAndConsumeNonce behavior - Can block users from executing transactions"},"addAmountToUser(address,address,uint256)":{"custom:access-control":"Only treasury contract","custom:security":"No overflow protection needed due to controlled access","details":"Restricted function that can only be called by the authorized treasury contract Treasury Operations: - Allows treasury to mint or credit tokens to user accounts - Used for reward distributions, airdrops, or token bridging - Direct balance manipulation bypasses normal transfer restrictions - No signature verification required (treasury authorization) Access Control: - Only the registered treasury contract can call this function - Reverts with SenderIsNotTreasury error for unauthorized callers - Provides centralized token distribution mechanism Use Cases: - Cross-chain bridge token minting - Administrative reward distributions - System-level token allocations - Emergency balance corrections","params":{"amount":"Amount of tokens to add to the user\'s balance","token":"Address of the token contract to add balance for","user":"Address of the user to receive tokens"}},"addBalance(address,address,uint256)":{"params":{"quantity":"Amount to add.","token":"Token contract address.","user":"Recipient address."}},"asyncNonceStatus(address,uint256)":{"details":"Returns byte code indicating nonce state Status Codes: - 0x00: Available (can be used by any service) - 0x01: Used (already consumed, cannot be reused) - 0x02: Reserved (allocated to specific service)","params":{"nonce":"Async nonce to check status for","user":"Address of the user who owns the nonce"},"returns":{"_0":"Status code: 0x00 (available), 0x01 (used), or 0x02 (reserved)"}},"batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":{"details":"Each payment is validated and executed independently.","params":{"batchData":"Array of payment details and signatures."},"returns":{"results":"Success status for each payment in the batch.","successfulTransactions":"Count of successful payments."}},"caPay(address,address,uint256)":{"details":"Allows registered contracts to distribute tokens without signature verification Authorization Model: /**No signature required as the contract itself is the caller.","params":{"amount":"Tokens to transfer.","to":"Recipient address.","token":"Token address."}},"canExecuteUserTransaction(address)":{"details":"Checks with UserValidator if configured, allows all if not Validation Logic: - If no validator configured: Returns true (all allowed) - If validator configured: Delegates to validator.canExecute - Used by validateAndConsumeNonce before nonce consumption Integration: - Called during every transaction validation - Allows external filtering of user transactions - Supports compliance and security requirements","params":{"user":"Address to check execution permission for"},"returns":{"_0":"True if user can execute, false if blocked"}},"cancelUserValidatorProposal()":{"custom:access":"Admin only","details":"Resets proposal state before time-lock expires"},"constructor":{"params":{"_evvmMetadata":"Initial configuration (token info, reward amounts, etc.).","_initialOwner":"Address granted administrative control.","_stakingContractAddress":"Address of the Staking contract."}},"disperseCaPay((uint256,address)[],address,uint256)":{"params":{"amount":"Total amount to distribute.","toData":"Array of recipient addresses/identities and amounts.","token":"Token address."}},"dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":{"params":{"amount":"Total amount to distribute (sum of toData).","from":"Sender address.","isAsyncExec":"True for parallel nonces.","nonce":"Transaction nonce.","priorityFee":"Fee for the executor (if staker).","senderExecutor":"Optional authorized executor.","signature":"EIP-191 authorization signature.","toData":"Array of recipient addresses/identities and their respective amounts.","token":"Token address."}},"getAllowListStatus(address)":{"details":"Returns boolean indicating if token is allowed for execution - true if allowed - false if denied"},"getAsyncNonceReservation(address,uint256)":{"details":"Returns address(0) if nonce is not reserved","params":{"nonce":"Async nonce to check reservation for","user":"Address of the user who owns the nonce"},"returns":{"_0":"Service address that reserved the nonce, or address(0) if not reserved"}},"getBalance(address,address)":{"details":"Returns the current balance stored in the EVVM system","params":{"token":"Token contract address to check","user":"Address to check balance for"},"returns":{"_0":"Current token balance for the user"}},"getChainHostCoinAddress()":{"details":"Returns address(0) which is the standard sentinel for native blockchain tokens Use this address as the token parameter when dealing with ETH or chain-native assets","returns":{"_0":"address(0) representing the native chain currency"}},"getCurrentAdmin()":{"details":"Returns the address with administrative privileges over the contract","returns":{"_0":"Address of the current admin"}},"getCurrentImplementation()":{"details":"Returns the implementation used by the proxy for delegatecalls","returns":{"_0":"Address of the current implementation contract"}},"getCurrentListStatus()":{"details":"Returns byte code indicating current token restriction mode - 0x00: No restrictions - 0x01: Denylist active - 0x02: Allowlist active"},"getCurrentSupply()":{"details":"Returns the current circulating supply used for reward recalculations"},"getDenyListStatus(address)":{"details":"Returns boolean indicating if token is restricted for execution - true if denied - false if allowed"},"getEvvmID()":{"details":"Returns the EvvmID used for distinguishing different EVVM deployments","returns":{"_0":"Unique EvvmID string"}},"getEvvmMetadata()":{"details":"Provides access to system-wide configuration and economic parameters Metadata Contents: - Principal token address (Principal Token) - Current reward amount per transaction - Total supply tracking - Era tokens threshold for reward transitions - System configuration parameters","returns":{"_0":"Complete EvvmMetadata struct with all system parameters"}},"getFullDetailImplementation()":{"details":"Returns current, proposed implementation addresses and time-lock info","returns":{"_0":"Proposal struct with current implementation, proposed implementation, and time to accept the proposal"}},"getFullDetailListStatus()":{"details":"Returns current list status along with pending proposal info"},"getFullDetailReward()":{"details":"Returns current reward, proposed reward and time-lock info","returns":{"_0":"Proposal struct with current reward, proposed reward, and time to accept the proposal"}},"getFullDetailRewardFlowDistribution()":{"details":"Returns current flag, proposed flag, and time-lock info","returns":{"_0":"Proposal struct with current flag, proposed flag, and time to accept"}},"getFullDetailUserValidator()":{"details":"Returns current, proposed address and time-lock info","returns":{"_0":"Proposal struct with current validator address, proposed address, and time to accept"}},"getIfUsedAsyncNonce(address,uint256)":{"details":"Public view function for external queries and UI integration","params":{"nonce":"The nonce value to query","user":"Address of the user to check"},"returns":{"_0":"True if the nonce has been used, false if available"}},"getNameServiceAddress()":{"details":"Returns the address used for identity resolution in payments","returns":{"_0":"Address of the integrated NameService contract"}},"getNextCurrentSyncNonce(address)":{"details":"Public view function for external queries and transaction preparation","params":{"user":"Address of the user to query"},"returns":{"_0":"The next nonce value that must be used by the user"}},"getPrincipalTokenAddress()":{"details":"Returns the virtual address used to track Principal Token balances in the balances mapping This is not an ERC20 contract address but a sentinel value for the EVVM-native token","returns":{"_0":"Address used as the key for Principal Token balances"}},"getPrincipalTokenTotalSupply()":{"details":"Returns the current total supply used for era transition calculations","returns":{"_0":"Total supply of Principal Tokens"}},"getRewardAmount()":{"details":"Returns the base reward distributed to stakers for transaction processing","returns":{"_0":"Current reward amount in Principal Tokens"}},"getRewardFlowDistributionFlag()":{"details":"Returns boolean indicating if reward distribution is active - true if rewards are distributed to stakers - false if rewards are disabled"},"getStakingContractAddress()":{"details":"Returns the address that can modify staker status and receive rewards","returns":{"_0":"Address of the integrated staking contract"}},"getTimeToDeleteMaxSupply()":{"details":"Returns the timestamp when the max supply can be deleted","returns":{"_0":"Timestamp for max supply deletion"}},"getUserValidatorAddress()":{"details":"Returns address(0) if no validator is configured","returns":{"_0":"Address of active UserValidator contract"}},"initializeSystemContracts(address,address)":{"details":"Uses a breaker flag to prevent re-initialization.","params":{"_nameServiceAddress":"Address of the NameService contract.","_treasuryAddress":"Address of the Treasury contract."}},"isAddressStaker(address)":{"details":"Verifies staker status for transaction processing privileges and rewards","params":{"user":"Address to check staker status for"},"returns":{"_0":"True if the address is a registered staker"}},"pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":{"details":"Validates nonce (sync/async), resolves identity (if provided), and updates balances. Rewarded if the executor is a staker.","params":{"amount":"Tokens to transfer.","from":"Sender address.","isAsyncExec":"True for parallel nonces, false for sequential.","nonce":"Transaction nonce.","priorityFee":"Fee paid to the executor (if staker).","senderExecutor":"Optional authorized executor (address(0) for any).","signature":"EIP-191 authorization signature.","to_address":"Recipient address (overridden if to_identity is set).","to_identity":"Recipient username (resolved via NameService).","token":"Token address (address(0) for ETH)."}},"pointStaker(address,bytes1)":{"details":"Can only be called by the authorized staking contract Staker Status Management: - Controls who can earn staking rewards and process transactions - Integrates with external staking contract for validation - Updates affect payment processing privileges and reward eligibility Access Control: - Only the registered staking contract can call this function - Ensures staker status changes are properly authorized","params":{"answer":"Bytes1 flag indicating staker status/type","user":"Address to update staker status for"}},"proposeAdmin(address)":{"params":{"_newOwner":"Address of the proposed admin."}},"proposeImplementation(address)":{"params":{"_newImpl":"Address of the new logic contract."}},"proposeUserValidator(address)":{"details":"Initiates time-delayed governance for validator changes Governance Process: - Admin proposes new validator contract address - 1-day delay enforced before acceptance - Allows community review of validator changes - Can be canceled before acceptance UserValidator Integration: - Optional contract for transaction filtering - Called during validateAndConsumeNonce execution - Can block specific users from executing transactions - Useful for compliance or security requirements Security Features: - Time-delayed governance (DELAY constant) - Admin-only proposal capability - Cancellation mechanism before activation","params":{"newValidator":"Address of proposed UserValidator"}},"recalculateReward()":{"details":"Implements deflationary tokenomics with halving mechanism and random rewards Era Transition Mechanism: - Activates when total supply exceeds current era token threshold - Moves half of remaining tokens to next era threshold - Halves the base reward amount for future transactions - Provides random Principal Token bonus to caller (1-5083x reward) Economic Impact: - Gradually reduces inflation through reward halving - Creates scarcity as era thresholds become harder to reach - Incentivizes early participation with higher rewards - Provides lottery-style bonus for triggering era transitions Requirements: - Total supply must exceed current era token threshold - Can be called by anyone when conditions are met"},"removeAmountFromUser(address,address,uint256)":{"details":"Restricted to the authorized Treasury contract.","params":{"amount":"Amount to remove.","token":"Token address.","user":"Account to debit."}},"reserveAsyncNonce(uint256,address)":{"details":"Allows users to pre-allocate nonces to specific services Reservation System: - Users reserve nonces for specific service addresses - Prevents other services from using reserved nonces - Useful for multi-step or delayed operations - Reservation persists until revoked or nonce is used Use Cases: - Cross-chain operations requiring coordination - Multi-signature workflows with specific executors - Service-specific transaction queues - Preventing front-running by other services Security Features: - User-controlled reservation (msg.sender) - Validates service address is not zero - Prevents double reservation of same nonce - Cannot reserve already-used nonces","params":{"nonce":"The async nonce value to reserve","senderExecutor":"Service contract that can use nonce"}},"revokeAsyncNonce(uint256)":{"details":"Allows clearing of nonce reservations for reuse Revocation Process: - Validates nonce has not been used yet - Checks that nonce is currently reserved - Clears the service address reservation - Nonce becomes available for any service Authorization: - Currently callable by anyone (potential security issue) - Should validate msg.sender is user or authorized - Allows cancellation of mistaken reservations Use Cases: - Canceling pending service operations - Correcting accidental reservations - Freeing nonces for different services","params":{"nonce":"The async nonce to revoke reservation for"}},"setEvvmID(uint256)":{"params":{"newEvvmID":"New unique identifier for EIP-191 signatures."}},"setPointStaker(address,bytes1)":{"params":{"answer":"Status flag (e.g., FLAG_IS_STAKER).","user":"User address."}},"validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":{"details":"Only callable by smart contracts (EVVM services). Atomic verification/consumption.","params":{"hashPayload":"Hash of the transaction parameters.","isAsyncExec":"True for non-sequential nonces.","nonce":"Nonce to validate and consume.","originExecutor":"Optional tx.origin restriction (address(0) for none).","signature":"User\'s authorization signature.","user":"Address of the transaction signer."}}},"title":"EVVM Core","version":1},"userdoc":{"kind":"user","methods":{"acceptAdmin()":{"notice":"Finalizes the admin change after the time delay."},"acceptImplementation()":{"notice":"Finalizes the implementation upgrade after the time delay."},"acceptUserValidatorProposal()":{"notice":"Accepts UserValidator proposal after time-lock"},"addAmountToUser(address,address,uint256)":{"notice":"Adds tokens to a user\'s balance in the EVVM system"},"addBalance(address,address,uint256)":{"notice":"Faucet: Adds balance to a user for testing (Testnet only)."},"asyncNonceStatus(address,uint256)":{"notice":"Gets comprehensive status of an async nonce"},"batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":{"notice":"Processes multiple payments in a single transaction."},"caPay(address,address,uint256)":{"notice":"Contract-to-address payment function for authorized smart contractsAllows a smart contract (CA) to pay a recipient directly."},"canExecuteUserTransaction(address)":{"notice":"Validates if user can execute transactions"},"cancelUserValidatorProposal()":{"notice":"Cancels pending UserValidator proposal"},"constructor":{"notice":"Initializes the EVVM Core with basic system parameters."},"disperseCaPay((uint256,address)[],address,uint256)":{"notice":"Allows a smart contract (CA) to distribute tokens to multiple recipients."},"dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":{"notice":"Distributes tokens from one sender to multiple recipients with a single signature."},"getAllowListStatus(address)":{"notice":"Checks if a token is on the allowList or denyList based on current list status"},"getAsyncNonceReservation(address,uint256)":{"notice":"Gets service address that reserved an async nonce"},"getBalance(address,address)":{"notice":"Gets the balance of a specific token for a user"},"getChainHostCoinAddress()":{"notice":"Gets the address representing native chain currency (ETH/MATIC) in balance mappings"},"getCurrentAdmin()":{"notice":"Gets the current admin address"},"getCurrentImplementation()":{"notice":"Gets the current active implementation contract address"},"getCurrentListStatus()":{"notice":"Gets the current token list status (none, denylist, allowlist)"},"getCurrentSupply()":{"notice":"Gets the current supply of the Principal Token in circulation"},"getDenyListStatus(address)":{"notice":"Checks if a token is on the denylist or allowlist based on current list status"},"getEvvmID()":{"notice":"Gets the unique identifier string for this EVVM instance"},"getEvvmMetadata()":{"notice":"Returns the complete EVVM metadata configuration"},"getFullDetailImplementation()":{"notice":"Gets comprehensive details of the implementation upgrade proposal"},"getFullDetailListStatus()":{"notice":"Gets comprehensive token list status details"},"getFullDetailReward()":{"notice":"Gets comprehensive details of the reward change proposal"},"getFullDetailRewardFlowDistribution()":{"notice":"Gets full details of the reward flow distribution proposal"},"getFullDetailUserValidator()":{"notice":"Gets full UserValidator proposal details"},"getIfUsedAsyncNonce(address,uint256)":{"notice":"Checks if a specific nonce has been used by a user"},"getNameServiceAddress()":{"notice":"Gets the current NameService contract address"},"getNextCurrentSyncNonce(address)":{"notice":"Gets the current (next expected) nonce for a user"},"getPrincipalTokenAddress()":{"notice":"Gets the address representing the Principal Token in balance mappings"},"getPrincipalTokenTotalSupply()":{"notice":"Gets the total supply of the Principal Token"},"getRewardAmount()":{"notice":"Gets the current Principal Token reward amount per transaction"},"getRewardFlowDistributionFlag()":{"notice":"Gets the current status of the reward flow distribution flag"},"getStakingContractAddress()":{"notice":"Gets the authorized staking contract address"},"getTimeToDeleteMaxSupply()":{"notice":"Gets the time remaining to delete the maximum supply"},"getUserValidatorAddress()":{"notice":"Gets current UserValidator contract address"},"initializeSystemContracts(address,address)":{"notice":"Configures NameService and Treasury addresses once."},"isAddressStaker(address)":{"notice":"Checks if an address is registered as a staker"},"pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":{"notice":"Processes a single token payment with signature verification."},"pointStaker(address,bytes1)":{"notice":"Updates staker status for a user address"},"proposeAdmin(address)":{"notice":"Proposes a new administrator (1-day delay)."},"proposeImplementation(address)":{"notice":"Proposes a new implementation contract for the proxy (30-day delay)."},"proposeUserValidator(address)":{"notice":"Proposes new UserValidator contract address"},"recalculateReward()":{"notice":"Triggers a reward recalculation and era transition in the token economy"},"rejectProposalAdmin()":{"notice":"Cancels a pending admin change proposal."},"rejectUpgrade()":{"notice":"Cancels a pending implementation upgrade proposal."},"removeAmountFromUser(address,address,uint256)":{"notice":"Deducts tokens from a user\'s system balance."},"reserveAsyncNonce(uint256,address)":{"notice":"Reserves an async nonce for exclusive service use"},"revokeAsyncNonce(uint256)":{"notice":"Revokes a previously reserved async nonce"},"setEvvmID(uint256)":{"notice":"Updates the EVVM ID within a 24-hour window after deployment or change."},"setPointStaker(address,bytes1)":{"notice":"Faucet: Sets staker status for testing (Testnet only)."},"validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":{"notice":"Validates a user signature and consumes a nonce for an EVVM service."}},"notice":"\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u255a\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u255a\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d Central logic for EVVM payments, token management, and nonce tracking.","version":1}},"settings":{"compilationTarget":{"src/contracts/core/Core.sol":"Core"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"_initialOwner",type:"address"},{internalType:"address",name:"_stakingContractAddress",type:"address"},{internalType:"struct CoreStructs.EvvmMetadata",name:"_evvmMetadata",type:"tuple",components:[{internalType:"string",name:"EvvmName",type:"string"},{internalType:"uint256",name:"EvvmID",type:"uint256"},{internalType:"string",name:"principalTokenName",type:"string"},{internalType:"string",name:"principalTokenSymbol",type:"string"},{internalType:"address",name:"principalTokenAddress",type:"address"},{internalType:"uint256",name:"totalSupply",type:"uint256"},{internalType:"uint256",name:"eraTokens",type:"uint256"},{internalType:"uint256",name:"reward",type:"uint256"}]}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],type:"error",name:"AddressCantBeZero"},{inputs:[],type:"error",name:"AsyncNonceAlreadyReserved"},{inputs:[],type:"error",name:"AsyncNonceAlreadyUsed"},{inputs:[],type:"error",name:"AsyncNonceIsReservedByAnotherService"},{inputs:[],type:"error",name:"AsyncNonceNotReserved"},{inputs:[],type:"error",name:"BaseRewardIncreaseNotAllowed"},{inputs:[],type:"error",name:"BreakerExploded"},{inputs:[],type:"error",name:"ImplementationIsNotActive"},{inputs:[],type:"error",name:"IncorrectAddressInput"},{inputs:[],type:"error",name:"InsufficientBalance"},{inputs:[],type:"error",name:"InvalidAmount"},{inputs:[],type:"error",name:"InvalidListStatus"},{inputs:[],type:"error",name:"InvalidServiceAddress"},{inputs:[],type:"error",name:"InvalidSignature"},{inputs:[],type:"error",name:"MaxSupplyDeletionNotAllowed"},{inputs:[],type:"error",name:"NotAnCA"},{inputs:[],type:"error",name:"OriginIsNotTheOriginExecutor"},{inputs:[],type:"error",name:"ProposalNotReadyToAccept"},{inputs:[],type:"error",name:"RewardFlowDistributionChangeNotAllowed"},{inputs:[],type:"error",name:"SenderIsNotAdmin"},{inputs:[],type:"error",name:"SenderIsNotTheProposedAdmin"},{inputs:[],type:"error",name:"SenderIsNotTreasury"},{inputs:[],type:"error",name:"ServiceSenderMismatch"},{inputs:[],type:"error",name:"SyncNonceMismatch"},{inputs:[],type:"error",name:"TokenIsDeniedForExecution"},{inputs:[],type:"error",name:"UserCannotExecuteTransaction"},{inputs:[],type:"error",name:"WindowExpired"},{inputs:[],stateMutability:"nonpayable",type:"fallback"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptChangeBaseRewardAmount"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptChangeRewardFlowDistribution"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptDeleteTotalSupply"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptImplementation"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptListStatusProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptUserValidatorProposal"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"addAmountToUser"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"quantity",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"addBalance"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"asyncNonceStatus",outputs:[{internalType:"bytes1",name:"",type:"bytes1"}]},{inputs:[{internalType:"struct CoreStructs.BatchData[]",name:"batchData",type:"tuple[]",components:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to_address",type:"address"},{internalType:"string",name:"to_identity",type:"string"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"priorityFee",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bool",name:"isAsyncExec",type:"bool"},{internalType:"bytes",name:"signature",type:"bytes"}]}],stateMutability:"nonpayable",type:"function",name:"batchPay",outputs:[{internalType:"uint256",name:"successfulTransactions",type:"uint256"},{internalType:"bool[]",name:"results",type:"bool[]"}]},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"caPay"},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"view",type:"function",name:"canExecuteUserTransaction",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelUserValidatorProposal"},{inputs:[{internalType:"struct CoreStructs.DisperseCaPayMetadata[]",name:"toData",type:"tuple[]",components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"toAddress",type:"address"}]},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"disperseCaPay"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"struct CoreStructs.DispersePayMetadata[]",name:"toData",type:"tuple[]",components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to_address",type:"address"},{internalType:"string",name:"to_identity",type:"string"}]},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"priorityFee",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bool",name:"isAsyncExec",type:"bool"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"dispersePay"},{inputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"view",type:"function",name:"getAllowListStatus",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"getAsyncNonceReservation",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"token",type:"address"}],stateMutability:"view",type:"function",name:"getBalance",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"pure",type:"function",name:"getChainHostCoinAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCurrentAdmin",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCurrentImplementation",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCurrentListStatus",outputs:[{internalType:"bytes1",name:"",type:"bytes1"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCurrentSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"view",type:"function",name:"getDenyListStatus",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmID",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmMetadata",outputs:[{internalType:"struct CoreStructs.EvvmMetadata",name:"",type:"tuple",components:[{internalType:"string",name:"EvvmName",type:"string"},{internalType:"uint256",name:"EvvmID",type:"uint256"},{internalType:"string",name:"principalTokenName",type:"string"},{internalType:"string",name:"principalTokenSymbol",type:"string"},{internalType:"address",name:"principalTokenAddress",type:"address"},{internalType:"uint256",name:"totalSupply",type:"uint256"},{internalType:"uint256",name:"eraTokens",type:"uint256"},{internalType:"uint256",name:"reward",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailAdmin",outputs:[{internalType:"struct ProposalStructs.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"current",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailImplementation",outputs:[{internalType:"struct ProposalStructs.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"current",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailListStatus",outputs:[{internalType:"struct ProposalStructs.Bytes1TypeProposal",name:"",type:"tuple",components:[{internalType:"bytes1",name:"current",type:"bytes1"},{internalType:"bytes1",name:"proposal",type:"bytes1"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailReward",outputs:[{internalType:"struct ProposalStructs.UintTypeProposal",name:"",type:"tuple",components:[{internalType:"uint256",name:"current",type:"uint256"},{internalType:"uint256",name:"proposal",type:"uint256"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailRewardFlowDistribution",outputs:[{internalType:"struct ProposalStructs.BoolTypeProposal",name:"",type:"tuple",components:[{internalType:"bool",name:"flag",type:"bool"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailUserValidator",outputs:[{internalType:"struct ProposalStructs.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"current",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"getIfUsedAsyncNonce",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"view",type:"function",name:"getNameServiceAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"view",type:"function",name:"getNextCurrentSyncNonce",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPrincipalTokenAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPrincipalTokenTotalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getRewardAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getRewardFlowDistributionFlag",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"view",type:"function",name:"getStakingContractAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getTimeToDeleteMaxSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getUserValidatorAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"_nameServiceAddress",type:"address"},{internalType:"address",name:"_treasuryAddress",type:"address"}],stateMutability:"nonpayable",type:"function",name:"initializeSystemContracts"},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"view",type:"function",name:"isAddressStaker",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to_address",type:"address"},{internalType:"string",name:"to_identity",type:"string"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"priorityFee",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bool",name:"isAsyncExec",type:"bool"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"pay"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bytes1",name:"answer",type:"bytes1"}],stateMutability:"nonpayable",type:"function",name:"pointStaker"},{inputs:[{internalType:"address",name:"_newOwner",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeAdmin"},{inputs:[{internalType:"uint256",name:"newBaseReward",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeChangeBaseRewardAmount"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"proposeChangeRewardFlowDistribution"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"proposeDeleteTotalSupply"},{inputs:[{internalType:"address",name:"_newImpl",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeImplementation"},{inputs:[{internalType:"bytes1",name:"newStatus",type:"bytes1"}],stateMutability:"nonpayable",type:"function",name:"proposeListStatus"},{inputs:[{internalType:"address",name:"newValidator",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeUserValidator"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"recalculateReward"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectChangeBaseRewardAmount"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectChangeRewardFlowDistribution"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectDeleteTotalSupply"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectListStatusProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectUpgrade"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"removeAmountFromUser"},{inputs:[{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"}],stateMutability:"nonpayable",type:"function",name:"reserveAsyncNonce"},{inputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"revokeAsyncNonce"},{inputs:[{internalType:"uint256",name:"newEvvmID",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"setEvvmID"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bytes1",name:"answer",type:"bytes1"}],stateMutability:"nonpayable",type:"function",name:"setPointStaker"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"bool",name:"status",type:"bool"}],stateMutability:"nonpayable",type:"function",name:"setTokenStatusOnAllowList"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"bool",name:"status",type:"bool"}],stateMutability:"nonpayable",type:"function",name:"setTokenStatusOnDenyList"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"bytes32",name:"hashPayload",type:"bytes32"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bool",name:"isAsyncExec",type:"bool"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"validateAndConsumeNonce"}],devdoc:{kind:"dev",methods:{"acceptAdmin()":{details:"Must be called by the proposed admin."},"acceptUserValidatorProposal()":{"custom:access":"Admin only","custom:timelock":"Requires DELAY (1 day) to have passed",details:"Activates new validator after delay period expires Activation Process: - Validates time-lock period has passed - Sets new validator as current active validator - Clears proposal state - Validator becomes active immediately Impact: - All future transactions checked by new validator - Affects validateAndConsumeNonce behavior - Can block users from executing transactions"},"addAmountToUser(address,address,uint256)":{"custom:access-control":"Only treasury contract","custom:security":"No overflow protection needed due to controlled access",details:"Restricted function that can only be called by the authorized treasury contract Treasury Operations: - Allows treasury to mint or credit tokens to user accounts - Used for reward distributions, airdrops, or token bridging - Direct balance manipulation bypasses normal transfer restrictions - No signature verification required (treasury authorization) Access Control: - Only the registered treasury contract can call this function - Reverts with SenderIsNotTreasury error for unauthorized callers - Provides centralized token distribution mechanism Use Cases: - Cross-chain bridge token minting - Administrative reward distributions - System-level token allocations - Emergency balance corrections",params:{amount:"Amount of tokens to add to the user's balance",token:"Address of the token contract to add balance for",user:"Address of the user to receive tokens"}},"addBalance(address,address,uint256)":{params:{quantity:"Amount to add.",token:"Token contract address.",user:"Recipient address."}},"asyncNonceStatus(address,uint256)":{details:"Returns byte code indicating nonce state Status Codes: - 0x00: Available (can be used by any service) - 0x01: Used (already consumed, cannot be reused) - 0x02: Reserved (allocated to specific service)",params:{nonce:"Async nonce to check status for",user:"Address of the user who owns the nonce"},returns:{_0:"Status code: 0x00 (available), 0x01 (used), or 0x02 (reserved)"}},"batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":{details:"Each payment is validated and executed independently.",params:{batchData:"Array of payment details and signatures."},returns:{results:"Success status for each payment in the batch.",successfulTransactions:"Count of successful payments."}},"caPay(address,address,uint256)":{details:"Allows registered contracts to distribute tokens without signature verification Authorization Model: /**No signature required as the contract itself is the caller.",params:{amount:"Tokens to transfer.",to:"Recipient address.",token:"Token address."}},"canExecuteUserTransaction(address)":{details:"Checks with UserValidator if configured, allows all if not Validation Logic: - If no validator configured: Returns true (all allowed) - If validator configured: Delegates to validator.canExecute - Used by validateAndConsumeNonce before nonce consumption Integration: - Called during every transaction validation - Allows external filtering of user transactions - Supports compliance and security requirements",params:{user:"Address to check execution permission for"},returns:{_0:"True if user can execute, false if blocked"}},"cancelUserValidatorProposal()":{"custom:access":"Admin only",details:"Resets proposal state before time-lock expires"},constructor:{params:{_evvmMetadata:"Initial configuration (token info, reward amounts, etc.).",_initialOwner:"Address granted administrative control.",_stakingContractAddress:"Address of the Staking contract."}},"disperseCaPay((uint256,address)[],address,uint256)":{params:{amount:"Total amount to distribute.",toData:"Array of recipient addresses/identities and amounts.",token:"Token address."}},"dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":{params:{amount:"Total amount to distribute (sum of toData).",from:"Sender address.",isAsyncExec:"True for parallel nonces.",nonce:"Transaction nonce.",priorityFee:"Fee for the executor (if staker).",senderExecutor:"Optional authorized executor.",signature:"EIP-191 authorization signature.",toData:"Array of recipient addresses/identities and their respective amounts.",token:"Token address."}},"getAllowListStatus(address)":{details:"Returns boolean indicating if token is allowed for execution - true if allowed - false if denied"},"getAsyncNonceReservation(address,uint256)":{details:"Returns address(0) if nonce is not reserved",params:{nonce:"Async nonce to check reservation for",user:"Address of the user who owns the nonce"},returns:{_0:"Service address that reserved the nonce, or address(0) if not reserved"}},"getBalance(address,address)":{details:"Returns the current balance stored in the EVVM system",params:{token:"Token contract address to check",user:"Address to check balance for"},returns:{_0:"Current token balance for the user"}},"getChainHostCoinAddress()":{details:"Returns address(0) which is the standard sentinel for native blockchain tokens Use this address as the token parameter when dealing with ETH or chain-native assets",returns:{_0:"address(0) representing the native chain currency"}},"getCurrentAdmin()":{details:"Returns the address with administrative privileges over the contract",returns:{_0:"Address of the current admin"}},"getCurrentImplementation()":{details:"Returns the implementation used by the proxy for delegatecalls",returns:{_0:"Address of the current implementation contract"}},"getCurrentListStatus()":{details:"Returns byte code indicating current token restriction mode - 0x00: No restrictions - 0x01: Denylist active - 0x02: Allowlist active"},"getCurrentSupply()":{details:"Returns the current circulating supply used for reward recalculations"},"getDenyListStatus(address)":{details:"Returns boolean indicating if token is restricted for execution - true if denied - false if allowed"},"getEvvmID()":{details:"Returns the EvvmID used for distinguishing different EVVM deployments",returns:{_0:"Unique EvvmID string"}},"getEvvmMetadata()":{details:"Provides access to system-wide configuration and economic parameters Metadata Contents: - Principal token address (Principal Token) - Current reward amount per transaction - Total supply tracking - Era tokens threshold for reward transitions - System configuration parameters",returns:{_0:"Complete EvvmMetadata struct with all system parameters"}},"getFullDetailImplementation()":{details:"Returns current, proposed implementation addresses and time-lock info",returns:{_0:"Proposal struct with current implementation, proposed implementation, and time to accept the proposal"}},"getFullDetailListStatus()":{details:"Returns current list status along with pending proposal info"},"getFullDetailReward()":{details:"Returns current reward, proposed reward and time-lock info",returns:{_0:"Proposal struct with current reward, proposed reward, and time to accept the proposal"}},"getFullDetailRewardFlowDistribution()":{details:"Returns current flag, proposed flag, and time-lock info",returns:{_0:"Proposal struct with current flag, proposed flag, and time to accept"}},"getFullDetailUserValidator()":{details:"Returns current, proposed address and time-lock info",returns:{_0:"Proposal struct with current validator address, proposed address, and time to accept"}},"getIfUsedAsyncNonce(address,uint256)":{details:"Public view function for external queries and UI integration",params:{nonce:"The nonce value to query",user:"Address of the user to check"},returns:{_0:"True if the nonce has been used, false if available"}},"getNameServiceAddress()":{details:"Returns the address used for identity resolution in payments",returns:{_0:"Address of the integrated NameService contract"}},"getNextCurrentSyncNonce(address)":{details:"Public view function for external queries and transaction preparation",params:{user:"Address of the user to query"},returns:{_0:"The next nonce value that must be used by the user"}},"getPrincipalTokenAddress()":{details:"Returns the virtual address used to track Principal Token balances in the balances mapping This is not an ERC20 contract address but a sentinel value for the EVVM-native token",returns:{_0:"Address used as the key for Principal Token balances"}},"getPrincipalTokenTotalSupply()":{details:"Returns the current total supply used for era transition calculations",returns:{_0:"Total supply of Principal Tokens"}},"getRewardAmount()":{details:"Returns the base reward distributed to stakers for transaction processing",returns:{_0:"Current reward amount in Principal Tokens"}},"getRewardFlowDistributionFlag()":{details:"Returns boolean indicating if reward distribution is active - true if rewards are distributed to stakers - false if rewards are disabled"},"getStakingContractAddress()":{details:"Returns the address that can modify staker status and receive rewards",returns:{_0:"Address of the integrated staking contract"}},"getTimeToDeleteMaxSupply()":{details:"Returns the timestamp when the max supply can be deleted",returns:{_0:"Timestamp for max supply deletion"}},"getUserValidatorAddress()":{details:"Returns address(0) if no validator is configured",returns:{_0:"Address of active UserValidator contract"}},"initializeSystemContracts(address,address)":{details:"Uses a breaker flag to prevent re-initialization.",params:{_nameServiceAddress:"Address of the NameService contract.",_treasuryAddress:"Address of the Treasury contract."}},"isAddressStaker(address)":{details:"Verifies staker status for transaction processing privileges and rewards",params:{user:"Address to check staker status for"},returns:{_0:"True if the address is a registered staker"}},"pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":{details:"Validates nonce (sync/async), resolves identity (if provided), and updates balances. Rewarded if the executor is a staker.",params:{amount:"Tokens to transfer.",from:"Sender address.",isAsyncExec:"True for parallel nonces, false for sequential.",nonce:"Transaction nonce.",priorityFee:"Fee paid to the executor (if staker).",senderExecutor:"Optional authorized executor (address(0) for any).",signature:"EIP-191 authorization signature.",to_address:"Recipient address (overridden if to_identity is set).",to_identity:"Recipient username (resolved via NameService).",token:"Token address (address(0) for ETH)."}},"pointStaker(address,bytes1)":{details:"Can only be called by the authorized staking contract Staker Status Management: - Controls who can earn staking rewards and process transactions - Integrates with external staking contract for validation - Updates affect payment processing privileges and reward eligibility Access Control: - Only the registered staking contract can call this function - Ensures staker status changes are properly authorized",params:{answer:"Bytes1 flag indicating staker status/type",user:"Address to update staker status for"}},"proposeAdmin(address)":{params:{_newOwner:"Address of the proposed admin."}},"proposeImplementation(address)":{params:{_newImpl:"Address of the new logic contract."}},"proposeUserValidator(address)":{details:"Initiates time-delayed governance for validator changes Governance Process: - Admin proposes new validator contract address - 1-day delay enforced before acceptance - Allows community review of validator changes - Can be canceled before acceptance UserValidator Integration: - Optional contract for transaction filtering - Called during validateAndConsumeNonce execution - Can block specific users from executing transactions - Useful for compliance or security requirements Security Features: - Time-delayed governance (DELAY constant) - Admin-only proposal capability - Cancellation mechanism before activation",params:{newValidator:"Address of proposed UserValidator"}},"recalculateReward()":{details:"Implements deflationary tokenomics with halving mechanism and random rewards Era Transition Mechanism: - Activates when total supply exceeds current era token threshold - Moves half of remaining tokens to next era threshold - Halves the base reward amount for future transactions - Provides random Principal Token bonus to caller (1-5083x reward) Economic Impact: - Gradually reduces inflation through reward halving - Creates scarcity as era thresholds become harder to reach - Incentivizes early participation with higher rewards - Provides lottery-style bonus for triggering era transitions Requirements: - Total supply must exceed current era token threshold - Can be called by anyone when conditions are met"},"removeAmountFromUser(address,address,uint256)":{details:"Restricted to the authorized Treasury contract.",params:{amount:"Amount to remove.",token:"Token address.",user:"Account to debit."}},"reserveAsyncNonce(uint256,address)":{details:"Allows users to pre-allocate nonces to specific services Reservation System: - Users reserve nonces for specific service addresses - Prevents other services from using reserved nonces - Useful for multi-step or delayed operations - Reservation persists until revoked or nonce is used Use Cases: - Cross-chain operations requiring coordination - Multi-signature workflows with specific executors - Service-specific transaction queues - Preventing front-running by other services Security Features: - User-controlled reservation (msg.sender) - Validates service address is not zero - Prevents double reservation of same nonce - Cannot reserve already-used nonces",params:{nonce:"The async nonce value to reserve",senderExecutor:"Service contract that can use nonce"}},"revokeAsyncNonce(uint256)":{details:"Allows clearing of nonce reservations for reuse Revocation Process: - Validates nonce has not been used yet - Checks that nonce is currently reserved - Clears the service address reservation - Nonce becomes available for any service Authorization: - Currently callable by anyone (potential security issue) - Should validate msg.sender is user or authorized - Allows cancellation of mistaken reservations Use Cases: - Canceling pending service operations - Correcting accidental reservations - Freeing nonces for different services",params:{nonce:"The async nonce to revoke reservation for"}},"setEvvmID(uint256)":{params:{newEvvmID:"New unique identifier for EIP-191 signatures."}},"setPointStaker(address,bytes1)":{params:{answer:"Status flag (e.g., FLAG_IS_STAKER).",user:"User address."}},"validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":{details:"Only callable by smart contracts (EVVM services). Atomic verification/consumption.",params:{hashPayload:"Hash of the transaction parameters.",isAsyncExec:"True for non-sequential nonces.",nonce:"Nonce to validate and consume.",originExecutor:"Optional tx.origin restriction (address(0) for none).",signature:"User's authorization signature.",user:"Address of the transaction signer."}}},version:1},userdoc:{kind:"user",methods:{"acceptAdmin()":{notice:"Finalizes the admin change after the time delay."},"acceptImplementation()":{notice:"Finalizes the implementation upgrade after the time delay."},"acceptUserValidatorProposal()":{notice:"Accepts UserValidator proposal after time-lock"},"addAmountToUser(address,address,uint256)":{notice:"Adds tokens to a user's balance in the EVVM system"},"addBalance(address,address,uint256)":{notice:"Faucet: Adds balance to a user for testing (Testnet only)."},"asyncNonceStatus(address,uint256)":{notice:"Gets comprehensive status of an async nonce"},"batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":{notice:"Processes multiple payments in a single transaction."},"caPay(address,address,uint256)":{notice:"Contract-to-address payment function for authorized smart contractsAllows a smart contract (CA) to pay a recipient directly."},"canExecuteUserTransaction(address)":{notice:"Validates if user can execute transactions"},"cancelUserValidatorProposal()":{notice:"Cancels pending UserValidator proposal"},constructor:{notice:"Initializes the EVVM Core with basic system parameters."},"disperseCaPay((uint256,address)[],address,uint256)":{notice:"Allows a smart contract (CA) to distribute tokens to multiple recipients."},"dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":{notice:"Distributes tokens from one sender to multiple recipients with a single signature."},"getAllowListStatus(address)":{notice:"Checks if a token is on the allowList or denyList based on current list status"},"getAsyncNonceReservation(address,uint256)":{notice:"Gets service address that reserved an async nonce"},"getBalance(address,address)":{notice:"Gets the balance of a specific token for a user"},"getChainHostCoinAddress()":{notice:"Gets the address representing native chain currency (ETH/MATIC) in balance mappings"},"getCurrentAdmin()":{notice:"Gets the current admin address"},"getCurrentImplementation()":{notice:"Gets the current active implementation contract address"},"getCurrentListStatus()":{notice:"Gets the current token list status (none, denylist, allowlist)"},"getCurrentSupply()":{notice:"Gets the current supply of the Principal Token in circulation"},"getDenyListStatus(address)":{notice:"Checks if a token is on the denylist or allowlist based on current list status"},"getEvvmID()":{notice:"Gets the unique identifier string for this EVVM instance"},"getEvvmMetadata()":{notice:"Returns the complete EVVM metadata configuration"},"getFullDetailImplementation()":{notice:"Gets comprehensive details of the implementation upgrade proposal"},"getFullDetailListStatus()":{notice:"Gets comprehensive token list status details"},"getFullDetailReward()":{notice:"Gets comprehensive details of the reward change proposal"},"getFullDetailRewardFlowDistribution()":{notice:"Gets full details of the reward flow distribution proposal"},"getFullDetailUserValidator()":{notice:"Gets full UserValidator proposal details"},"getIfUsedAsyncNonce(address,uint256)":{notice:"Checks if a specific nonce has been used by a user"},"getNameServiceAddress()":{notice:"Gets the current NameService contract address"},"getNextCurrentSyncNonce(address)":{notice:"Gets the current (next expected) nonce for a user"},"getPrincipalTokenAddress()":{notice:"Gets the address representing the Principal Token in balance mappings"},"getPrincipalTokenTotalSupply()":{notice:"Gets the total supply of the Principal Token"},"getRewardAmount()":{notice:"Gets the current Principal Token reward amount per transaction"},"getRewardFlowDistributionFlag()":{notice:"Gets the current status of the reward flow distribution flag"},"getStakingContractAddress()":{notice:"Gets the authorized staking contract address"},"getTimeToDeleteMaxSupply()":{notice:"Gets the time remaining to delete the maximum supply"},"getUserValidatorAddress()":{notice:"Gets current UserValidator contract address"},"initializeSystemContracts(address,address)":{notice:"Configures NameService and Treasury addresses once."},"isAddressStaker(address)":{notice:"Checks if an address is registered as a staker"},"pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":{notice:"Processes a single token payment with signature verification."},"pointStaker(address,bytes1)":{notice:"Updates staker status for a user address"},"proposeAdmin(address)":{notice:"Proposes a new administrator (1-day delay)."},"proposeImplementation(address)":{notice:"Proposes a new implementation contract for the proxy (30-day delay)."},"proposeUserValidator(address)":{notice:"Proposes new UserValidator contract address"},"recalculateReward()":{notice:"Triggers a reward recalculation and era transition in the token economy"},"rejectProposalAdmin()":{notice:"Cancels a pending admin change proposal."},"rejectUpgrade()":{notice:"Cancels a pending implementation upgrade proposal."},"removeAmountFromUser(address,address,uint256)":{notice:"Deducts tokens from a user's system balance."},"reserveAsyncNonce(uint256,address)":{notice:"Reserves an async nonce for exclusive service use"},"revokeAsyncNonce(uint256)":{notice:"Revokes a previously reserved async nonce"},"setEvvmID(uint256)":{notice:"Updates the EVVM ID within a 24-hour window after deployment or change."},"setPointStaker(address,bytes1)":{notice:"Faucet: Sets staker status for testing (Testnet only)."},"validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":{notice:"Validates a user signature and consumes a nonce for an EVVM service."}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/core/Core.sol":"Core"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:62},iF={abi:[{type:"constructor",inputs:[{name:"_coreAddress",type:"address",internalType:"address"},{name:"_initialOwner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptChangeEvvmAddress",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptOffer",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"offerID",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptProposeAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addCustomMetadata",inputs:[{name:"user",type:"address",internalType:"address"},{name:"identity",type:"string",internalType:"string"},{name:"value",type:"string",internalType:"string"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelChangeEvvmAddress",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelProposeAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelWithdrawPrincipalTokens",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimWithdrawPrincipalTokens",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"flushCustomMetadata",inputs:[{name:"user",type:"address",internalType:"address"},{name:"identity",type:"string",internalType:"string"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"flushUsername",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAdmin",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getAdminFullDetails",inputs:[],outputs:[{name:"currentAdmin",type:"address",internalType:"address"},{name:"proposalAdmin",type:"address",internalType:"address"},{name:"timeToAcceptAdmin",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getAmountOfCustomMetadata",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCoreAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCoreAddressFullDetails",inputs:[],outputs:[{name:"currentEvvmAddress",type:"address",internalType:"address"},{name:"proposalEvvmAddress",type:"address",internalType:"address"},{name:"timeToAcceptEvvmAddress",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCustomMetadataMaxSlotsOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getExpireDateOfIdentity",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getFullCustomMetadataOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"string[]",internalType:"string[]"}],stateMutability:"view"},{type:"function",name:"getIdentityBasicMetadata",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getLengthOfOffersUsername",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"length",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getOffersOfUsername",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"offers",type:"tuple[]",internalType:"struct NameServiceStructs.OfferMetadata[]",components:[{name:"offerer",type:"address",internalType:"address"},{name:"expirationDate",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getOwnerOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getPriceOfRegistration",inputs:[{name:"username",type:"string",internalType:"string"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPriceToAddCustomMetadata",inputs:[],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPriceToFlushCustomMetadata",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPriceToFlushUsername",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPriceToRemoveCustomMetadata",inputs:[],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getProposedWithdrawAmountFullDetails",inputs:[],outputs:[{name:"proposalAmountToWithdrawTokens",type:"uint256",internalType:"uint256"},{name:"timeToAcceptAmountToWithdrawTokens",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getSingleCustomMetadataOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"},{name:"_key",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"getSingleOfferOfUsername",inputs:[{name:"_username",type:"string",internalType:"string"},{name:"_offerID",type:"uint256",internalType:"uint256"}],outputs:[{name:"offer",type:"tuple",internalType:"struct NameServiceStructs.OfferMetadata",components:[{name:"offerer",type:"address",internalType:"address"},{name:"expirationDate",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"hashUsername",inputs:[{name:"_username",type:"string",internalType:"string"},{name:"_randomNumber",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"pure"},{type:"function",name:"isUsernameAvailable",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"makeOffer",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"expirationDate",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[{name:"offerID",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"preRegistrationUsername",inputs:[{name:"user",type:"address",internalType:"address"},{name:"hashPreRegisteredUsername",type:"bytes32",internalType:"bytes32"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeAdmin",inputs:[{name:"_adminToPropose",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeChangeEvvmAddress",inputs:[{name:"_newEvvmAddress",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeWithdrawPrincipalTokens",inputs:[{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"registrationUsername",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"lockNumber",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"removeCustomMetadata",inputs:[{name:"user",type:"address",internalType:"address"},{name:"identity",type:"string",internalType:"string"},{name:"key",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renewUsername",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"seePriceToRenew",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"strictVerifyIfIdentityExist",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"verifyIfIdentityExists",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"verifyStrictAndGetOwnerOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"answer",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"withdrawOffer",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"offerID",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"AmountMustBeGreaterThanZero",inputs:[]},{type:"error",name:"CannotBeBeforeCurrentTime",inputs:[]},{type:"error",name:"EmptyCustomMetadata",inputs:[]},{type:"error",name:"IdentityIsNotAUsername",inputs:[]},{type:"error",name:"InvalidAdminProposal",inputs:[]},{type:"error",name:"InvalidEvvmAddress",inputs:[]},{type:"error",name:"InvalidKey",inputs:[]},{type:"error",name:"InvalidUsername",inputs:[]},{type:"error",name:"InvalidWithdrawAmount",inputs:[]},{type:"error",name:"LockTimeNotExpired",inputs:[]},{type:"error",name:"OfferInactive",inputs:[]},{type:"error",name:"OwnershipExpired",inputs:[]},{type:"error",name:"PreRegistrationNotValid",inputs:[]},{type:"error",name:"RenewalTimeLimitExceeded",inputs:[]},{type:"error",name:"SenderIsNotAdmin",inputs:[]},{type:"error",name:"SenderIsNotProposedAdmin",inputs:[]},{type:"error",name:"UserIsNotOwnerOfIdentity",inputs:[]},{type:"error",name:"UserIsNotOwnerOfOffer",inputs:[]},{type:"error",name:"UsernameAlreadyRegistered",inputs:[]}],bytecode:{object:"0x608034609657601f6146e938819003918201601f19168301916001600160401b03831184841017609a578084926040948552833981010312609657604b602060458360ae565b920160ae565b600680546001600160a01b03199081166001600160a01b039485169081179092556009805482169490931693909317909155600d805490921617905560405161462790816100c28239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820360965756fe6080806040526004361015610012575f80fd5b5f905f3560e01c9081627802df14613260575080630c78d2c6146131e25780630d3dcb9f14613188578063147bf6c4146130e157806317c85152146130635780631f4131fb146130285780632096b7681461300257806322abdafa14612d2c57806322afca3814612cd757806324866f1514612c9b57806336e7a1b81461180057806343a82d6714612c0757806348ffba5514612b5c57806353462f82146127a257806354dc585d146127665780635548a76214612729578063570b245b146126ec5780635f94da09146123ea5780636b5bb1ca14611efa5780636e9960c3146123c35780637126b2a31461238757806371e604f814611f3b57806375dab53b14611eff5780637bd9da7a14611efa5780637d0d960814611c4357806386c8ac5814611c0757806388ecb91f14611bcb5780638ffe264e1461180557806399e7bac214611800578063a6ba51ca1461177c578063b0bf2e1014611349578063b19517dd1461115c578063bc91a42814611120578063bcd5a47c146110fe578063c97da33e14611086578063cf1dc14614611049578063d2234a1a14611024578063d7fd313414610e97578063e7849f6214610e44578063eba5e53e14610db4578063ebee75fc14610aac578063ecdc7aff146106f5578063f5e993f5146103cd578063f69c6dec14610387578063f6d0ecbe146102995763fe7ab68314610217575f80fd5b34610296576020366003190112610296576004356001600160401b0381116102945761024790369060040161340a565b829160015b15610262575b61025c8493613c1b565b9261024c565b604051828282376020818481016001815203019020838552602052600160408520015461025257602083604051908152f35b505b80fd5b50346102965760206102aa36613493565b92909182604051938492833781016002815203019020908252602052604081209060405191818154916102dc83613a77565b808652926001811690811561035d575060011461031c575b61031885610304818703826136e2565b604051918291602083526020830190613674565b0390f35b815260208120939250905b80821061034357509091508101602001610304826103186102f4565b919260018160209254838588010152019101909291610327565b8695506103189693506020925061030494915060ff191682840152151560051b82010192936102f4565b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c36103bd366004860161340a565b90614134565b6040519015158152f35b503461029657806103dd366134c5565b9697998b9d9491969295939a8a829d9b9e9b600d546001600160a01b031693369061040792613933565b90604051809160208201936060855260808301600d905260a083016c3bb4ba34323930bba7b33332b960991b90526040830160a0905260c0830161044a91613674565b90606083015203601f198101825261046290826136e2565b51902092823b156106f1578b6104958896928d9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e6576106cd575b5050604051878a82376020818981016001815203019020888b526020526001600160a01b0360408b2054166001600160a01b038616036106be579061051994939291866106aa575b5050505060405184878237602081868101600181520301902085885260205260026040882001549061445a565b604051828582376020818481016001815203019020838652602052604085206001600160601b0360a01b8154169055600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa90811561069f578691610669575b5060405183868237602081858101600181520301902084875260205260026040872001548080046001148115171561065557916105c16105c69261031c6105cc950490613722565b613722565b3361445a565b6040518184823760208183810160018152030190208285526020526020600260408620015493826040519384928337810160018152030190209083526020526002604083200154808004600114811517156106415761063c9160c7610635920460021c90613722565b825461372f565b815580f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b87526011600452602487fd5b90506020813d602011610697575b81610684602093836136e2565b8101031261069357515f610579565b5f80fd5b3d9150610677565b6040513d88823e3d90fd5b6106b5938786614188565b5f8080806104ec565b630504ed8560e21b8a5260048afd5b816106d7916136e2565b6106e257895f6104a4565b8980fd5b6040513d84823e3d90fd5b8680fd5b5034610296578061072b610708366134c5565b999b95929d949391978b9d8d929a9c6001600160a01b03600d5416933691613933565b8c610792604051809261077e602083019560608752601460808501527f72656d6f7665437573746f6d4d6574616461746100000000000000000000000060a085015260a0604085015260c0840190613674565b90606083015203601f1981018352826136e2565b51902092823b156106f157876107c58896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657610a97575b50506001600160a01b03604051888a82376020818a8101600c81520301902054166001600160a01b03821603610a8857856002604051898b82376020818b8101600c81520301902001541115610a7957908861083b959493926108356138a0565b90614286565b80600260405184868237602081868101600c8152030190200154145f146109b95760029260209160405184838237838186810188815203019020908752825261088660408720613aca565b8260405193849283378101600c81520301902001805480156109a5575f190190556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561099a57849161096b575b506108e6578280f35b6020600491604051928380926309a69f5760e01b82525afa90811561096057839161092e575b508060050290600582040361064157610928916105c691613722565b5f808280f35b90506020813d602011610958575b81610949602093836136e2565b8101031261069357515f61090c565b3d915061093c565b6040513d85823e3d90fd5b61098d915060203d602011610993575b61098581836136e2565b810190613888565b5f6108dd565b503d61097b565b6040513d86823e3d90fd5b634e487b7160e01b84526011600452602484fd5b600260405183858237602081858101600c8152030190200154811015610a3457604051828482376020818481016002815203019020600182018083116106555790600192918752602052610a2e6040872060405185878237602081878101600281520301902083895260205260408820614055565b016109b9565b5060206002926040518382823782818581018781520301902084604051858482378481878101600c815203019020015487528252610a7460408720613aca565b610886565b630eda9c3d60e31b8a5260048afd5b6322de326160e11b8a5260048afd5b81610aa1916136e2565b6106e257895f6107d4565b50346102965780610abc36613587565b97988a9b99610ae3829e96939997959c6001600160a01b03600d9a969a5416933691613933565b604051610b3281610b24602082019460408652600d60608401526c72656e6577557365726e616d6560981b60808401526080604084015260a0830190613674565b03601f1981018352826136e2565b51902092823b156106f1578b610b658896928a9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657610d9b575b50506001600160a01b03604051898982376020818b8101600c81520301902054166001600160a01b03861603610d8c5760405188888237600c818a0190815281900360200190206004015460f81b6001600160f81b031916600160f81b14610d7d576001604051898982376020818b8101600c815203019020015463bbf81e00420190814211610d695711610d5a5790610c1c93929186610c158a8a613c29565b8097614286565b6001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115610d4f578791610d30575b50610c8a575b5050509060206001928260405193849283378101600c815203019020018054906301e285008201809211610641575580f35b906020600492604051938480926309a69f5760e01b82525afa91821561069f578692610cfc575b50603281029080820460321490151715610ce8576105c66020936105c160019796946064610ce0950490613722565b91925f610c58565b634e487b7160e01b86526011600452602486fd5b9091506020813d602011610d28575b81610d18602093836136e2565b810103126106935751905f610cb1565b3d9150610d0b565b610d49915060203d6020116109935761098581836136e2565b5f610c52565b6040513d89823e3d90fd5b6356657c2160e01b8952600489fd5b634e487b7160e01b8b52601160045260248bfd5b631591d30560e11b8952600489fd5b6322de326160e11b8952600489fd5b81610da5916136e2565b610db057885f610b74565b8880fd5b50346102965780600319360112610296576001600160a01b03600a5416338103610e3557600b544210610e26578160408051610def816136c7565b83815282602082015201526001600160601b0360a01b60095416176009556001600160601b0360a01b600a5416600a5580600b5580f35b63018a18db60e51b8252600482fd5b632dba366760e21b8252600482fd5b50346102965780600319360112610296576001600160a01b0360095416803303610e88576005544210610e2657600454610e7d9161445a565b806004558060055580f35b636587b01b60e11b8252600482fd5b5034610296576020366003190112610296576004356001600160401b03811161029457610ec890369060040161340a565b600360405182848237602081848101600c815203019020015490610eeb82613f41565b91610ef960405193846136e2565b808352610f08601f1991613f41565b01845b81811061100d575050835b600360405183868237602081858101600c8152030190200154811015610f9f57600190604051838682376020818581018581520301902081875260205260408620600260405191610f66836136c7565b6001600160a01b03815416835284810154602084015201546040820152610f8d8286613f58565b52610f988185613f58565b5001610f16565b8285604051918291602083016020845282518091526020604085019301915b818110610fcc575050500390f35b919350916020606082610fff6001948851604080916001600160a01b038151168452602081015160208501520151910152565b019401910191849392610fbe565b602090611018613915565b82828701015201610f0b565b5034610296578060031936011261029657604060045460055482519182526020820152f35b50346102965780600319360112610296576001600160a01b0360095416330361107757806004558060055580f35b636587b01b60e11b8152600490fd5b503461029657602036600319011261029657600435906001600160401b03821161029657604060016110bb366004860161340a565b60206001600160a01b038594939451838682378281858101600c81520301902054169382865193849283378101600c815203019020015482519182526020820152f35b503461029657602061111861111236613493565b91614026565b604051908152f35b503461029657602036600319011261029657600435906001600160401b038211610296576020611118611156366004860161340a565b90613f80565b5034610296576020366003190112610296576004356001600160401b0381116102945761118d90369060040161340a565b91600260405184848237602081868101600c8152030190200154926111b184613f41565b936111bf60405195866136e2565b8085526111ce601f1991613f41565b01825b818110611338575050815b600260405183868237602081858101600c81520301902001548110156112d1576040518285823760208184810160028152030190208184526020526040832060405190849080549061122d82613a77565b80855291600181169081156112aa5750600114611273575b505090611257816001949303826136e2565b6112618288613f58565b5261126c8187613f58565b50016111dc565b8652602086208692505b818310611294575050810160200161125782611245565b600181602092548386880101520192019161127d565b60ff191660208087019190915292151560051b850190920192506112579150839050611245565b84836040519182916020830160208452825180915260408401602060408360051b870101940192905b82821061130957505050500390f35b919360019193955060206113288192603f198a82030186528851613674565b96019201920185949391926112fa565b8060606020809389010152016111d1565b50346102965761016036600319011261029657611364613437565b6024356001600160401b0381116117785761138390369060040161340a565b61138b613463565b9260a435936001600160a01b03851685036117745760e4356001600160401b0381116106f1576113bf90369060040161340a565b91909587610144356001600160401b038111610294576113e390369060040161340a565b94909382996001600160a01b03600d54166113ff368b8d613933565b60405161145a8161143c602082019460808652600960a08401526836b0b5b2a7b33332b960b91b60c084015260c0604084015260e0830190613674565b6044356060830152606435608083015203601f1981018352826136e2565b519020813b156117745785809461148f8c978a96604051998a9889978896637d3d171560e11b885260c435936004890161380b565b03925af180156106e65761175b575b505060405185878237600c81870190815281900360200190206004015460f81b6001600160f81b031916600160f81b14801561174a575b61173b5742606435111561172c576044351561171d579061150692916101249794973590610104356044358a614286565b6040518284823760208184810160018152030190208186526020526001600160a01b03604086205416156115425761153d90613c1b565b611506565b926103e36044350260443581046103e303610ce8576103e89004906001600160a01b0360405191611572836136c7565b16815260026020820160643581526040830190848252604051868882376020818881016001815203019020888a526020526001600160a01b038060408b20955116166001600160601b0360a01b85541617845551600184015551910155600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa90811561069f5786916116eb575b50607d60443502906044358204607d0361065557602096926116396105c661164d946105c161164695620186a061010435930490613722565b6103206044350490613722565b8254613722565b90556003604051828482378581848101600c815203019020015483115f1461169b57836003928260405193849283378101600c815203019020016116918154613c1b565b9055604051908152f35b6003604051828482378581848101600c8152030190200154156116c0575b5050611118565b836003928260405193849283378101600c815203019020016116e28154613c1b565b90555f806116b9565b90506020813d602011611715575b81611706602093836136e2565b8101031261069357515f611600565b3d91506116f9565b635e85ae7360e01b8852600488fd5b632cce8b5d60e21b8852600488fd5b630a1de65160e31b8852600488fd5b506117558587613b19565b156114d5565b81611765916136e2565b61177057875f61149e565b8780fd5b8580fd5b8280fd5b503461029657602036600319011261029657611796613437565b6001600160a01b03600954163303610e88576001600160a01b031680156117f1576001600160601b0360a01b60075416176007556201518042018042116117dd5760085580f35b634e487b7160e01b82526011600452602482fd5b63203e99b760e21b8252600482fd5b613479565b50346102965761183b90611818366134c5565b979195939096948b9e8b9d9c6001600160a01b03600d9d969d5416953691613933565b60405161188d818d61077e602083019560608752601460808501527f726567697374726174696f6e557365726e616d6500000000000000000000000060a085015260a0604085015260c0840190613674565b51902094843b15611bc7578c8f95936118c3908998969488946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af18015611bbc57908a91611ba7575b50506001600160a01b0360095416966001600160a01b0381168098141580611b8d575b611b7e57611906898c614134565b15611b6f57936119309361193a96936119299389611935988f8e61083591613f80565b8689614026565b614379565b61384e565b9160405193816001600160a01b0385519660208181890199808b835e8101600c815203019020541614801590611b4d575b611b3e576301e2850042018042116106555791869760049288946040519361199285613698565b8452602084019081526001600160a01b03806040860193888552602060608801968a8852608089019a8b528260405193849283378101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff198254161790556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561069f578691611b1f575b50611a79575b5050906020600492604051928391518091835e8101600c815203019020828155826001820155826002820155826003820155015580f35b60049192939450602090604051928380926309a69f5760e01b82525afa908115611b14578591611ae2575b5080603202906032820403611ace57600492611ac76105c6879694602094613722565b9192611a42565b634e487b7160e01b85526011600452602485fd5b90506020813d602011611b0c575b81611afd602093836136e2565b8101031261069357515f611aa4565b3d9150611af0565b6040513d87823e3d90fd5b611b38915060203d6020116109935761098581836136e2565b5f611a3c565b6321efd8cf60e11b8652600486fd5b5060016040516020818751808a835e8101600c8152030190200154421061196b565b633efbb39b60e11b8a5260048afd5b630a1de65160e31b8a5260048afd5b50611ba1611b9c368b8e613933565b6144f0565b156118f8565b81611bb1916136e2565b610db057885f6118d5565b6040513d8c823e3d90fd5b8e80fd5b50346102965780600319360112610296576001600160a01b03600954163303611077576001600160601b0360a01b600a5416600a5580600b5580f35b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c3611c3d366004860161340a565b90613e91565b50346102965780611c5336613587565b98809b95939c949198611c788c6001600160a01b03600d9b9a969b5416933691613933565b604051611cbf81610b246020820194604086526013606084015272666c757368437573746f6d4d6574616461746160681b60808401526080604084015260a0830190613674565b51902092823b156106f15787611cf28896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657611ee5575b50506001600160a01b03604051888882376020818a8101600c81520301902054166001600160a01b03821603610d8c576002604051888882376020818a8101600c815203019020015415611ed6579087611d6295949392610835898961374f565b835b84600260405185858237602081878101600c8152030190200154821015611db65750600190604051848482376020818681016002815203019020818752602052611db060408720613aca565b01611d64565b9390506001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561069f578691611eb7575b50611e15575b50509060206002928260405193849283378101600c815203019020015580f35b60049192939450602090604051928380926309a69f5760e01b82525afa908115611b14578591611e85575b5080600502906005820403611ace57600292611e7e6105c68796946105c1602095886040518988823788818b8101600c81520301902001549061373c565b9192611df5565b90506020813d602011611eaf575b81611ea0602093836136e2565b8101031261069357515f611e40565b3d9150611e93565b611ed0915060203d6020116109935761098581836136e2565b5f611def565b6334b7a09160e01b8952600489fd5b81611eef916136e2565b610db057885f611d01565b61363f565b503461029657602036600319011261029657600435906001600160401b038211610296576020611118611f35366004860161340a565b90613c29565b50346102965761014036600319011261029657611f56613437565b6024356001600160401b03811161177857611f7590369060040161340a565b916044356001600160401b03811161238357611f9590369060040161340a565b9091611f9f61344d565b611fa7613463565b9060c4356001600160401b038111610db057611fc790369060040161340a565b9390928960e4359561012435946001600160401b03861161177857612019968c8a610b246120778f9a8f61200261202192369060040161340a565b9e909d6001600160a01b03600d5416973691613933565b943691613933565b6040519283916120656020840196606088526011608086015270616464437573746f6d4d6574616461746160781b60a086015260a0604086015260c0850190613674565b838103601f1901606085015290613674565b519020813b15611774578580946120ac8a978a96604051998a9889978896637d3d171560e11b885260a435936004890161380b565b03925af180156106e65761236e575b50506001600160a01b036040518a8a82376020818c8101600c81520301902054166001600160a01b03831603610a8857851561235f57906121069392918561010435926108356138a0565b6001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115612354578891612335575b50612283575b5050604051848482376020818681016002815203019020600260405186868237602081888101600c8152030190200154865260205260408520916001600160401b03821161226f5761219e826121988554613a77565b85613bce565b8590601f831160011461220557826002969593602095936121d4938a926121fa575b50508160011b915f199060031b1c19161790565b90555b8260405193849283378101600c815203019020016121f58154613c1b565b905580f35b013590505f806121c0565b8387526020872091601f198416885b81811061225757509260019285926002999896602098961061223e575b505050811b0190556121d7565b01355f19600384901b60f8161c191690555f8080612231565b91936020600181928787013581550195019201612214565b634e487b7160e01b86526041600452602486fd5b6020600491604051928380926309a69f5760e01b82525afa908115610d4f578791612303575b5080600502906005820403610655576122c06138a0565b6032810290808204603214901517156122ef57916105c16105c69260646122e8950490613722565b5f80612142565b634e487b7160e01b88526011600452602488fd5b90506020813d60201161232d575b8161231e602093836136e2565b8101031261069357515f6122a9565b3d9150612311565b61234e915060203d6020116109935761098581836136e2565b5f61213c565b6040513d8a823e3d90fd5b6334b7a09160e01b8a5260048afd5b81612378916136e2565b6106e257895f6120bb565b8480fd5b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c36123bd366004860161340a565b90613b19565b503461029657806003193601126102965760206001600160a01b0360095416604051908152f35b503461029657806123fa36613587565b98809b95939c94919861241f8c6001600160a01b03600d9b9a969b5416933691613933565b60405161246081610b24602082019460408652600d60608401526c666c757368557365726e616d6560981b60808401526080604084015260a0830190613674565b51902092823b156106f157876124938896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e6576126d7575b50506001600160a01b03604051888882376020818a8101600c81520301902054166001600160a01b03821603610d8c576001604051888882376020818a8101600c81520301902001544210156126c85760405187878237600c81890190815281900360200190206004015460f81b6001600160f81b031916600160f81b14610d7d579087612537959493926108358989613978565b835b600260405184848237602081868101600c81520301902001548110156125895760019060405184848237602081868101600281520301902081875260205261258360408720613aca565b01612539565b5091600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115611b14578591612696575b5080600502906005820403611ace576105c6600493926105c16125f8936002604051878a8237602081898101600c81520301902001549061373c565b600360405182858237602081848101600c81520301902001546040519161261e83613698565b858352602083018681526001600160a01b0380604086019389855260608701958652602060808801998b8b528260405193849283378101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff1982541617905580f35b90506020813d6020116126c0575b816126b1602093836136e2565b8101031261069357515f6125bc565b3d91506126a4565b637d3b450560e11b8952600489fd5b816126e1916136e2565b610db057885f6124a2565b5034610296578060031936011261029657600654600754600854604080516001600160a01b03948516815293909216602084015290820152606090f35b5034610296578060031936011261029657600954600a54600b54604080516001600160a01b03948516815293909216602084015290820152606090f35b503461029657602036600319011261029657600435906001600160401b03821161029657602061111861279c366004860161340a565b90613978565b503461029657806127b2366134c5565b9697998b9d9491969295939a8a829d9b9e9b600d546001600160a01b03169336906127dc92613933565b90604051809160208201936060855260808301600b905260a083016a30b1b1b2b83a27b33332b960a91b90526040830160a0905260c0830161281d91613674565b90606083015203601f198101825261283590826136e2565b51902092823b156106f1578b6128688896928d9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657612b47575b50506001600160a01b03604051888b82376020818a8101600c81520301902054166001600160a01b03861603610a8857604051878a82376020818981016001815203019020888b526020526001600160a01b0360408b205416158015612b1c575b612b0d579061291694939291866106aa575050505060405184878237602081868101600181520301902085885260205260026040882001549061445a565b6040518285823760208184810160018152030190208386526020526001600160a01b036040862054166001600160a01b0360405184878237602081868101600c81520301902091166001600160601b0360a01b825416179055604051828582376020818481016001815203019020838652602052604085206001600160601b0360a01b81541690556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115610d4f578791612aee575b50612a45575b50506040518184823760208183810160018152030190208285526020526020600260408620015493826040519384928337810160018152030190209083526020526002604083200154808004600114811517156106415761063c9160c7610635920460021c90613722565b6020600491604051928380926309a69f5760e01b82525afa90811561069f578691612abc575b5060405183868237602081858101600181520301902084875260205260026040872001548080046001148115171561065557916105c16105c69260c7612ab5950460021c90613722565b5f806129da565b90506020813d602011612ae6575b81612ad7602093836136e2565b8101031261069357515f612a6b565b3d9150612aca565b612b07915060203d6020116109935761098581836136e2565b5f6129d4565b631388464960e01b8a5260048afd5b50604051878a82376020818981016001815203019020888b52602052600160408b20015442116128d8565b81612b51916136e2565b6106e257895f612877565b50346102965780600319360112610296576001600160a01b03600954163303611077576008544210612bf8576001600160a01b03600754168160408051612ba2816136c7565b83815282602082015201526001600160601b0360a01b60065416176006556001600160601b0360a01b60075416600755806008556001600160a01b03600654166001600160601b0360a01b600d541617600d5580f35b63018a18db60e51b8152600490fd5b50346102965760406060916020612c1d36613493565b929091612c28613915565b5082865193849283378101600181520301902090825260205220600260405191612c51836136c7565b6001600160a01b0381541683526001810154602084015201546040820152612c996040518092604080916001600160a01b038151168452602081015160208501520151910152565bf35b50346102965780600319360112610296576001600160a01b03600954163303611077576001600160601b0360a01b600754166007558060085580f35b503461029657602036600319011261029657600435906001600160401b038211610296576020600181612d0d366004870161340a565b91908260405193849283378101600c8152030190200154604051908152f35b50346106935761012036600319011261069357612d47613437565b602435604435916001600160a01b038316830361069357612d6661344d565b60a4356001600160401b03811161069357612d8590369060040161340a565b949060c43595610104356001600160401b03811161069357612dab90369060040161340a565b9390926001600160a01b03600d5416604051602081019060408252601760608201527f707265526567697374726174696f6e557365726e616d6500000000000000000060808201528a604082015260808152612e0860a0826136e2565b519020813b15610693575f8094612e3d8b978b96604051998a9889978896637d3d171560e11b8852608435936004890161380b565b03925af18015612ff757612fe2575b5085612fcb575b5050506107084201804211611ace57906004916001600160a01b0360405192612e7b84613698565b168252602082019081526040820186815260608301918783526001600160a01b0380602080612eb761193560808a019b600160f81b8d52614379565b604051928184925191829101835e8101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff198254161790556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561099a578491612fac575b50612f44578280f35b6020600491604051928380926309a69f5760e01b82525afa908115610960578391612f78575b50610928916105c691613722565b90506020813d602011612fa4575b81612f93602093836136e2565b810103126106935751610928612f6a565b3d9150612f86565b612fc5915060203d6020116109935761098581836136e2565b5f612f3b565b612fda9260e435908786614188565b5f8080612e53565b612fef9197505f906136e2565b5f955f612e4c565b6040513d5f823e3d90fd5b34610693575f3660031901126106935760206001600160a01b0360065416604051908152f35b34610693576020366003190112610693576004356001600160401b0381116106935761111861305d602092369060040161340a565b9061374f565b34610693575f36600319011261069357600460206001600160a01b03600d541660405192838092630be428a960e11b82525afa8015612ff7575f906130ae575b602090604051908152f35b506020813d6020116130d9575b816130c8602093836136e2565b8101031261069357602090516130a3565b3d91506130bb565b34610693576020366003190112610693576130fa613437565b6001600160a01b036009541690813303613179576001600160a01b031690811590811561316f575b50613160576001600160601b0360a01b600a541617600a5562015180420180421161314c57600b55005b634e487b7160e01b5f52601160045260245ffd5b6394aca82b60e01b5f5260045ffd5b9050811482613122565b636587b01b60e11b5f5260045ffd5b34610693576020366003190112610693576004356001600160401b038111610693576001600160a01b0360206131c38193369060040161340a565b91908260405193849283378101600c8152030190205416604051908152f35b34610693576020366003190112610693576004356001600160401b03811161069357613214602091369060040161340a565b5f916132208282613e91565b613238575b50506001600160a01b0360405191168152f35b6001600160a01b03925083908260405193849283378101600c81520301902054168280613225565b3461069357602036600319011261069357600435906001600160a01b0360095416330361317957600d5463280e32fb60e01b82526001600160a01b0316602082600481845afa918215612ff7575f926133d9575b506001600160a01b036040519263d4fac45d60e01b8452306004850152166024830152602082604481845afa918215612ff7575f926133a4575b506020600491604051928380926309a69f5760e01b82525afa908115612ff7575f91613372575b506113db01806113db1161314c57829161333461333a925f5490613722565b9061372f565b10801561336a575b61335b5760045562015180420180421161314c57600555005b630db73cdf60e41b5f5260045ffd5b508015613342565b90506020813d60201161339c575b8161338d602093836136e2565b81010312610693575183613315565b3d9150613380565b9091506020813d6020116133d1575b816133c0602093836136e2565b8101031261069357519060206132ee565b3d91506133b3565b6133fc91925060203d602011613403575b6133f481836136e2565b810190613703565b90836132b4565b503d6133ea565b9181601f84011215610693578235916001600160401b038311610693576020838186019501011161069357565b600435906001600160a01b038216820361069357565b606435906001600160a01b038216820361069357565b608435906001600160a01b038216820361069357565b34610693575f3660031901126106935760206111186138a0565b604060031982011261069357600435906001600160401b038211610693576134bd9160040161340a565b909160243590565b90610140600319830112610693576004356001600160a01b038116810361069357916024356001600160401b03811161069357816135059160040161340a565b92909291604435916064356001600160a01b038116810361069357916084356001600160a01b0381168103610693579160a4359160c4356001600160401b03811161069357816135579160040161340a565b9290929160e43591610104359161012435906001600160401b038211610693576135839160040161340a565b9091565b610120600319820112610693576004356001600160a01b038116810361069357916024356001600160401b03811161069357826135c69160040161340a565b929092916044356001600160a01b038116810361069357916064356001600160a01b038116810361069357916084359160a4356001600160401b03811161069357816136149160040161340a565b9290929160c4359160e4359161010435906001600160401b038211610693576135839160040161340a565b34610693576020366003190112610693576004356001600160401b0381116106935760026020612d0d8193369060040161340a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a081019081106001600160401b038211176136b357604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176136b357604052565b90601f801991011681019081106001600160401b038211176136b357604052565b9081602091031261069357516001600160a01b03811681036106935790565b9190820180921161314c57565b9190820391821161314c57565b8181029291811591840414171561314c57565b60049060206001600160a01b03600d5416604051938480926309a69f5760e01b82525afa918215612ff7575f926137b7575b5081600a0291600a83040361314c578260206002926137b49560405193849283378101600c81520301902001549061373c565b90565b9091506020813d6020116137e3575b816137d3602093836136e2565b810103126106935751905f613781565b3d91506137c6565b908060209392818452848401375f828201840152601f01601f1916010190565b929360e0946001600160a01b036137b499979481809516875216602086015260408501521660608301526080820152600160a08201528160c082015201916137eb565b906138866021602093604051948591600160fe1b828401528051918291018484015e81015f838201520301601f1981018452836136e2565b565b90816020910312610693575180151581036106935790565b600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f916138e3575b5080600a0290600a82040361314c5790565b90506020813d60201161390d575b816138fe602093836136e2565b8101031261069357515f6138d1565b3d91506138f1565b60405190613922826136c7565b5f6040838281528260208201520152565b9291926001600160401b0382116136b3576040519161395c601f8201601f1916602001846136e2565b829481845281830111610693578281602093845f960137010152565b6001600160a01b03600d541690604051926309a69f5760e01b8452602084600481865afa938415612ff7575f94613a43575b5083600a0293600a85040361314c57600493600282602080956139e19560405193849283378101600c81520301902001549061373c565b91604051938480926309a69f5760e01b82525afa908115612ff7575f91613a0d575b6137b49250613722565b90506020823d602011613a3b575b81613a28602093836136e2565b81010312610693576137b4915190613a03565b3d9150613a1b565b9093506020813d602011613a6f575b81613a5f602093836136e2565b810103126106935751925f6139aa565b3d9150613a52565b90600182811c92168015613aa5575b6020831014613a9157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691613a86565b5f5b828110613abd57505050565b5f82820155600101613ab1565b613ad48154613a77565b9081613ade575050565b81601f5f9311600114613aef575055565b81835260208320613b0c91601f0160051c84190190600101613aaf565b8082528160208120915555565b9060405181838237600c81830190815281900360200190206004015460f81b6001600160f81b031916600160f81b03613ba9576001600160a01b0360405182848237602081848101600c815203019020541615918215613b84575b505015613b7f575f90565b600190565b600192506020908260405193849283378101600c815203019020015415155f80613b74565b60206001928260405193849283378101600c8152030190200154155f14613b7f575f90565b91601f8211613bdc57505050565b808211613be857505050565b613886925f5260205f20916020601f830160051c9210613c13575b601f82910160051c039101613aaf565b5f9150613c03565b5f19811461314c5760010190565b905f91600160405183838237600c848201908152819003602001902001544211613e15576040518282823760208184810160018152030190205f8052602052600160405f200154613d27575b505080613c8a5750681b1ae4d6e2ef50000090565b60049060206001600160a01b03600d5416604051938480926309a69f5760e01b82525afa918215612ff7575f92613cf3575b506005810290810460050361314c576103e89004816207a12002916207a12083040361314c5781811115613cee575090565b905090565b9091506020813d602011613d1f575b81613d0f602093836136e2565b810103126106935751905f613cbc565b3d9150613d02565b5f5b600360405184848237602081868101600c8152030190200154811015613e0b57604051838382376020818581016001815203019020815f5260205242600160405f2001541180613dda575b613d81575b600101613d29565b604051838382376020818581016001815203019020815f5260205283600260405f2001541115613d79579250604051828282376020818481016001815203019020835f526020526001600260405f200154939050613d79565b50604051838382376020818581016001815203019020815f526020526001600160a01b0360405f2054161515613d74565b5050505f80613c75565b505050600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f91613e5f575b50806207a12002906207a12082040361314c5790565b90506020813d602011613e89575b81613e7a602093836136e2565b8101031261069357515f613e49565b3d9150613e6d565b9060405181838237600c81830190815281900360200190206004015460f81b6001600160f81b031916600160f81b03613f1c576001600160a01b0360405182848237602081848101600c815203019020541615918215613ef7575b505015613b7f575f80fd5b600192506020908260405193849283378101600c815203019020015415155f80613eec565b60206001928260405193849283378101600c8152030190200154155f14613b7f575f80fd5b6001600160401b0381116136b35760051b60200190565b8051821015613f6c5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90600360405182848237600c8382019081528190036020019020015415613faa576137b491613c29565b5050600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f91613ff4575b5060648102908082046064149015171561314c5790565b90506020813d60201161401e575b8161400f602093836136e2565b8101031261069357515f613fdd565b3d9150614002565b919060208061404f926040519481869284840198893782019083820152030180845201826136e2565b51902090565b91909182811461412f576140698354613a77565b6001600160401b0381116136b35761408b816140858454613a77565b84613bce565b5f93601f82116001146140c9576140ba92939482915f926140be5750508160011b915f199060031b1c19161790565b9055565b015490505f806121c0565b601f198216905f5260205f2094835f5260205f20915f5b818110614117575095836001959697106140ff575b505050811b019055565b01545f1960f88460031b161c191690555f80806140f5565b9192600180602092868b0154815501940192016140e0565b509050565b90600160405182848237602081848101600c8152030190200154155f1461415c575050600190565b60206001928260405193849283378101600c8152030190200154624f1a00810180911161314c57421190565b9192909493946001600160a01b03600d5416926040519463280e32fb60e01b8652602086600481885afa958615612ff7575f96614265575b50843b15610693576001600160a01b03975f9789958661424a948b976040519d8e9c8d9b8c9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528a6101648b015216606489015288608489015260a48801523060c48801521660e486015261010485015260016101248501526101806101448501526101848401916137eb565b03925af18015612ff75761425b5750565b5f613886916136e2565b61427f91965060203d602011613403576133f481836136e2565b945f6141c0565b600d5460405163280e32fb60e01b815295966001600160a01b0390911694929390602087600481895afa968715612ff7575f97614347575b50853b15610693576001600160a01b03985f988a8a9661424a9582996040519e8f9d8e9c8d9b63487e5a7760e11b8d521660048c01523060248c015261016060448c01528b6101648c01521660648a0152608489015260a48801523060c48801521660e486015261010485015260016101248501526101806101448501526101848401916137eb565b61436191975060203d602011613403576133f481836136e2565b955f6142be565b908151811015613f6c570160200190565b604051906143886080836136e2565b60428252602082016060368237825115613f6c5760309053815160011015613f6c57607860218301535f5b602081106143c057505090565b81811a90600482901c600f166010811015613f6c578160011b928284046002148315171561314c57836002018060021161314c57600f926f181899199a1a9b1b9c1cb0b131b232b360811b901a906144189088614368565b5316916010831015613f6c576003018060031161314c576001926f181899199a1a9b1b9c1cb0b131b232b360811b901a906144539086614368565b53016143b3565b600d5460405163280e32fb60e01b815292906001600160a01b0316602084600481845afa938415612ff7575f946144cf575b50803b156106935760405163c898a6e960e01b81526001600160a01b03938416600482015293909216602484015260448301525f9082908183816064810161424a565b6144e991945060203d602011613403576133f481836136e2565b925f61448c565b80516004811061455f5715613f6c576020810151614517906001600160f81b0319166145a4565b1561459f575f5b8151811015614598576001600160f81b031961453a8284614368565b5116600360fc1b8110159081614589575b501580614565575b61455f5760010161451e565b50505f90565b506145836001600160f81b031961457c8385614368565b51166145a4565b15614553565b603960f81b101590505f61454b565b5050600190565b505f90565b60ff60f81b16604160f81b81101590816145e2575b81156145c3575090565b606160f81b8110159150816145d6575090565b603d60f91b1015905090565b602d60f91b81111591506145b956fea26469706673582212200394b24bebc7e0da5e621acd9bc3d368bceba007a21ed83a6b3d974ef6028fef64736f6c63430008210033",sourceMap:"2765:56961:64:-:0;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;4691:11;2765:56961;;-1:-1:-1;;;;;;2765:56961:64;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;4735:5;2765:56961;;;;;;;;;;;;;;;4774:25;2765:56961;;;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;-1:-1:-1;2765:56961:64;;;;;-1:-1:-1;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::o",linkReferences:{}},deployedBytecode:{object:"0x6080806040526004361015610012575f80fd5b5f905f3560e01c9081627802df14613260575080630c78d2c6146131e25780630d3dcb9f14613188578063147bf6c4146130e157806317c85152146130635780631f4131fb146130285780632096b7681461300257806322abdafa14612d2c57806322afca3814612cd757806324866f1514612c9b57806336e7a1b81461180057806343a82d6714612c0757806348ffba5514612b5c57806353462f82146127a257806354dc585d146127665780635548a76214612729578063570b245b146126ec5780635f94da09146123ea5780636b5bb1ca14611efa5780636e9960c3146123c35780637126b2a31461238757806371e604f814611f3b57806375dab53b14611eff5780637bd9da7a14611efa5780637d0d960814611c4357806386c8ac5814611c0757806388ecb91f14611bcb5780638ffe264e1461180557806399e7bac214611800578063a6ba51ca1461177c578063b0bf2e1014611349578063b19517dd1461115c578063bc91a42814611120578063bcd5a47c146110fe578063c97da33e14611086578063cf1dc14614611049578063d2234a1a14611024578063d7fd313414610e97578063e7849f6214610e44578063eba5e53e14610db4578063ebee75fc14610aac578063ecdc7aff146106f5578063f5e993f5146103cd578063f69c6dec14610387578063f6d0ecbe146102995763fe7ab68314610217575f80fd5b34610296576020366003190112610296576004356001600160401b0381116102945761024790369060040161340a565b829160015b15610262575b61025c8493613c1b565b9261024c565b604051828282376020818481016001815203019020838552602052600160408520015461025257602083604051908152f35b505b80fd5b50346102965760206102aa36613493565b92909182604051938492833781016002815203019020908252602052604081209060405191818154916102dc83613a77565b808652926001811690811561035d575060011461031c575b61031885610304818703826136e2565b604051918291602083526020830190613674565b0390f35b815260208120939250905b80821061034357509091508101602001610304826103186102f4565b919260018160209254838588010152019101909291610327565b8695506103189693506020925061030494915060ff191682840152151560051b82010192936102f4565b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c36103bd366004860161340a565b90614134565b6040519015158152f35b503461029657806103dd366134c5565b9697998b9d9491969295939a8a829d9b9e9b600d546001600160a01b031693369061040792613933565b90604051809160208201936060855260808301600d905260a083016c3bb4ba34323930bba7b33332b960991b90526040830160a0905260c0830161044a91613674565b90606083015203601f198101825261046290826136e2565b51902092823b156106f1578b6104958896928d9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e6576106cd575b5050604051878a82376020818981016001815203019020888b526020526001600160a01b0360408b2054166001600160a01b038616036106be579061051994939291866106aa575b5050505060405184878237602081868101600181520301902085885260205260026040882001549061445a565b604051828582376020818481016001815203019020838652602052604085206001600160601b0360a01b8154169055600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa90811561069f578691610669575b5060405183868237602081858101600181520301902084875260205260026040872001548080046001148115171561065557916105c16105c69261031c6105cc950490613722565b613722565b3361445a565b6040518184823760208183810160018152030190208285526020526020600260408620015493826040519384928337810160018152030190209083526020526002604083200154808004600114811517156106415761063c9160c7610635920460021c90613722565b825461372f565b815580f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b87526011600452602487fd5b90506020813d602011610697575b81610684602093836136e2565b8101031261069357515f610579565b5f80fd5b3d9150610677565b6040513d88823e3d90fd5b6106b5938786614188565b5f8080806104ec565b630504ed8560e21b8a5260048afd5b816106d7916136e2565b6106e257895f6104a4565b8980fd5b6040513d84823e3d90fd5b8680fd5b5034610296578061072b610708366134c5565b999b95929d949391978b9d8d929a9c6001600160a01b03600d5416933691613933565b8c610792604051809261077e602083019560608752601460808501527f72656d6f7665437573746f6d4d6574616461746100000000000000000000000060a085015260a0604085015260c0840190613674565b90606083015203601f1981018352826136e2565b51902092823b156106f157876107c58896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657610a97575b50506001600160a01b03604051888a82376020818a8101600c81520301902054166001600160a01b03821603610a8857856002604051898b82376020818b8101600c81520301902001541115610a7957908861083b959493926108356138a0565b90614286565b80600260405184868237602081868101600c8152030190200154145f146109b95760029260209160405184838237838186810188815203019020908752825261088660408720613aca565b8260405193849283378101600c81520301902001805480156109a5575f190190556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561099a57849161096b575b506108e6578280f35b6020600491604051928380926309a69f5760e01b82525afa90811561096057839161092e575b508060050290600582040361064157610928916105c691613722565b5f808280f35b90506020813d602011610958575b81610949602093836136e2565b8101031261069357515f61090c565b3d915061093c565b6040513d85823e3d90fd5b61098d915060203d602011610993575b61098581836136e2565b810190613888565b5f6108dd565b503d61097b565b6040513d86823e3d90fd5b634e487b7160e01b84526011600452602484fd5b600260405183858237602081858101600c8152030190200154811015610a3457604051828482376020818481016002815203019020600182018083116106555790600192918752602052610a2e6040872060405185878237602081878101600281520301902083895260205260408820614055565b016109b9565b5060206002926040518382823782818581018781520301902084604051858482378481878101600c815203019020015487528252610a7460408720613aca565b610886565b630eda9c3d60e31b8a5260048afd5b6322de326160e11b8a5260048afd5b81610aa1916136e2565b6106e257895f6107d4565b50346102965780610abc36613587565b97988a9b99610ae3829e96939997959c6001600160a01b03600d9a969a5416933691613933565b604051610b3281610b24602082019460408652600d60608401526c72656e6577557365726e616d6560981b60808401526080604084015260a0830190613674565b03601f1981018352826136e2565b51902092823b156106f1578b610b658896928a9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657610d9b575b50506001600160a01b03604051898982376020818b8101600c81520301902054166001600160a01b03861603610d8c5760405188888237600c818a0190815281900360200190206004015460f81b6001600160f81b031916600160f81b14610d7d576001604051898982376020818b8101600c815203019020015463bbf81e00420190814211610d695711610d5a5790610c1c93929186610c158a8a613c29565b8097614286565b6001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115610d4f578791610d30575b50610c8a575b5050509060206001928260405193849283378101600c815203019020018054906301e285008201809211610641575580f35b906020600492604051938480926309a69f5760e01b82525afa91821561069f578692610cfc575b50603281029080820460321490151715610ce8576105c66020936105c160019796946064610ce0950490613722565b91925f610c58565b634e487b7160e01b86526011600452602486fd5b9091506020813d602011610d28575b81610d18602093836136e2565b810103126106935751905f610cb1565b3d9150610d0b565b610d49915060203d6020116109935761098581836136e2565b5f610c52565b6040513d89823e3d90fd5b6356657c2160e01b8952600489fd5b634e487b7160e01b8b52601160045260248bfd5b631591d30560e11b8952600489fd5b6322de326160e11b8952600489fd5b81610da5916136e2565b610db057885f610b74565b8880fd5b50346102965780600319360112610296576001600160a01b03600a5416338103610e3557600b544210610e26578160408051610def816136c7565b83815282602082015201526001600160601b0360a01b60095416176009556001600160601b0360a01b600a5416600a5580600b5580f35b63018a18db60e51b8252600482fd5b632dba366760e21b8252600482fd5b50346102965780600319360112610296576001600160a01b0360095416803303610e88576005544210610e2657600454610e7d9161445a565b806004558060055580f35b636587b01b60e11b8252600482fd5b5034610296576020366003190112610296576004356001600160401b03811161029457610ec890369060040161340a565b600360405182848237602081848101600c815203019020015490610eeb82613f41565b91610ef960405193846136e2565b808352610f08601f1991613f41565b01845b81811061100d575050835b600360405183868237602081858101600c8152030190200154811015610f9f57600190604051838682376020818581018581520301902081875260205260408620600260405191610f66836136c7565b6001600160a01b03815416835284810154602084015201546040820152610f8d8286613f58565b52610f988185613f58565b5001610f16565b8285604051918291602083016020845282518091526020604085019301915b818110610fcc575050500390f35b919350916020606082610fff6001948851604080916001600160a01b038151168452602081015160208501520151910152565b019401910191849392610fbe565b602090611018613915565b82828701015201610f0b565b5034610296578060031936011261029657604060045460055482519182526020820152f35b50346102965780600319360112610296576001600160a01b0360095416330361107757806004558060055580f35b636587b01b60e11b8152600490fd5b503461029657602036600319011261029657600435906001600160401b03821161029657604060016110bb366004860161340a565b60206001600160a01b038594939451838682378281858101600c81520301902054169382865193849283378101600c815203019020015482519182526020820152f35b503461029657602061111861111236613493565b91614026565b604051908152f35b503461029657602036600319011261029657600435906001600160401b038211610296576020611118611156366004860161340a565b90613f80565b5034610296576020366003190112610296576004356001600160401b0381116102945761118d90369060040161340a565b91600260405184848237602081868101600c8152030190200154926111b184613f41565b936111bf60405195866136e2565b8085526111ce601f1991613f41565b01825b818110611338575050815b600260405183868237602081858101600c81520301902001548110156112d1576040518285823760208184810160028152030190208184526020526040832060405190849080549061122d82613a77565b80855291600181169081156112aa5750600114611273575b505090611257816001949303826136e2565b6112618288613f58565b5261126c8187613f58565b50016111dc565b8652602086208692505b818310611294575050810160200161125782611245565b600181602092548386880101520192019161127d565b60ff191660208087019190915292151560051b850190920192506112579150839050611245565b84836040519182916020830160208452825180915260408401602060408360051b870101940192905b82821061130957505050500390f35b919360019193955060206113288192603f198a82030186528851613674565b96019201920185949391926112fa565b8060606020809389010152016111d1565b50346102965761016036600319011261029657611364613437565b6024356001600160401b0381116117785761138390369060040161340a565b61138b613463565b9260a435936001600160a01b03851685036117745760e4356001600160401b0381116106f1576113bf90369060040161340a565b91909587610144356001600160401b038111610294576113e390369060040161340a565b94909382996001600160a01b03600d54166113ff368b8d613933565b60405161145a8161143c602082019460808652600960a08401526836b0b5b2a7b33332b960b91b60c084015260c0604084015260e0830190613674565b6044356060830152606435608083015203601f1981018352826136e2565b519020813b156117745785809461148f8c978a96604051998a9889978896637d3d171560e11b885260c435936004890161380b565b03925af180156106e65761175b575b505060405185878237600c81870190815281900360200190206004015460f81b6001600160f81b031916600160f81b14801561174a575b61173b5742606435111561172c576044351561171d579061150692916101249794973590610104356044358a614286565b6040518284823760208184810160018152030190208186526020526001600160a01b03604086205416156115425761153d90613c1b565b611506565b926103e36044350260443581046103e303610ce8576103e89004906001600160a01b0360405191611572836136c7565b16815260026020820160643581526040830190848252604051868882376020818881016001815203019020888a526020526001600160a01b038060408b20955116166001600160601b0360a01b85541617845551600184015551910155600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa90811561069f5786916116eb575b50607d60443502906044358204607d0361065557602096926116396105c661164d946105c161164695620186a061010435930490613722565b6103206044350490613722565b8254613722565b90556003604051828482378581848101600c815203019020015483115f1461169b57836003928260405193849283378101600c815203019020016116918154613c1b565b9055604051908152f35b6003604051828482378581848101600c8152030190200154156116c0575b5050611118565b836003928260405193849283378101600c815203019020016116e28154613c1b565b90555f806116b9565b90506020813d602011611715575b81611706602093836136e2565b8101031261069357515f611600565b3d91506116f9565b635e85ae7360e01b8852600488fd5b632cce8b5d60e21b8852600488fd5b630a1de65160e31b8852600488fd5b506117558587613b19565b156114d5565b81611765916136e2565b61177057875f61149e565b8780fd5b8580fd5b8280fd5b503461029657602036600319011261029657611796613437565b6001600160a01b03600954163303610e88576001600160a01b031680156117f1576001600160601b0360a01b60075416176007556201518042018042116117dd5760085580f35b634e487b7160e01b82526011600452602482fd5b63203e99b760e21b8252600482fd5b613479565b50346102965761183b90611818366134c5565b979195939096948b9e8b9d9c6001600160a01b03600d9d969d5416953691613933565b60405161188d818d61077e602083019560608752601460808501527f726567697374726174696f6e557365726e616d6500000000000000000000000060a085015260a0604085015260c0840190613674565b51902094843b15611bc7578c8f95936118c3908998969488946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af18015611bbc57908a91611ba7575b50506001600160a01b0360095416966001600160a01b0381168098141580611b8d575b611b7e57611906898c614134565b15611b6f57936119309361193a96936119299389611935988f8e61083591613f80565b8689614026565b614379565b61384e565b9160405193816001600160a01b0385519660208181890199808b835e8101600c815203019020541614801590611b4d575b611b3e576301e2850042018042116106555791869760049288946040519361199285613698565b8452602084019081526001600160a01b03806040860193888552602060608801968a8852608089019a8b528260405193849283378101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff198254161790556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561069f578691611b1f575b50611a79575b5050906020600492604051928391518091835e8101600c815203019020828155826001820155826002820155826003820155015580f35b60049192939450602090604051928380926309a69f5760e01b82525afa908115611b14578591611ae2575b5080603202906032820403611ace57600492611ac76105c6879694602094613722565b9192611a42565b634e487b7160e01b85526011600452602485fd5b90506020813d602011611b0c575b81611afd602093836136e2565b8101031261069357515f611aa4565b3d9150611af0565b6040513d87823e3d90fd5b611b38915060203d6020116109935761098581836136e2565b5f611a3c565b6321efd8cf60e11b8652600486fd5b5060016040516020818751808a835e8101600c8152030190200154421061196b565b633efbb39b60e11b8a5260048afd5b630a1de65160e31b8a5260048afd5b50611ba1611b9c368b8e613933565b6144f0565b156118f8565b81611bb1916136e2565b610db057885f6118d5565b6040513d8c823e3d90fd5b8e80fd5b50346102965780600319360112610296576001600160a01b03600954163303611077576001600160601b0360a01b600a5416600a5580600b5580f35b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c3611c3d366004860161340a565b90613e91565b50346102965780611c5336613587565b98809b95939c949198611c788c6001600160a01b03600d9b9a969b5416933691613933565b604051611cbf81610b246020820194604086526013606084015272666c757368437573746f6d4d6574616461746160681b60808401526080604084015260a0830190613674565b51902092823b156106f15787611cf28896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657611ee5575b50506001600160a01b03604051888882376020818a8101600c81520301902054166001600160a01b03821603610d8c576002604051888882376020818a8101600c815203019020015415611ed6579087611d6295949392610835898961374f565b835b84600260405185858237602081878101600c8152030190200154821015611db65750600190604051848482376020818681016002815203019020818752602052611db060408720613aca565b01611d64565b9390506001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561069f578691611eb7575b50611e15575b50509060206002928260405193849283378101600c815203019020015580f35b60049192939450602090604051928380926309a69f5760e01b82525afa908115611b14578591611e85575b5080600502906005820403611ace57600292611e7e6105c68796946105c1602095886040518988823788818b8101600c81520301902001549061373c565b9192611df5565b90506020813d602011611eaf575b81611ea0602093836136e2565b8101031261069357515f611e40565b3d9150611e93565b611ed0915060203d6020116109935761098581836136e2565b5f611def565b6334b7a09160e01b8952600489fd5b81611eef916136e2565b610db057885f611d01565b61363f565b503461029657602036600319011261029657600435906001600160401b038211610296576020611118611f35366004860161340a565b90613c29565b50346102965761014036600319011261029657611f56613437565b6024356001600160401b03811161177857611f7590369060040161340a565b916044356001600160401b03811161238357611f9590369060040161340a565b9091611f9f61344d565b611fa7613463565b9060c4356001600160401b038111610db057611fc790369060040161340a565b9390928960e4359561012435946001600160401b03861161177857612019968c8a610b246120778f9a8f61200261202192369060040161340a565b9e909d6001600160a01b03600d5416973691613933565b943691613933565b6040519283916120656020840196606088526011608086015270616464437573746f6d4d6574616461746160781b60a086015260a0604086015260c0850190613674565b838103601f1901606085015290613674565b519020813b15611774578580946120ac8a978a96604051998a9889978896637d3d171560e11b885260a435936004890161380b565b03925af180156106e65761236e575b50506001600160a01b036040518a8a82376020818c8101600c81520301902054166001600160a01b03831603610a8857851561235f57906121069392918561010435926108356138a0565b6001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115612354578891612335575b50612283575b5050604051848482376020818681016002815203019020600260405186868237602081888101600c8152030190200154865260205260408520916001600160401b03821161226f5761219e826121988554613a77565b85613bce565b8590601f831160011461220557826002969593602095936121d4938a926121fa575b50508160011b915f199060031b1c19161790565b90555b8260405193849283378101600c815203019020016121f58154613c1b565b905580f35b013590505f806121c0565b8387526020872091601f198416885b81811061225757509260019285926002999896602098961061223e575b505050811b0190556121d7565b01355f19600384901b60f8161c191690555f8080612231565b91936020600181928787013581550195019201612214565b634e487b7160e01b86526041600452602486fd5b6020600491604051928380926309a69f5760e01b82525afa908115610d4f578791612303575b5080600502906005820403610655576122c06138a0565b6032810290808204603214901517156122ef57916105c16105c69260646122e8950490613722565b5f80612142565b634e487b7160e01b88526011600452602488fd5b90506020813d60201161232d575b8161231e602093836136e2565b8101031261069357515f6122a9565b3d9150612311565b61234e915060203d6020116109935761098581836136e2565b5f61213c565b6040513d8a823e3d90fd5b6334b7a09160e01b8a5260048afd5b81612378916136e2565b6106e257895f6120bb565b8480fd5b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c36123bd366004860161340a565b90613b19565b503461029657806003193601126102965760206001600160a01b0360095416604051908152f35b503461029657806123fa36613587565b98809b95939c94919861241f8c6001600160a01b03600d9b9a969b5416933691613933565b60405161246081610b24602082019460408652600d60608401526c666c757368557365726e616d6560981b60808401526080604084015260a0830190613674565b51902092823b156106f157876124938896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e6576126d7575b50506001600160a01b03604051888882376020818a8101600c81520301902054166001600160a01b03821603610d8c576001604051888882376020818a8101600c81520301902001544210156126c85760405187878237600c81890190815281900360200190206004015460f81b6001600160f81b031916600160f81b14610d7d579087612537959493926108358989613978565b835b600260405184848237602081868101600c81520301902001548110156125895760019060405184848237602081868101600281520301902081875260205261258360408720613aca565b01612539565b5091600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115611b14578591612696575b5080600502906005820403611ace576105c6600493926105c16125f8936002604051878a8237602081898101600c81520301902001549061373c565b600360405182858237602081848101600c81520301902001546040519161261e83613698565b858352602083018681526001600160a01b0380604086019389855260608701958652602060808801998b8b528260405193849283378101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff1982541617905580f35b90506020813d6020116126c0575b816126b1602093836136e2565b8101031261069357515f6125bc565b3d91506126a4565b637d3b450560e11b8952600489fd5b816126e1916136e2565b610db057885f6124a2565b5034610296578060031936011261029657600654600754600854604080516001600160a01b03948516815293909216602084015290820152606090f35b5034610296578060031936011261029657600954600a54600b54604080516001600160a01b03948516815293909216602084015290820152606090f35b503461029657602036600319011261029657600435906001600160401b03821161029657602061111861279c366004860161340a565b90613978565b503461029657806127b2366134c5565b9697998b9d9491969295939a8a829d9b9e9b600d546001600160a01b03169336906127dc92613933565b90604051809160208201936060855260808301600b905260a083016a30b1b1b2b83a27b33332b960a91b90526040830160a0905260c0830161281d91613674565b90606083015203601f198101825261283590826136e2565b51902092823b156106f1578b6128688896928d9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657612b47575b50506001600160a01b03604051888b82376020818a8101600c81520301902054166001600160a01b03861603610a8857604051878a82376020818981016001815203019020888b526020526001600160a01b0360408b205416158015612b1c575b612b0d579061291694939291866106aa575050505060405184878237602081868101600181520301902085885260205260026040882001549061445a565b6040518285823760208184810160018152030190208386526020526001600160a01b036040862054166001600160a01b0360405184878237602081868101600c81520301902091166001600160601b0360a01b825416179055604051828582376020818481016001815203019020838652602052604085206001600160601b0360a01b81541690556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115610d4f578791612aee575b50612a45575b50506040518184823760208183810160018152030190208285526020526020600260408620015493826040519384928337810160018152030190209083526020526002604083200154808004600114811517156106415761063c9160c7610635920460021c90613722565b6020600491604051928380926309a69f5760e01b82525afa90811561069f578691612abc575b5060405183868237602081858101600181520301902084875260205260026040872001548080046001148115171561065557916105c16105c69260c7612ab5950460021c90613722565b5f806129da565b90506020813d602011612ae6575b81612ad7602093836136e2565b8101031261069357515f612a6b565b3d9150612aca565b612b07915060203d6020116109935761098581836136e2565b5f6129d4565b631388464960e01b8a5260048afd5b50604051878a82376020818981016001815203019020888b52602052600160408b20015442116128d8565b81612b51916136e2565b6106e257895f612877565b50346102965780600319360112610296576001600160a01b03600954163303611077576008544210612bf8576001600160a01b03600754168160408051612ba2816136c7565b83815282602082015201526001600160601b0360a01b60065416176006556001600160601b0360a01b60075416600755806008556001600160a01b03600654166001600160601b0360a01b600d541617600d5580f35b63018a18db60e51b8152600490fd5b50346102965760406060916020612c1d36613493565b929091612c28613915565b5082865193849283378101600181520301902090825260205220600260405191612c51836136c7565b6001600160a01b0381541683526001810154602084015201546040820152612c996040518092604080916001600160a01b038151168452602081015160208501520151910152565bf35b50346102965780600319360112610296576001600160a01b03600954163303611077576001600160601b0360a01b600754166007558060085580f35b503461029657602036600319011261029657600435906001600160401b038211610296576020600181612d0d366004870161340a565b91908260405193849283378101600c8152030190200154604051908152f35b50346106935761012036600319011261069357612d47613437565b602435604435916001600160a01b038316830361069357612d6661344d565b60a4356001600160401b03811161069357612d8590369060040161340a565b949060c43595610104356001600160401b03811161069357612dab90369060040161340a565b9390926001600160a01b03600d5416604051602081019060408252601760608201527f707265526567697374726174696f6e557365726e616d6500000000000000000060808201528a604082015260808152612e0860a0826136e2565b519020813b15610693575f8094612e3d8b978b96604051998a9889978896637d3d171560e11b8852608435936004890161380b565b03925af18015612ff757612fe2575b5085612fcb575b5050506107084201804211611ace57906004916001600160a01b0360405192612e7b84613698565b168252602082019081526040820186815260608301918783526001600160a01b0380602080612eb761193560808a019b600160f81b8d52614379565b604051928184925191829101835e8101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff198254161790556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561099a578491612fac575b50612f44578280f35b6020600491604051928380926309a69f5760e01b82525afa908115610960578391612f78575b50610928916105c691613722565b90506020813d602011612fa4575b81612f93602093836136e2565b810103126106935751610928612f6a565b3d9150612f86565b612fc5915060203d6020116109935761098581836136e2565b5f612f3b565b612fda9260e435908786614188565b5f8080612e53565b612fef9197505f906136e2565b5f955f612e4c565b6040513d5f823e3d90fd5b34610693575f3660031901126106935760206001600160a01b0360065416604051908152f35b34610693576020366003190112610693576004356001600160401b0381116106935761111861305d602092369060040161340a565b9061374f565b34610693575f36600319011261069357600460206001600160a01b03600d541660405192838092630be428a960e11b82525afa8015612ff7575f906130ae575b602090604051908152f35b506020813d6020116130d9575b816130c8602093836136e2565b8101031261069357602090516130a3565b3d91506130bb565b34610693576020366003190112610693576130fa613437565b6001600160a01b036009541690813303613179576001600160a01b031690811590811561316f575b50613160576001600160601b0360a01b600a541617600a5562015180420180421161314c57600b55005b634e487b7160e01b5f52601160045260245ffd5b6394aca82b60e01b5f5260045ffd5b9050811482613122565b636587b01b60e11b5f5260045ffd5b34610693576020366003190112610693576004356001600160401b038111610693576001600160a01b0360206131c38193369060040161340a565b91908260405193849283378101600c8152030190205416604051908152f35b34610693576020366003190112610693576004356001600160401b03811161069357613214602091369060040161340a565b5f916132208282613e91565b613238575b50506001600160a01b0360405191168152f35b6001600160a01b03925083908260405193849283378101600c81520301902054168280613225565b3461069357602036600319011261069357600435906001600160a01b0360095416330361317957600d5463280e32fb60e01b82526001600160a01b0316602082600481845afa918215612ff7575f926133d9575b506001600160a01b036040519263d4fac45d60e01b8452306004850152166024830152602082604481845afa918215612ff7575f926133a4575b506020600491604051928380926309a69f5760e01b82525afa908115612ff7575f91613372575b506113db01806113db1161314c57829161333461333a925f5490613722565b9061372f565b10801561336a575b61335b5760045562015180420180421161314c57600555005b630db73cdf60e41b5f5260045ffd5b508015613342565b90506020813d60201161339c575b8161338d602093836136e2565b81010312610693575183613315565b3d9150613380565b9091506020813d6020116133d1575b816133c0602093836136e2565b8101031261069357519060206132ee565b3d91506133b3565b6133fc91925060203d602011613403575b6133f481836136e2565b810190613703565b90836132b4565b503d6133ea565b9181601f84011215610693578235916001600160401b038311610693576020838186019501011161069357565b600435906001600160a01b038216820361069357565b606435906001600160a01b038216820361069357565b608435906001600160a01b038216820361069357565b34610693575f3660031901126106935760206111186138a0565b604060031982011261069357600435906001600160401b038211610693576134bd9160040161340a565b909160243590565b90610140600319830112610693576004356001600160a01b038116810361069357916024356001600160401b03811161069357816135059160040161340a565b92909291604435916064356001600160a01b038116810361069357916084356001600160a01b0381168103610693579160a4359160c4356001600160401b03811161069357816135579160040161340a565b9290929160e43591610104359161012435906001600160401b038211610693576135839160040161340a565b9091565b610120600319820112610693576004356001600160a01b038116810361069357916024356001600160401b03811161069357826135c69160040161340a565b929092916044356001600160a01b038116810361069357916064356001600160a01b038116810361069357916084359160a4356001600160401b03811161069357816136149160040161340a565b9290929160c4359160e4359161010435906001600160401b038211610693576135839160040161340a565b34610693576020366003190112610693576004356001600160401b0381116106935760026020612d0d8193369060040161340a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a081019081106001600160401b038211176136b357604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176136b357604052565b90601f801991011681019081106001600160401b038211176136b357604052565b9081602091031261069357516001600160a01b03811681036106935790565b9190820180921161314c57565b9190820391821161314c57565b8181029291811591840414171561314c57565b60049060206001600160a01b03600d5416604051938480926309a69f5760e01b82525afa918215612ff7575f926137b7575b5081600a0291600a83040361314c578260206002926137b49560405193849283378101600c81520301902001549061373c565b90565b9091506020813d6020116137e3575b816137d3602093836136e2565b810103126106935751905f613781565b3d91506137c6565b908060209392818452848401375f828201840152601f01601f1916010190565b929360e0946001600160a01b036137b499979481809516875216602086015260408501521660608301526080820152600160a08201528160c082015201916137eb565b906138866021602093604051948591600160fe1b828401528051918291018484015e81015f838201520301601f1981018452836136e2565b565b90816020910312610693575180151581036106935790565b600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f916138e3575b5080600a0290600a82040361314c5790565b90506020813d60201161390d575b816138fe602093836136e2565b8101031261069357515f6138d1565b3d91506138f1565b60405190613922826136c7565b5f6040838281528260208201520152565b9291926001600160401b0382116136b3576040519161395c601f8201601f1916602001846136e2565b829481845281830111610693578281602093845f960137010152565b6001600160a01b03600d541690604051926309a69f5760e01b8452602084600481865afa938415612ff7575f94613a43575b5083600a0293600a85040361314c57600493600282602080956139e19560405193849283378101600c81520301902001549061373c565b91604051938480926309a69f5760e01b82525afa908115612ff7575f91613a0d575b6137b49250613722565b90506020823d602011613a3b575b81613a28602093836136e2565b81010312610693576137b4915190613a03565b3d9150613a1b565b9093506020813d602011613a6f575b81613a5f602093836136e2565b810103126106935751925f6139aa565b3d9150613a52565b90600182811c92168015613aa5575b6020831014613a9157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691613a86565b5f5b828110613abd57505050565b5f82820155600101613ab1565b613ad48154613a77565b9081613ade575050565b81601f5f9311600114613aef575055565b81835260208320613b0c91601f0160051c84190190600101613aaf565b8082528160208120915555565b9060405181838237600c81830190815281900360200190206004015460f81b6001600160f81b031916600160f81b03613ba9576001600160a01b0360405182848237602081848101600c815203019020541615918215613b84575b505015613b7f575f90565b600190565b600192506020908260405193849283378101600c815203019020015415155f80613b74565b60206001928260405193849283378101600c8152030190200154155f14613b7f575f90565b91601f8211613bdc57505050565b808211613be857505050565b613886925f5260205f20916020601f830160051c9210613c13575b601f82910160051c039101613aaf565b5f9150613c03565b5f19811461314c5760010190565b905f91600160405183838237600c848201908152819003602001902001544211613e15576040518282823760208184810160018152030190205f8052602052600160405f200154613d27575b505080613c8a5750681b1ae4d6e2ef50000090565b60049060206001600160a01b03600d5416604051938480926309a69f5760e01b82525afa918215612ff7575f92613cf3575b506005810290810460050361314c576103e89004816207a12002916207a12083040361314c5781811115613cee575090565b905090565b9091506020813d602011613d1f575b81613d0f602093836136e2565b810103126106935751905f613cbc565b3d9150613d02565b5f5b600360405184848237602081868101600c8152030190200154811015613e0b57604051838382376020818581016001815203019020815f5260205242600160405f2001541180613dda575b613d81575b600101613d29565b604051838382376020818581016001815203019020815f5260205283600260405f2001541115613d79579250604051828282376020818481016001815203019020835f526020526001600260405f200154939050613d79565b50604051838382376020818581016001815203019020815f526020526001600160a01b0360405f2054161515613d74565b5050505f80613c75565b505050600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f91613e5f575b50806207a12002906207a12082040361314c5790565b90506020813d602011613e89575b81613e7a602093836136e2565b8101031261069357515f613e49565b3d9150613e6d565b9060405181838237600c81830190815281900360200190206004015460f81b6001600160f81b031916600160f81b03613f1c576001600160a01b0360405182848237602081848101600c815203019020541615918215613ef7575b505015613b7f575f80fd5b600192506020908260405193849283378101600c815203019020015415155f80613eec565b60206001928260405193849283378101600c8152030190200154155f14613b7f575f80fd5b6001600160401b0381116136b35760051b60200190565b8051821015613f6c5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90600360405182848237600c8382019081528190036020019020015415613faa576137b491613c29565b5050600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f91613ff4575b5060648102908082046064149015171561314c5790565b90506020813d60201161401e575b8161400f602093836136e2565b8101031261069357515f613fdd565b3d9150614002565b919060208061404f926040519481869284840198893782019083820152030180845201826136e2565b51902090565b91909182811461412f576140698354613a77565b6001600160401b0381116136b35761408b816140858454613a77565b84613bce565b5f93601f82116001146140c9576140ba92939482915f926140be5750508160011b915f199060031b1c19161790565b9055565b015490505f806121c0565b601f198216905f5260205f2094835f5260205f20915f5b818110614117575095836001959697106140ff575b505050811b019055565b01545f1960f88460031b161c191690555f80806140f5565b9192600180602092868b0154815501940192016140e0565b509050565b90600160405182848237602081848101600c8152030190200154155f1461415c575050600190565b60206001928260405193849283378101600c8152030190200154624f1a00810180911161314c57421190565b9192909493946001600160a01b03600d5416926040519463280e32fb60e01b8652602086600481885afa958615612ff7575f96614265575b50843b15610693576001600160a01b03975f9789958661424a948b976040519d8e9c8d9b8c9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528a6101648b015216606489015288608489015260a48801523060c48801521660e486015261010485015260016101248501526101806101448501526101848401916137eb565b03925af18015612ff75761425b5750565b5f613886916136e2565b61427f91965060203d602011613403576133f481836136e2565b945f6141c0565b600d5460405163280e32fb60e01b815295966001600160a01b0390911694929390602087600481895afa968715612ff7575f97614347575b50853b15610693576001600160a01b03985f988a8a9661424a9582996040519e8f9d8e9c8d9b63487e5a7760e11b8d521660048c01523060248c015261016060448c01528b6101648c01521660648a0152608489015260a48801523060c48801521660e486015261010485015260016101248501526101806101448501526101848401916137eb565b61436191975060203d602011613403576133f481836136e2565b955f6142be565b908151811015613f6c570160200190565b604051906143886080836136e2565b60428252602082016060368237825115613f6c5760309053815160011015613f6c57607860218301535f5b602081106143c057505090565b81811a90600482901c600f166010811015613f6c578160011b928284046002148315171561314c57836002018060021161314c57600f926f181899199a1a9b1b9c1cb0b131b232b360811b901a906144189088614368565b5316916010831015613f6c576003018060031161314c576001926f181899199a1a9b1b9c1cb0b131b232b360811b901a906144539086614368565b53016143b3565b600d5460405163280e32fb60e01b815292906001600160a01b0316602084600481845afa938415612ff7575f946144cf575b50803b156106935760405163c898a6e960e01b81526001600160a01b03938416600482015293909216602484015260448301525f9082908183816064810161424a565b6144e991945060203d602011613403576133f481836136e2565b925f61448c565b80516004811061455f5715613f6c576020810151614517906001600160f81b0319166145a4565b1561459f575f5b8151811015614598576001600160f81b031961453a8284614368565b5116600360fc1b8110159081614589575b501580614565575b61455f5760010161451e565b50505f90565b506145836001600160f81b031961457c8385614368565b51166145a4565b15614553565b603960f81b101590505f61454b565b5050600190565b505f90565b60ff60f81b16604160f81b81101590816145e2575b81156145c3575090565b606160f81b8110159150816145d6575090565b603d60f91b1015905090565b602d60f91b81111591506145b956fea26469706673582212200394b24bebc7e0da5e621acd9bc3d368bceba007a21ed83a6b3d974ef6028fef64736f6c63430008210033",sourceMap:"2765:56961:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;58625:16;2765:56961;58625:16;;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;55200:14;55226:99;;;;;;;55243:8;55270:53;55243:8;;:::i;:::-;55226:99;;;;2765:56961;;;;;;;;;;;55226:99;2765:56961;;;;;;;;;;;55226:99;2765:56961;;;55270:48;2765:56961;55226:99;55270:53;2765:56961;55270:53;2765:56961;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;52839:22;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;-1:-1:-1;2765:56961:64;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14764:4;2765:56961;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::i;:::-;;;;2933:46:101;;;;;2765:56961:64;;;;;;;14764:4;2765:56961;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;;;;;;2933:46:101;2765:56961:64;;2933:46:101;;;;;;;;:::i;:::-;2765:56961:64;2923:57:101;;14764:234:64;;;;;;2765:56961;14764:234;2765:56961;;;;;;;;;;;;;;;;;;;14764:234;;2765:56961;14764:234;;;:::i;:::-;;;;;;;;;;;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;-1:-1:-1;;;;;2765:56961:64;;;;;-1:-1:-1;;;;;2765:56961:64;;15013:49;15009:103;;15127:18;15371:40;15127:18;;;;;15123:221;;2765:56961;;;;;;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;15371:40;2765:56961;;;15371:40;2765:56961;15371:40;;:::i;:::-;2765:56961;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;2933:46:101;-1:-1:-1;;;;;14764:4:64;2765:56961;;;;;;;;;;;15535:22;;;;;;;;;;;;;2765:56961;;;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;15371:40;2765:56961;;;15578:40;2765:56961;;;;14961:4;2765:56961;;;;;;;;15535:95;:128;2765:56961;15626:3;15535:128;2765:56961;;15535:95;;:::i;:::-;:128;:::i;:::-;15511:10;15535:128;:::i;:::-;2765:56961;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;2933:46:101;15371:40:64;2765:56961;;;15743:40;2765:56961;;;;;;;;;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;15371:40;2765:56961;;;15802:40;2765:56961;;;;14961:4;2765:56961;;;;;;;15684:175;2765:56961;15850:3;15742:117;2765:56961;;15371:40;2765:56961;15742:117;;:::i;:::-;2765:56961;;15684:175;:::i;:::-;2765:56961;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;15535:22;;;2933:46:101;15535:22:64;;2933:46:101;15535:22:64;;;;;;2765:56961;15535:22;;;:::i;:::-;;;2765:56961;;;;;15535:22;;;2765:56961;-1:-1:-1;2765:56961:64;;15535:22;;;-1:-1:-1;15535:22:64;;;2765:56961;;;;;;;;;15123:221;15159:185;;;;;:::i;:::-;15123:221;;;;;;15009:103;-1:-1:-1;;;15083:29:64;;2765:56961;15083:29;;14764:234;;;;;:::i;:::-;2765:56961;;14764:234;;;;2765:56961;;;;14764:234;2765:56961;;;;;;;;;14764:234;2765:56961;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27542:4:64;2765:56961;;;;;;:::i;:::-;;4916:49:101;2765:56961:64;;4916:49:101;;2765:56961:64;4916:49:101;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;4916:49:101;2765:56961:64;;4916:49:101;;;;;;:::i;:::-;2765:56961:64;4906:60:101;;27542:237:64;;;;;;2765:56961;27542:237;2765:56961;;;;;;;;;;;;;;;;;;;27542:237;;2765:56961;27542:237;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;4916:49:101;2765:56961:64;;;;27794:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;27794:39;27790:96;;2765:56961;27901:48;2765:56961;;;;;;4916:49:101;2765:56961:64;;;;27794:15;2765:56961;;;;;;27901:48;2765:56961;27901:55;;27897:98;;28048:32;;28172:12;28048:32;;;;;;:::i;:::-;28172:12;;:::i;:::-;2765:56961;27901:48;2765:56961;;;;;;4916:49:101;2765:56961:64;;;;27794:15;2765:56961;;;;;;28209:48;2765:56961;28209:55;28205:584;28209:55;;;27901:48;2765:56961;4916:49:101;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;28280:44;2765:56961;;;28280:44;:::i;:::-;2765:56961;;;;;;;;;;27794:15;2765:56961;;;;;;28799:48;2765:56961;;;;;;;;;;;-1:-1:-1;;;;;27542:4:64;2765:56961;;;;;;;28864:32;;28885:10;2765:56961;28864:32;;2765:56961;4916:49:101;28864:32:64;;;;;;;;;;;;;;;28205:584;28860:164;;;2765:56961;;;28860:164;4916:49:101;2765:56961:64;;;;;;;;;;;28970:22;;;;;;;;;;;;;28860:164;2765:56961;;28966:1;2765:56961;;28966:1;2765:56961;;;;;28965:45;;;;;:::i;:::-;28860:164;;2765:56961;;;28970:22;;;4916:49:101;28970:22:64;;4916:49:101;28970:22:64;;;;;;2765:56961;28970:22;;;:::i;:::-;;;2765:56961;;;;;28970:22;;;;;;-1:-1:-1;28970:22:64;;;2765:56961;;;;;;;;;28864:32;;;;4916:49:101;28864:32:64;4916:49:101;28864:32:64;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2765:56961;;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;28205:584;27901:48;2765:56961;;;;;;4916:49:101;2765:56961:64;;;;27794:15;2765:56961;;;;;;28414:48;2765:56961;28410:52;;;;;2765:56961;;;;;;4916:49:101;2765:56961:64;;;;27901:48;2765:56961;;;;;;27742:4;2765:56961;;;;;;;;27742:4;2765:56961;;;;4916:49:101;2765:56961:64;;;;;;;;;;;4916:49:101;2765:56961:64;;;;27901:48;2765:56961;;;;;;;;;4916:49:101;2765:56961:64;;;;;:::i;:::-;;28377:15;;28410:52;;4916:49:101;27901:48:64;28410:52;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27794:15;2765:56961;;;;;;28716:48;2765:56961;;;;;28659:119;2765:56961;;;28659:119;:::i;:::-;28205:584;;27897:98;-1:-1:-1;;;27977:18:64;;2765:56961;27977:18;;27790:96;-1:-1:-1;;;27854:32:64;;2765:56961;18329:32;27854;27542:237;;;;;:::i;:::-;2765:56961;;27542:237;;;;2765:56961;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;21249:4:64;2765:56961;;;;;;;;;:::i;:::-;;;3884:37:101;;2765:56961:64;3884:37:101;;;2765:56961:64;;;;21249:4;2765:56961;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;3884:37:101;2765:56961:64;;3884:37:101;;;;;;:::i;:::-;2765:56961:64;3874:48:101;;21249:225:64;;;;;;2765:56961;21249:225;2765:56961;;;;;;;;;;;;;;;;;;;21249:225;;2765:56961;21249:225;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;3884:37:101;2765:56961:64;;;;21489:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;21489:39;21485:96;;2765:56961;;;;;;21489:15;2765:56961;;;;;;;;;3884:37:101;2765:56961:64;;;;21596:42;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;21596:50:64;21592:105;;21437:4;2765:56961;;;;;;3884:37:101;2765:56961:64;;;;21489:15;2765:56961;;;;;;21725:40;2765:56961;21798:10;21780:15;2765:56961;21780:15;;;2765:56961;;;21725:83;21708:150;;21892:25;22074:12;21892:25;;;;;;;;:::i;:::-;22074:12;;;:::i;:::-;-1:-1:-1;;;;;21249:4:64;2765:56961;;;;;;;22111:32;;22132:10;2765:56961;22111:32;;2765:56961;3884:37:101;22111:32:64;;;;;;;;;;;;;;;2765:56961;22107:241;;;2765:56961;;;;;3884:37:101;21437:4:64;2765:56961;;;;;;;;;;;21489:15;2765:56961;;;;;;22358:40;2765:56961;;;22402:8;2765:56961;;;;;;;;;;22107:241;2765:56961;3884:37:101;2765:56961:64;;;;;;;;;;;22214:22;;;;;;;;;;;;;22107:241;2765:56961;22276:2;2765:56961;;;;;;22276:2;2765:56961;;;;;;;22214:109;3884:37:101;2765:56961:64;22214:72;21437:4;2765:56961;;;22282:3;22214:109;2765:56961;;22214:72;;:::i;:109::-;22107:241;;;;;2765:56961;-1:-1:-1;;;2765:56961:64;;;;;22111:32;2765:56961;;22214:22;;;;3884:37:101;22214:22:64;;3884:37:101;22214:22:64;;;;;;2765:56961;22214:22;;;:::i;:::-;;;2765:56961;;;;;22214:22;;;;;;;-1:-1:-1;22214:22:64;;22111:32;;;;3884:37:101;22111:32:64;3884:37:101;22111:32:64;;;;;;;:::i;:::-;;;;;2765:56961;;;;;;;;;21708:150;-1:-1:-1;;;21826:32:64;;2765:56961;21826:32;;2765:56961;-1:-1:-1;;;2765:56961:64;;;;;;;;21592:105;-1:-1:-1;;;21667:30:64;;2765:56961;34621:30;21667;21485:96;-1:-1:-1;;;21549:32:64;;2765:56961;18329:32;21549;21249:225;;;;;:::i;:::-;2765:56961;;21249:225;;;;2765:56961;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;36800:14:64;2765:56961;;36818:10;36800:28;;36796:85;;36914:18;2765:56961;36896:15;:36;36892:87;;2765:56961;;;;;;;:::i;:::-;;;;36998:147;;;;2765:56961;36998:147;2765:56961;-1:-1:-1;;;;;2765:56961:64;;36800:5;2765:56961;;;36800:5;2765:56961;-1:-1:-1;;;;;2765:56961:64;;36800:14;2765:56961;;36800:14;2765:56961;;36914:18;2765:56961;;;36892:87;-1:-1:-1;;;36953:26:64;;2765:56961;39858:26;36953;36796:85;-1:-1:-1;;;36849:32:64;;2765:56961;36849:32;;2765:56961;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;;:27;4042:64;;38524:35;2765:56961;38506:15;:53;38502:104;;2765:56961;;38642:31;;;:::i;:::-;2765:56961;;;;38524:35;2765:56961;;;4042:64;-1:-1:-1;;;4082:24:64;;2765:56961;4082:24;;2765:56961;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;54060:40;2765:56961;;;;;;;;;;;54060:15;2765:56961;;;;;;54060:40;2765:56961;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;54126:13;;;54187:3;54060:40;2765:56961;;;;;;;;;;;54060:15;2765:56961;;;;;;54145:40;2765:56961;54141:44;;;;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;54206:40;;;;:::i;:::-;;;;;;:::i;:::-;;2765:56961;54126:13;;54141:44;;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;58291:35;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;2765:56961;;;;38250:35;2765:56961;;;4042:64;-1:-1:-1;;;4082:24:64;;2765:56961;;4082:24;2765:56961;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;51081:41;2765:56961;;;;;;:::i;:::-;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;51035:15;2765:56961;;;;;;;;;;;;;;;;;;;51035:15;2765:56961;;;;;;51081:41;2765:56961;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;52043:49;2765:56961;;;;;;;;;;;52043:15;2765:56961;;;;;;52043:49;2765:56961;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;52130:13;;;52224:3;52043:49;2765:56961;;;;;;;;;;;52043:15;2765:56961;;;;;;52161:49;2765:56961;52157:53;;;;;2765:56961;;;;;;;;;;;52043:49;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;52252:57;;;;:::i;:::-;;;;;;:::i;:::-;;2765:56961;52130:13;;2765:56961;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;-1:-1:-1;2765:56961:64;;-1:-1:-1;2765:56961:64;;52157:53;;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;11231:15;2765:56961;-1:-1:-1;;;;;11258:4:64;2765:56961;;;;;;;:::i;:::-;;;2381:57:101;;2765:56961:64;;2381:57:101;;2765:56961:64;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2381:57:101;-1:-1:-1;;2381:57:101;;;;;;:::i;:::-;2765:56961:64;2354:98:101;;11258:245:64;;;;;2765:56961;;;11258:245;2765:56961;;;;;;;;;;;;;;;;11258:245;;2765:56961;;11258:245;2765:56961;11258:245;;;:::i;:::-;;;;;;;;;;;2765:56961;;;;;;;;;11531:15;2765:56961;;;;;;;;;;;;;;11531:42;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;11531:50:64;:99;;;;2765:56961;11514:157;;11704:15;2765:56961;;11686:33;;11682:91;;2765:56961;;11788:11;11784:59;;2765:56961;11994:12;2765:56961;;;;;;;;;;;;11994:12;;:::i;:::-;2765:56961;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;12034:55;;;12103:9;;;:::i;:::-;12027:85;;12034:55;;12158:3;2765:56961;;;;;;;12158:3;2765:56961;;;12165:4;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::i;:::-;;;;;;12217:139;;2765:56961;;;;;12217:139;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11258:4:64;2765:56961;;;;;;;;;;;12414:22;;;;;;;;;;;;;12027:85;2765:56961;12450:3;2765:56961;;;;;;;;12450:3;2765:56961;;;;;;12414:68;;12503:100;2765:56961;12414:51;12561:42;2765:56961;12457:7;2765:56961;;;;12414:51;;:::i;:68::-;12599:3;2765:56961;;;12561:42;;:::i;:::-;2765:56961;;12503:100;:::i;:::-;2765:56961;;12628:39;2765:56961;;;;;;;;;;;11531:15;2765:56961;;;;;;12628:39;2765:56961;12618:49;;12614:243;12628:39;;;2765:56961;12628:39;2765:56961;;;;;;;;;;;11531:15;2765:56961;;;;;;12683:39;:41;2765:56961;;12683:41;:::i;:::-;2765:56961;;;;;;;;12614:243;12628:39;2765:56961;;;;;;;;;;;11531:15;2765:56961;;;;;;12745:39;2765:56961;12745:44;12741:116;;12614:243;;;;;12741:116;2765:56961;12628:39;2765:56961;;;;;;;;;;;11531:15;2765:56961;;;;;;12805:39;:41;2765:56961;;12805:41;:::i;:::-;2765:56961;;12741:116;;;;12414:22;;;2765:56961;12414:22;;2765:56961;12414:22;;;;;;2765:56961;12414:22;;;:::i;:::-;;;2765:56961;;;;;12414:22;;;;;;-1:-1:-1;12414:22:64;;11784:59;-1:-1:-1;;;11808:35:64;;2765:56961;11808:35;;11682:91;-1:-1:-1;;;11740:33:64;;2765:56961;11740:33;;11514:157;-1:-1:-1;;;11648:23:64;;2765:56961;8642:23;11648;11531:99;11598:32;;;;;:::i;:::-;11597:33;11531:99;;11258:245;;;;;:::i;:::-;2765:56961;;11258:245;;;;2765:56961;;;;11258:245;2765:56961;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;-1:-1:-1;;;;;2765:56961:64;39099:29;;39095:68;;-1:-1:-1;;;;;2765:56961:64;;39174:20;2765:56961;;;39174:20;2765:56961;2891:6;39249:15;2765:56961;39249:15;;2765:56961;;;39222:24;2765:56961;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;39095:68;-1:-1:-1;;;39137:26:64;;2765:56961;39137:26;;2765:56961;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8270:4:64;2765:56961;;;;;;;;;:::i;:::-;;;1727:56:101;;;2765:56961:64;1727:56:101;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;:::i;1727:56:101:-;2765:56961:64;1717:67:101;;8270:244:64;;;;;;2765:56961;;;;8270:244;2765:56961;;;;;;;;;;;;;;;;;;;8270:244;;2765:56961;8270:244;;;:::i;:::-;;;;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;8542:5:64;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;8542:21;;;;:82;;;2765:56961;8525:140;;8681:29;;;;:::i;:::-;8680:30;8676:88;;8817:32;9071:34;8817:32;8995:121;8817:32;;8941:12;8817:32;;9039:67;8817:32;;;;;;:::i;8941:12::-;9071:34;;;:::i;:::-;9039:67;:::i;:::-;8995:121;:::i;:::-;2765:56961;;;;;-1:-1:-1;;;;;2765:56961:64;;;1727:56:101;2765:56961:64;;;;;;;;;;;9144:15;2765:56961;;;;;;;;9144:35;;;:105;;;2765:56961;9127:171;;9439:8;9421:15;2765:56961;9421:15;;2765:56961;;;;;;;;;;;;;;;;:::i;:::-;;;1727:56:101;9337:226:64;;2765:56961;;;-1:-1:-1;;;;;9337:226:64;2765:56961;9337:226;;2765:56961;;;;1727:56:101;2765:56961:64;9337:226;;2765:56961;;;;;9337:226;;2765:56961;;;;;;;;;;;;;9144:15;2765:56961;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;8477:4;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8270:4:64;2765:56961;;;;;;;9578:32;;9599:10;2765:56961;9578:32;;2765:56961;1727:56:101;9578:32:64;;;;;;;;;;;;;;;2765:56961;9574:165;;;2765:56961;;;;1727:56:101;2765:56961:64;;;;;;;;;;;;;;9144:15;2765:56961;;;;;;;;;;8477:4;2765:56961;;;;;;;;;;;;;;;;;9574:165;2765:56961;;;;;;1727:56:101;2765:56961:64;;;;;;;;;;9685:22;;;;;;;;;;;;;9574:165;2765:56961;;9680:2;2765:56961;;9680:2;2765:56961;;;;;;9679:46;;;;;;1727:56:101;9679:46:64;;:::i;:::-;9574:165;;;;2765:56961;-1:-1:-1;;;2765:56961:64;;;;;9578:32;2765:56961;;9685:22;;;1727:56:101;9685:22:64;;1727:56:101;9685:22:64;;;;;;2765:56961;9685:22;;;:::i;:::-;;;2765:56961;;;;;9685:22;;;;;;-1:-1:-1;9685:22:64;;;2765:56961;;;;;;;;;9578:32;;;;1727:56:101;9578:32:64;1727:56:101;9578:32:64;;;;;;;:::i;:::-;;;;9127:171;-1:-1:-1;;;9267:31:64;;2765:56961;9267:31;;9144:105;2765:56961;8477:4;2765:56961;;1727:56:101;2765:56961:64;;;;;;;;;9144:15;2765:56961;;;;;;9195:36;2765:56961;9234:15;-1:-1:-1;9144:105:64;;8676:88;-1:-1:-1;;;8731:33:64;;2765:56961;8731:33;;8525:140;-1:-1:-1;;;8642:23:64;;2765:56961;8642:23;;8542:82;-1:-1:-1;8580:44:64;2765:56961;;;;;:::i;:::-;8580:44;:::i;:::-;8579:45;8542:82;;8270:244;;;;;:::i;:::-;2765:56961;;8270:244;;;;;2765:56961;;;;;;;;;8270:244;2765:56961;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;-1:-1:-1;;;;;2765:56961:64;;36508:14;2765:56961;;36508:14;2765:56961;;36545:18;2765:56961;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;30842:4:64;2765:56961;;;;;;;;;;:::i;:::-;;;5384:43:101;;2765:56961:64;5384:43:101;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;5384:43:101:-;2765:56961:64;5374:54:101;;30842:231:64;;;;;;2765:56961;30842:231;2765:56961;;;;;;;;;;;;;;;;;;;30842:231;;2765:56961;30842:231;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;5384:43:101;2765:56961:64;;;;31088:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;31088:39;31084:96;;31195:48;2765:56961;;;;;;5384:43:101;2765:56961:64;;;;31088:15;2765:56961;;;;;;31195:48;2765:56961;31195:53;31191:105;;31349:39;;31480:12;31349:39;;;;;;;;:::i;31480:12::-;31531:13;31624:3;2765:56961;31195:48;2765:56961;;;;;;5384:43:101;2765:56961:64;;;;31088:15;2765:56961;;;;;;31562:48;2765:56961;31558:52;;;;;2765:56961;31036:4;2765:56961;;;;;;;5384:43:101;2765:56961:64;;;;31195:48;2765:56961;;;;;;;;;5384:43:101;2765:56961:64;31652:42;2765:56961;;;31652:42;:::i;:::-;2765:56961;31531:13;;31558:52;;;;-1:-1:-1;;;;;30842:4:64;2765:56961;;;;;;;31719:32;;31740:10;2765:56961;31719:32;;2765:56961;5384:43:101;31719:32:64;;;;;;;;;;;;;;;31513:192;31715:270;;;31513:192;2765:56961;;;5384:43:101;31195:48:64;2765:56961;;;;;;;;;;;31088:15;2765:56961;;;;;;31995:48;2765:56961;;;31715:270;2765:56961;;;;;;5384:43:101;2765:56961:64;;;;;;;;;;31828:22;;;;;;;;;;;;;31715:270;2765:56961;;31824:1;2765:56961;;31824:1;2765:56961;;;;;31195:48;2765:56961;31822:138;;2765:56961;;;31823:99;5384:43:101;2765:56961:64;;;;;;;;;;;;;31088:15;2765:56961;;;;;;31874:48;2765:56961;31823:99;;:::i;31822:138::-;31715:270;;;;31828:22;;;5384:43:101;31828:22:64;;5384:43:101;31828:22:64;;;;;;2765:56961;31828:22;;;:::i;:::-;;;2765:56961;;;;;31828:22;;;;;;-1:-1:-1;31828:22:64;;31719:32;;;;5384:43:101;31719:32:64;5384:43:101;31719:32:64;;;;;;;:::i;:::-;;;;31191:105;-1:-1:-1;;;31269:27:64;;2765:56961;25080:27;31269;30842:231;;;;;:::i;:::-;2765:56961;;30842:231;;;;2765:56961;;:::i;:::-;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;4394:48:101;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;24689:4:64;2765:56961;;;;;;:::i;:::-;;;;;:::i;:::-;;;4394:48:101;;;2765:56961:64;;4394:48:101;;2765:56961:64;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2765:56961:64;;;;;;;:::i;4394:48:101:-;2765:56961:64;4384:59:101;;24689:236:64;;;;;2765:56961;;;24689:236;2765:56961;;;;;;;;;;;;;;;;24689:236;;2765:56961;;24689:236;2765:56961;24689:236;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;24940:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;24940:39;24936:96;;25047:24;;25043:64;;2765:56961;25281:12;2765:56961;;;;;;25160:29;;;:::i;25281:12::-;-1:-1:-1;;;;;24689:4:64;2765:56961;;;;;;;25318:32;;25339:10;2765:56961;25318:32;;2765:56961;;25318:32;2765:56961;25318:32;;;;;;;;;;;;;2765:56961;25314:264;;;2765:56961;;;;;;;;;;;;;;25588:22;2765:56961;;;;;;25588:22;2765:56961;;;;;;;;;;;24940:15;2765:56961;;;;;;25634:48;2765:56961;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;25588:22;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24940:15;2765:56961;;;;;;25711:48;:50;2765:56961;;25711:50;:::i;:::-;2765:56961;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;;;;;;;;;25588:22;2765:56961;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;25314:264;2765:56961;;;;;;;;;;;;25426:22;;;;;;;;;;;;;25314:264;2765:56961;;25422:1;2765:56961;;25422:1;2765:56961;;;;;25474:29;;:::i;:::-;25506:2;2765:56961;;;;;;25506:2;2765:56961;;;;;;;;25421:95;:132;2765:56961;;25421:132;2765:56961;;25421:95;;:::i;:132::-;25314:264;;;;2765:56961;-1:-1:-1;;;2765:56961:64;;;;;;;;25426:22;;;2765:56961;25426:22;;2765:56961;25426:22;;;;;;2765:56961;25426:22;;;:::i;:::-;;;2765:56961;;;;;25426:22;;;;;;-1:-1:-1;25426:22:64;;25318:32;;;;2765:56961;25318:32;2765:56961;25318:32;;;;;;;:::i;:::-;;;;;2765:56961;;;;;;;;;25043:64;-1:-1:-1;;;25080:27:64;;2765:56961;25080:27;;24689:236;;;;;:::i;:::-;2765:56961;;24689:236;;;;2765:56961;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;56980:5:64;2765:56961;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;34084:4:64;2765:56961;;;;;;;;;;:::i;:::-;;;5863:37:101;;2765:56961:64;5863:37:101;;;2765:56961:64;;;;34084:4;2765:56961;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;5863:37:101:-;2765:56961:64;5853:48:101;;34084:225:64;;;;;;2765:56961;34084:225;2765:56961;;;;;;;;;;;;;;;;;;;34084:225;;2765:56961;34084:225;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;34324:39;34320:96;;34272:4;2765:56961;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;34450:40;2765:56961;34431:15;:59;;34427:108;;2765:56961;;;;;;34324:15;2765:56961;;;;;;;;;5863:37:101;2765:56961:64;;;;34550:42;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;34550:50:64;34546:105;;34704:33;;34829:12;34704:33;;;;;;;;:::i;34829:12::-;34880:13;34973:3;34911:48;2765:56961;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;34911:48;2765:56961;34907:52;;;;;34272:4;2765:56961;;;;;;;5863:37:101;2765:56961:64;;;;34911:48;2765:56961;;;;;;;;;5863:37:101;2765:56961:64;35001:42;2765:56961;;;35001:42;:::i;:::-;2765:56961;34880:13;;34907:52;;;2765:56961;5863:37:101;-1:-1:-1;;;;;34084:4:64;2765:56961;;;;;;;;;;;35117:22;;;;;;;;;;;;;34862:192;2765:56961;;35113:1;2765:56961;;35113:1;2765:56961;;;;;35111:130;2765:56961;;;35112:95;35111:130;2765:56961;34911:48;2765:56961;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;35159:48;2765:56961;35112:95;;:::i;35111:130::-;35449:39;2765:56961;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;35449:39;2765:56961;;;;;;;:::i;:::-;;;;5863:37:101;35290:245:64;;2765:56961;;;-1:-1:-1;;;;;35290:245:64;2765:56961;35290:245;;2765:56961;;;;;35290:245;;2765:56961;;;5863:37:101;2765:56961:64;35290:245;;2765:56961;;;;;;;;;;;;;;34324:15;2765:56961;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;34272:4;2765:56961;;;;34911:48;2765:56961;;;;35449:39;2765:56961;;;;;;;;;;;;;;;;;;35117:22;;;5863:37:101;35117:22:64;;5863:37:101;35117:22:64;;;;;;2765:56961;35117:22;;;:::i;:::-;;;2765:56961;;;;;35117:22;;;;;;-1:-1:-1;35117:22:64;;34427:108;-1:-1:-1;;;34511:24:64;;2765:56961;34511:24;;34084:225;;;;;:::i;:::-;2765:56961;;34084:225;;;;2765:56961;;;;;;;;;;;;;59616:11;2765:56961;59649:20;2765:56961;59683:24;2765:56961;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57594:5;2765:56961;57609:14;2765:56961;57625:18;2765:56961;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18022:4;2765:56961;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::i;:::-;;;;3448:44:101;;;;;2765:56961:64;;;;;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;;;;;;3448:44:101;2765:56961:64;;3448:44:101;;;;;;;;:::i;:::-;2765:56961:64;3438:55:101;;18022:232:64;;;;;;2765:56961;18022:232;2765:56961;;;;;;;;;;;;;;;;;;;18022:232;;2765:56961;18022:232;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;3448:44:101;2765:56961:64;;;;18269:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;18269:39;18265:96;;2765:56961;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;-1:-1:-1;;;;;2765:56961:64;;;;;18389:55;:137;;;;2765:56961;18372:193;;18580:18;18836:40;18580:18;;;;;18576:234;;2765:56961;;;;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;18836:40;2765:56961;;;18836:40;2765:56961;18836:40;;:::i;:::-;2765:56961;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;-1:-1:-1;;;;;2765:56961:64;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;3448:44:101;2765:56961:64;;;;18269:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;-1:-1:-1;;;;;18022:4:64;2765:56961;;;;;;;19056:32;;19077:10;2765:56961;19056:32;;2765:56961;3448:44:101;19056:32:64;;;;;;;;;;;;;;;2765:56961;19052:300;;;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;3448:44:101;18836:40:64;2765:56961;;;19421:40;2765:56961;;;;;;;;;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;18836:40;2765:56961;;;19480:40;2765:56961;;;;18217:4;2765:56961;;;;;;;19362:175;2765:56961;19528:3;19420:117;2765:56961;;18836:40;2765:56961;19420:117;;:::i;19052:300::-;3448:44:101;2765:56961:64;;;;;;;;;;;19160:22;;;;;;;;;;;;;19052:300;2765:56961;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;18836:40;2765:56961;;;19209:40;2765:56961;;;;18217:4;2765:56961;;;;;;;;19159:131;:168;2765:56961;19257:3;19159:168;2765:56961;;18836:40;2765:56961;19159:131;;:::i;:168::-;19052:300;;;;19160:22;;;3448:44:101;19160:22:64;;3448:44:101;19160:22:64;;;;;;2765:56961;19160:22;;;:::i;:::-;;;2765:56961;;;;;19160:22;;;;;;-1:-1:-1;19160:22:64;;19056:32;;;;3448:44:101;19056:32:64;3448:44:101;19056:32:64;;;;;;;:::i;:::-;;;;18372:193;-1:-1:-1;;;18544:21:64;;2765:56961;18544:21;;18389:137;2765:56961;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;18217:4;2765:56961;;;18460:48;2765:56961;18511:15;-1:-1:-1;18389:137:64;;18022:232;;;;;:::i;:::-;2765:56961;;18022:232;;;;2765:56961;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;39813:24;2765:56961;39795:15;:42;39791:93;;-1:-1:-1;;;;;39968:20:64;2765:56961;;;;;;;;;:::i;:::-;;;;39909:153;;;;2765:56961;39909:153;2765:56961;-1:-1:-1;;;;;2765:56961:64;;39813:11;2765:56961;;;39813:11;2765:56961;-1:-1:-1;;;;;2765:56961:64;;39968:20;2765:56961;;39968:20;2765:56961;;39813:24;2765:56961;-1:-1:-1;;;;;39813:11:64;2765:56961;;-1:-1:-1;;;;;2765:56961:64;;40073:32;2765:56961;;;40073:32;2765:56961;;;39791:93;-1:-1:-1;;;39858:26:64;;2765:56961;;39858:26;2765:56961;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;54768:14;2765:56961;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:56961:64;;;;;54768:14;2765:56961;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;-1:-1:-1;;;;;2765:56961:64;;39509:20;2765:56961;;39509:20;2765:56961;;39552:24;2765:56961;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;55743:41;2765:56961;;;;;;;:::i;:::-;;;;;;;;;;;;;55743:15;2765:56961;;;;;;55743:41;2765:56961;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;6100:4:64;2765:56961;;;;;1106:51:101;;2765:56961:64;;;;;;;;;;;;;;;;;;;;1106:51:101;;;2765:56961:64;1106:51:101;;:::i;:::-;2765:56961:64;1096:62:101;;6100:252:64;;;;;2765:56961;;;6100:252;2765:56961;;;;;;;;;;;;;;;;6100:252;;2765:56961;;6100:252;2765:56961;6100:252;;;:::i;:::-;;;;;;;;;;;2765:56961;6367:18;;6363:221;;2765:56961;6845:15;;;6863:10;6845:15;2765:56961;6845:15;;2765:56961;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::i;:::-;;;;;6761:228;;2765:56961;;;;6761:228;;2765:56961;;;;6761:228;;2765:56961;;;;-1:-1:-1;;;;;6761:228:64;2765:56961;6761:228;6624:124;6676:58;2765:56961;6761:228;;2765:56961;;;;;;6676:58;:::i;6624:124::-;2765:56961;;;;;;;;;;;;;;;6595:15;2765:56961;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6100:4:64;2765:56961;;;;;;;7004:32;;7025:10;2765:56961;7004:32;;2765:56961;;7004:32;2765:56961;7004:32;;;;;;;;;;;;;2765:56961;7000:112;;;2765:56961;;;7000:112;2765:56961;;;;;;;;;;;;7072:22;;;;;;;;;;;;;7000:112;7072:39;;;;;;:::i;:22::-;;;2765:56961;7072:22;;2765:56961;7072:22;;;;;;2765:56961;7072:22;;;:::i;:::-;;;2765:56961;;;;;7072:39;:22;;;;;-1:-1:-1;7072:22:64;;7004:32;;;;2765:56961;7004:32;2765:56961;7004:32;;;;;;;:::i;:::-;;;;6363:221;6399:185;2765:56961;;;6399:185;;;;:::i;:::-;6363:221;;;;;6100:252;;;;;2765:56961;6100:252;;:::i;:::-;2765:56961;6100:252;;;;;2765:56961;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;-1:-1:-1;;;;;58927:11:64;2765:56961;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;2765:56961:64;;;;;58625:16;-1:-1:-1;;;;;58625:4:64;2765:56961;;;;;;;;;;;58625:16;;;;;;;;2765:56961;58625:16;;;2765:56961;58625:16;2765:56961;;;;;;;58625:16;;;;;;;;;;;;2765:56961;58625:16;;;:::i;:::-;;;2765:56961;;;;58625:16;2765:56961;;58625:16;;;;;-1:-1:-1;58625:16:64;;2765:56961;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;;;:27;4042:64;;-1:-1:-1;;;;;2765:56961:64;36079:29;;;:65;;;;;2765:56961;36075:118;;;-1:-1:-1;;;;;2765:56961:64;;36204:14;2765:56961;;;36204:14;2765:56961;2891:6;36267:15;2765:56961;36267:15;;2765:56961;;;36246:18;2765:56961;;;;;;;;;;;;;;36075:118;36165:28;;;2765:56961;36165:28;2765:56961;;36165:28;36079:65;36112:32;;;;36079:65;;;4042:64;4082:24;;;2765:56961;4082:24;2765:56961;;4082:24;2765:56961;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::i;:::-;;;;;;;;;;;;;45319:15;2765:56961;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;45805:38;;;;;:::i;:::-;45801:97;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;45801:97;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;45866:15;2765:56961;;;;;;;;45801:97;;;;2765:56961;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;37499:4;2765:56961;-1:-1:-1;;;37530:31:64;;-1:-1:-1;;;;;2765:56961:64;;37530:31;2765:56961;37530:31;2765:56961;37530:31;;;;;;;2765:56961;37530:31;;;2765:56961;;-1:-1:-1;;;;;2765:56961:64;;;;;;37499:63;;37523:4;2765:56961;37499:63;;2765:56961;;;;;;;37499:63;;;;;;;;;;;2765:56961;37499:63;;;2765:56961;;;;;;;;;;;;;;37609:22;;;;;;;;;2765:56961;37609:22;;;2765:56961;;37582:4;2765:56961;;37582:4;2765:56961;;;;;37582:114;37499:198;2765:56961;;;37582:114;;:::i;:::-;37499:198;;:::i;:::-;:220;:248;;;;2765:56961;37482:337;;2765:56961;;2891:6;37930:15;2765:56961;37930:15;;2765:56961;;;37880:35;2765:56961;;37482:337;37779:29;;;2765:56961;37779:29;2765:56961;;37779:29;37499:248;37735:12;;;37499:248;;37609:22;;;2765:56961;37609:22;;2765:56961;37609:22;;;;;;2765:56961;37609:22;;;:::i;:::-;;;2765:56961;;;;;37609:22;;;;;;-1:-1:-1;37609:22:64;;37499:63;;;;2765:56961;37499:63;;2765:56961;37499:63;;;;;;2765:56961;37499:63;;;:::i;:::-;;;2765:56961;;;;;;;37499:63;;;;;-1:-1:-1;37499:63:64;;37530:31;;;;;2765:56961;37530:31;2765:56961;37530:31;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2765:56961;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;:::i;:::-;;-1:-1:-1;;2765:56961:64;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::i;:::-;;;:::o;:::-;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;51528:49;2765:56961;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;;-1:-1:-1;;2765:56961:64;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::o;:::-;;;;-1:-1:-1;2765:56961:64;;;;;-1:-1:-1;2765:56961:64;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;48857:246::-;49009:22;48857:246;49009:22;-1:-1:-1;;;;;49009:4:64;2765:56961;;;;;;;;;;;49009:22;;;;;;;;;-1:-1:-1;49009:22:64;;;48857:246;2765:56961;;49004:2;2765:56961;;49004:2;2765:56961;;;;;;49009:22;49047:49;2765:56961;49003:93;2765:56961;;;;;;;;;;49047:15;2765:56961;;;;;;49047:49;2765:56961;49003:93;;:::i;:::-;48857:246;:::o;49009:22::-;;;;;;;;;;;;;;2765:56961;49009:22;;;:::i;:::-;;;2765:56961;;;;;49009:22;;;;;;;-1:-1:-1;49009:22:64;;2765:56961;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;;-1:-1:-1;;2765:56961:64;;;;:::o;:::-;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;6315:4;2765:56961;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;48001:127::-;48099:22;;-1:-1:-1;;;;;48099:4:64;2765:56961;;;;;;;;;;;48099:22;;;;;;;;;-1:-1:-1;48099:22:64;;;48001:127;2765:56961;;48094:2;2765:56961;;48094:2;2765:56961;;;;;48001:127;:::o;48099:22::-;;;;;;;;;;;;;2765:56961;48099:22;;;:::i;:::-;;;2765:56961;;;;;48099:22;;;;;;-1:-1:-1;48099:22:64;;2765:56961;;;;;;;:::i;:::-;-1:-1:-1;2765:56961:64;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;:::o;49443:283::-;-1:-1:-1;;;;;49590:4:64;2765:56961;;;;;;;;;49590:22;;;;;;;;;;;;;;-1:-1:-1;49590:22:64;;;49443:283;2765:56961;;49585:2;2765:56961;;49585:2;2765:56961;;;;;49590:22;2765:56961;49632:49;2765:56961;49590:22;2765:56961;;49584:97;2765:56961;;;;;;;;;;49632:15;2765:56961;;;;;;49632:49;2765:56961;49584:97;;:::i;:::-;2765:56961;;;;;;;;;;49697:22;;;;;;;;;-1:-1:-1;49697:22:64;;;49443:283;49583:136;;;;:::i;49697:22::-;;;49590;49697;;49590;49697;;;;;;2765:56961;49697:22;;;:::i;:::-;;;2765:56961;;;;49583:136;2765:56961;;49697:22;;;;;;-1:-1:-1;49697:22:64;;49590;;;;;;;;;;;;;;2765:56961;49590:22;;;:::i;:::-;;;2765:56961;;;;;49590:22;;;;;;;-1:-1:-1;49590:22:64;;2765:56961;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;-1:-1:-1;2765:56961:64;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;43442:617::-;;2765:56961;;;;;;43556:15;2765:56961;;;;;;;;;;;;;43556:43;;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;43556:51:64;2765:56961;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;43556:15;2765:56961;;;;;;;;43644:46;:112;;;;;43552:501;-1:-1:-1;;43623:243:64;;;2765:56961;43789:12;:::o;43623:243::-;43603:4;43840:11;:::o;43644:112::-;43603:4;2765:56961;;;;;;;;;;;;;;43556:15;2765:56961;;;;;;43710:41;2765:56961;43710:46;;43644:112;;;;43552:501;2765:56961;43603:4;2765:56961;;;;;;;;;;;43556:15;2765:56961;;;;;;43900:41;2765:56961;43900:46;43896:147;43603:4;;;2765:56961;43966:12;:::o;2765:56961::-;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;-1:-1:-1;2765:56961:64;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;2765:56961:64;;;-1:-1:-1;;2765:56961:64;;;;;;;:::o;46445:1320::-;;2765:56961;;46561:41;2765:56961;;;;;;46561:15;2765:56961;;;;;;;;;;;;;46561:41;2765:56961;46606:15;-1:-1:-1;46606:15:64;;2765:56961;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;46561:41;2765:56961;;;46641:43;2765:56961;46637:687;;46557:1202;-1:-1:-1;;47341:10:64;;;47371:22;47379:14;47337:341;46445:1320::o;47337:341::-;47463:22;2765:56961;;-1:-1:-1;;;;;47463:4:64;2765:56961;;;;;;;;;;;47463:22;;;;;;;;;2765:56961;47463:22;;;47337:341;2765:56961;47522:1;2765:56961;;;;;47522:1;2765:56961;;;47527:4;2765:56961;;;47536:6;2765:56961;;47536:6;2765:56961;;;;;47512:54;;;;;;2765:56961;47337:341;2765:56961::o;47512:151::-;2765:56961;;48857:246;:::o;47463:22::-;;;;2765:56961;47463:22;;2765:56961;47463:22;;;;;;2765:56961;47463:22;;;:::i;:::-;;;2765:56961;;;;;47463:22;;;;;;;-1:-1:-1;47463:22:64;;46637:687;2765:56961;46836:3;46774:40;2765:56961;;;;;;;;;;;46561:15;2765:56961;;;;;;46774:40;2765:56961;46770:44;;;;;2765:56961;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;46606:15;46561:41;2765:56961;;;46909:43;2765:56961;46909:85;:163;;;46836:3;46880:412;;46836:3;46561:41;2765:56961;46735:13;;46880:412;2765:56961;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;;47125:35;2765:56961;;;47125:35;2765:56961;47125:43;47121:149;46880:412;47121:149;2765:56961;;;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;46561:41;47125:35;2765:56961;;;47208:35;2765:56961;47121:149;;;46880:412;;46909:163;2765:56961;;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;47022:50;;46909:163;;46770:44;;;;46637:687;;;;46557:1202;2765:56961;;;47726:22;2765:56961;-1:-1:-1;;;;;47726:4:64;2765:56961;;;;;;;;;;;47726:22;;;;;;;;;2765:56961;47726:22;;;46557:1202;2765:56961;;47716:7;2765:56961;;47716:7;2765:56961;;;;;46557:1202;46445:1320::o;47726:22::-;;;2765:56961;47726:22;;2765:56961;47726:22;;;;;;2765:56961;47726:22;;;:::i;:::-;;;2765:56961;;;;;47726:22;;;;;;-1:-1:-1;47726:22:64;;44344:614;;2765:56961;;;;;;44463:15;2765:56961;;;;;;;;;;;;;44463:43;;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;44463:51:64;2765:56961;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;44463:15;2765:56961;;;;;;;;44551:46;:112;;;;;44459:493;-1:-1:-1;;44530:239:64;;;2765:56961;44696:8;;44551:112;44510:4;2765:56961;;;;;;;;;;;;;;44463:15;2765:56961;;;;;;44617:41;2765:56961;44617:46;;44551:112;;;;44459:493;2765:56961;44510:4;2765:56961;;;;;;;;;;;44463:15;2765:56961;;;;;;44803:41;2765:56961;44803:46;44799:143;44510:4;;;2765:56961;44869:8;;2765:56961;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;56221:272;;56352:39;2765:56961;;;;;;56352:15;2765:56961;;;;;;;;;;;;;56352:39;2765:56961;56352:43;:134;;56414:25;;;:::i;56352:134::-;2765:56961;;56458:22;2765:56961;-1:-1:-1;;;;;56458:4:64;2765:56961;;;;;;;;;;;56458:22;;;;;;;;;-1:-1:-1;56458:22:64;;;56352:134;2765:56961;56483:3;2765:56961;;;;;;56483:3;2765:56961;;;;;;;56221:272;:::o;56458:22::-;;;2765:56961;56458:22;;2765:56961;56458:22;;;;;;2765:56961;56458:22;;;:::i;:::-;;;2765:56961;;;;;56458:22;;;;;;-1:-1:-1;56458:22:64;;42529:201;;;42680:42;42529:201;42680:42;42529:201;2765:56961;;42680:42;;;;;;;2765:56961;;;;;;;;;;42680:42;;;;;;;;:::i;:::-;2765:56961;42670:53;;42529:201;:::o;2765:56961::-;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;50269:340::-;;50380:41;2765:56961;;;;;;;;;;;50380:15;2765:56961;;;;;;50380:41;2765:56961;50380:46;50376:227;50380:41;;;50442:11;;50380:41;50442:11;:::o;50376:227::-;2765:56961;50380:41;2765:56961;;;;;;;;;;;50380:15;2765:56961;;;;;;50507:41;2765:56961;50551:7;2765:56961;;;;;;;50577:15;-1:-1:-1;50484:108:64;:::o;41038:500::-;;;;;;;-1:-1:-1;;;;;41247:4:64;2765:56961;;;;;;;;;41330:31;;;;;;;;;;;;;;2765:56961;41330:31;;;41038:500;41247:284;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;41247:284;;2765:56961;41330:31;41247:284;;2765:56961;41295:4;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;41295:4;2765:56961;;;;;;;;;;;;;41494:4;2765:56961;;;;;;;;;;;;;;:::i;:::-;41247:284;;;;;;;;;;41038:500;:::o;41247:284::-;2765:56961;41247:284;;;:::i;41330:31::-;;;;;;;;;;;;;;;:::i;:::-;;;;;41038:500;41247:4;2765:56961;;;-1:-1:-1;;;41330:31:64;;41038:500;;-1:-1:-1;;;;;2765:56961:64;;;;41038:500;;;41330:31;2765:56961;41330:31;2765:56961;;41330:31;;;;;;;-1:-1:-1;41330:31:64;;;41038:500;41247:284;;;;;;-1:-1:-1;;;;;2765:56961:64;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;;;;;;;41247:284;;2765:56961;41330:31;41247:284;;2765:56961;41295:4;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;41295:4;2765:56961;;;;;;;;;;;;;41494:4;2765:56961;;;;;;;;;;;;;;:::i;41330:31::-;;;;;;;;;;;;;;;:::i;:::-;;;;;2765:56961;;;;;;;;;;;;;:::o;3564:411:93:-;2765:56961:64;;;;;;;:::i;:::-;3697:2:93;2765:56961:64;;;;;;;;;;;;;;3710:15:93;;;2765:56961:64;;3742:1:93;2765:56961:64;;;;3735:15:93;2765:56961:64;;;3735:15:93;-1:-1:-1;3781:6:93;2765:56961:64;3781:6:93;;;;3947:21;;3564:411;:::o;3789:3::-;3845:7;;;;3856:1;2765:56961:64;;;3920:4:93;2765:56961:64;3828:31:93;;;;;;2765:56961:64;3742:1:93;2765:56961:64;;;;;3815:1:93;2765:56961:64;;;;;;;;3815:1:93;2765:56961:64;;3815:1:93;2765:56961:64;;;3920:4:93;;-1:-1:-1;;;3828:31:93;;;3808:51;;;;:::i;:::-;;2765:56961:64;3893:33:93;3828:31;3893:33;;;;;3880:1;2765:56961:64;;3880:1:93;2765:56961:64;;;3742:1:93;;-1:-1:-1;;;3893:33:93;;;3873:53;;;;:::i;:::-;;2765:56961:64;3766:13:93;;41820:132:64;41888:4;2765:56961;;;-1:-1:-1;;;41905:31:64;;2765:56961;;-1:-1:-1;;;;;2765:56961:64;41905:31;2765:56961;41905:31;2765:56961;;41905:31;;;;;;;-1:-1:-1;41905:31:64;;;41820:132;41888:57;;;;;;2765:56961;;-1:-1:-1;;;41888:57:64;;-1:-1:-1;;;;;2765:56961:64;;;41905:31;41888:57;;2765:56961;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;-1:-1:-1;2765:56961:64;;;;41888:57;2765:56961;41905:31;;;;;;;;;;;;;;;:::i;:::-;;;;;991:707:65;2765:56961:64;;1222:1:65;1199:24;;1195:42;;2765:56961:64;;;;;;;1303:27:65;;-1:-1:-1;;;;;;2765:56961:64;1303:27:65;:::i;:::-;1302:28;1298:58;;2765:56961:64;1472:3:65;2765:56961:64;;1446:24:65;;;;;-1:-1:-1;;;;;;1564:16:65;;;;:::i;:::-;2765:56961:64;;;;;5296:17:65;;;:38;;;;1472:3;1554:27;;:59;;;1472:3;1550:111;;2765:56961:64;;1431:13:65;;1550:111;1633:12;;2765:56961:64;1633:12:65;:::o;1554:59::-;-1:-1:-1;1586:27:65;-1:-1:-1;;;;;;1596:16:65;;;;:::i;:::-;2765:56961:64;;1586:27:65;:::i;:::-;1585:28;1554:59;;5296:38;-1:-1:-1;;;;5317:17:65;;-1:-1:-1;5296:38:65;;;1446:24;;;2765:56961:64;991:707:65;:::o;1298:58::-;1344:12;2765:56961:64;1344:12:65;:::o;5441:227::-;2765:56961:64;;;;;;;5525:17:65;;;:38;;;;5441:227;5524:96;;;;5516:105;5441:227;:::o;5524:96::-;-1:-1:-1;;;5581:17:65;;;;-1:-1:-1;5581:17:65;:38;;5524:96;5441:227;:::o;5581:38::-;-1:-1:-1;;;;5602:17:65;;-1:-1:-1;5441:227:65;:::o;5525:38::-;-1:-1:-1;;;5546:17:65;;;;-1:-1:-1;5525:38:65;",linkReferences:{}},methodIdentifiers:{"acceptChangeEvvmAddress()":"48ffba55","acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"53462f82","acceptProposeAdmin()":"eba5e53e","addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":"71e604f8","cancelChangeEvvmAddress()":"24866f15","cancelProposeAdmin()":"88ecb91f","cancelWithdrawPrincipalTokens()":"cf1dc146","claimWithdrawPrincipalTokens()":"e7849f62","flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":"7d0d9608","flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":"5f94da09","getAdmin()":"6e9960c3","getAdminFullDetails()":"5548a762","getAmountOfCustomMetadata(string)":"6b5bb1ca","getCoreAddress()":"2096b768","getCoreAddressFullDetails()":"570b245b","getCustomMetadataMaxSlotsOfIdentity(string)":"7bd9da7a","getEvvmID()":"17c85152","getExpireDateOfIdentity(string)":"22afca38","getFullCustomMetadataOfIdentity(string)":"b19517dd","getIdentityBasicMetadata(string)":"c97da33e","getLengthOfOffersUsername(string)":"fe7ab683","getOffersOfUsername(string)":"d7fd3134","getOwnerOfIdentity(string)":"0d3dcb9f","getPriceOfRegistration(string)":"bc91a428","getPriceToAddCustomMetadata()":"36e7a1b8","getPriceToFlushCustomMetadata(string)":"1f4131fb","getPriceToFlushUsername(string)":"54dc585d","getPriceToRemoveCustomMetadata()":"99e7bac2","getProposedWithdrawAmountFullDetails()":"d2234a1a","getSingleCustomMetadataOfIdentity(string,uint256)":"f6d0ecbe","getSingleOfferOfUsername(string,uint256)":"43a82d67","hashUsername(string,uint256)":"bcd5a47c","isUsernameAvailable(string)":"f69c6dec","makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"b0bf2e10","preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":"22abdafa","proposeAdmin(address)":"147bf6c4","proposeChangeEvvmAddress(address)":"a6ba51ca","proposeWithdrawPrincipalTokens(uint256)":"007802df","registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"8ffe264e","removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"ecdc7aff","renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":"ebee75fc","seePriceToRenew(string)":"75dab53b","strictVerifyIfIdentityExist(string)":"86c8ac58","verifyIfIdentityExists(string)":"7126b2a3","verifyStrictAndGetOwnerOfIdentity(string)":"0c78d2c6","withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"f5e993f5"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_coreAddress","type":"address"},{"internalType":"address","name":"_initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AmountMustBeGreaterThanZero","type":"error"},{"inputs":[],"name":"CannotBeBeforeCurrentTime","type":"error"},{"inputs":[],"name":"EmptyCustomMetadata","type":"error"},{"inputs":[],"name":"IdentityIsNotAUsername","type":"error"},{"inputs":[],"name":"InvalidAdminProposal","type":"error"},{"inputs":[],"name":"InvalidEvvmAddress","type":"error"},{"inputs":[],"name":"InvalidKey","type":"error"},{"inputs":[],"name":"InvalidUsername","type":"error"},{"inputs":[],"name":"InvalidWithdrawAmount","type":"error"},{"inputs":[],"name":"LockTimeNotExpired","type":"error"},{"inputs":[],"name":"OfferInactive","type":"error"},{"inputs":[],"name":"OwnershipExpired","type":"error"},{"inputs":[],"name":"PreRegistrationNotValid","type":"error"},{"inputs":[],"name":"RenewalTimeLimitExceeded","type":"error"},{"inputs":[],"name":"SenderIsNotAdmin","type":"error"},{"inputs":[],"name":"SenderIsNotProposedAdmin","type":"error"},{"inputs":[],"name":"UserIsNotOwnerOfIdentity","type":"error"},{"inputs":[],"name":"UserIsNotOwnerOfOffer","type":"error"},{"inputs":[],"name":"UsernameAlreadyRegistered","type":"error"},{"inputs":[],"name":"acceptChangeEvvmAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"uint256","name":"offerID","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"acceptOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptProposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"identity","type":"string"},{"internalType":"string","name":"value","type":"string"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"addCustomMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelChangeEvvmAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelProposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelWithdrawPrincipalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimWithdrawPrincipalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"identity","type":"string"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"flushCustomMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"flushUsername","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAdminFullDetails","outputs":[{"internalType":"address","name":"currentAdmin","type":"address"},{"internalType":"address","name":"proposalAdmin","type":"address"},{"internalType":"uint256","name":"timeToAcceptAdmin","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getAmountOfCustomMetadata","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCoreAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCoreAddressFullDetails","outputs":[{"internalType":"address","name":"currentEvvmAddress","type":"address"},{"internalType":"address","name":"proposalEvvmAddress","type":"address"},{"internalType":"uint256","name":"timeToAcceptEvvmAddress","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getCustomMetadataMaxSlotsOfIdentity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"getExpireDateOfIdentity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getFullCustomMetadataOfIdentity","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getIdentityBasicMetadata","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getLengthOfOffersUsername","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getOffersOfUsername","outputs":[{"components":[{"internalType":"address","name":"offerer","type":"address"},{"internalType":"uint256","name":"expirationDate","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NameServiceStructs.OfferMetadata[]","name":"offers","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getOwnerOfIdentity","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"username","type":"string"}],"name":"getPriceOfRegistration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPriceToAddCustomMetadata","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"getPriceToFlushCustomMetadata","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"getPriceToFlushUsername","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPriceToRemoveCustomMetadata","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProposedWithdrawAmountFullDetails","outputs":[{"internalType":"uint256","name":"proposalAmountToWithdrawTokens","type":"uint256"},{"internalType":"uint256","name":"timeToAcceptAmountToWithdrawTokens","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"},{"internalType":"uint256","name":"_key","type":"uint256"}],"name":"getSingleCustomMetadataOfIdentity","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"},{"internalType":"uint256","name":"_offerID","type":"uint256"}],"name":"getSingleOfferOfUsername","outputs":[{"components":[{"internalType":"address","name":"offerer","type":"address"},{"internalType":"uint256","name":"expirationDate","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NameServiceStructs.OfferMetadata","name":"offer","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"},{"internalType":"uint256","name":"_randomNumber","type":"uint256"}],"name":"hashUsername","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"isUsernameAvailable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expirationDate","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"makeOffer","outputs":[{"internalType":"uint256","name":"offerID","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes32","name":"hashPreRegisteredUsername","type":"bytes32"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"preRegistrationUsername","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adminToPropose","type":"address"}],"name":"proposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newEvvmAddress","type":"address"}],"name":"proposeChangeEvvmAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"proposeWithdrawPrincipalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"uint256","name":"lockNumber","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"registrationUsername","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"identity","type":"string"},{"internalType":"uint256","name":"key","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"removeCustomMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"renewUsername","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"seePriceToRenew","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"strictVerifyIfIdentityExist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"verifyIfIdentityExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"verifyStrictAndGetOwnerOfIdentity","outputs":[{"internalType":"address","name":"answer","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"uint256","name":"offerID","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"withdrawOffer","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Mate labs","details":"Manages username registration via a commit-reveal scheme (pre-registration), a secondary marketplace for domain trading, and customizable user metadata. Integrates with Core.sol for payment processing and uses async nonces for high throughput.","errors":{"AmountMustBeGreaterThanZero()":[{"details":"Thrown when amount == 0 (e.g., makeOffer requires value)"}],"CannotBeBeforeCurrentTime()":[{"details":"Thrown when timestamp < current time (offer expiration, future ops)"}],"EmptyCustomMetadata()":[{"details":"Thrown when custom metadata value == empty string"}],"IdentityIsNotAUsername()":[{"details":"Thrown when username operation attempted on pre-registration (flagNotAUsername: 0x01=pre-reg, 0x00=username)"}],"InvalidAdminProposal()":[{"details":"Thrown when admin proposal address/config invalid"}],"InvalidEvvmAddress()":[{"details":"Thrown when proposed EVVM address invalid"}],"InvalidKey()":[{"details":"Thrown when removing non-existent custom metadata key"}],"InvalidUsername()":[{"details":"Thrown when username format invalid (4+ chars, start with letter, alphanumeric)"}],"InvalidWithdrawAmount()":[{"details":"Thrown when withdrawal amount invalid or > balance"}],"LockTimeNotExpired()":[{"details":"Thrown when time-locked governance action attempted prematurely"}],"OfferInactive()":[{"details":"Thrown when accepting/interacting with expired/non-existent offer (offerer == 0)"}],"OwnershipExpired()":[{"details":"Thrown when operating on expired username (after expireDate)"}],"PreRegistrationNotValid()":[{"details":"Thrown when pre-registration doesn\'t exist or expired (30min window)"}],"RenewalTimeLimitExceeded()":[{"details":"Thrown when renewing > 100 years in advance"}],"SenderIsNotAdmin()":[{"details":"Thrown when non-admin calls admin-only function (onlyAdmin modifier)"}],"SenderIsNotProposedAdmin()":[{"details":"Thrown when non-proposed admin attempts acceptNewAdmin before timelock"}],"UserIsNotOwnerOfIdentity()":[{"details":"Thrown when non-owner attempts to modify username or accept offers"}],"UserIsNotOwnerOfOffer()":[{"details":"Thrown when non-creator attempts withdrawOffer"}],"UsernameAlreadyRegistered()":[{"details":"Thrown when attempting to register already-taken username"}]},"kind":"dev","methods":{"acceptChangeEvvmAddress()":{"details":"Can only be called after the time delay has passed"},"acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Can only be called by current owner before expiration Acceptance Flow: 1. Validates user is current username owner 2. Validates offer exists and not expired 3. Transfers offer amount to seller 4. Transfers ownership to offerer 5. Processes optional priority fee 6. Deletes offer and unlocks tokens Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username + offer ID - Prevents replay attacks and double acceptance Core.sol Integration: - Payment: offer amount via makeCaPay to seller - Priority fee: via requestPay (if > 0) - Fee Distribution: * 99.5% to seller (locked amount) * 0.5% + reward to staker (if applicable) - makeCaPay transfers from locked funds Ownership Transfer: - Changes identityDetails[username].owner - Preserves all metadata and expiration - Transfers all custom metadata slots Token Unlocking: - Decreases principalTokenTokenLockedForWithdrawOffers - Releases offer amount + marketplace fee - Distributes to seller and staker","params":{"nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","offerID":"Unique identifier of offer to accept","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of current username owner","username":"Username being sold"}},"acceptProposeAdmin()":{"details":"Can only be called by the proposed admin after the time delay has passed"},"addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Metadata format: [schema]:[subschema]>[value] Standard Format Examples: - memberOf:>EVVM - socialMedia:x>jistro (Twitter/X handle) - email:dev>jistro[at]evvm.org (dev email) - email:callme>contact[at]jistro.xyz (contact) Schema Guidelines: - Based on https://schema.org/docs/schemas.html - \':\' separates schema from subschema - \'>\' separates metadata from value - Pad spaces if schema/subschema < 5 chars - Use \\"socialMedia\\" for social networks Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity + value - Prevents replay attacks Core.sol Integration: - Payment: 10x EVVM reward amount - Paid through requestPay (locks tokens) - Staker reward: 5x reward + priority fee - makeCaPay distributes rewards Slot Management: - Increments customMetadataMaxSlots - Each slot holds one metadata entry - No limit on number of slots","params":{"identity":"Username to add metadata to","nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner","value":"Metadata string following format"}},"cancelChangeEvvmAddress()":{"details":"Only the current admin can cancel pending proposals"},"cancelProposeAdmin()":{"details":"Only the current admin can cancel pending proposals"},"cancelWithdrawPrincipalTokens()":{"details":"Only the current admin can cancel pending proposals"},"claimWithdrawPrincipalTokens()":{"details":"Can only be called after the time delay has passed"},"constructor":{"params":{"_coreAddress":"The address of the EVVM Core contract.","_initialOwner":"The address granted administrative privileges."}},"flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"More gas-efficient than removing individually Flush Process: 1. Validates user owns username 2. Validates metadata slots exist (not empty) 3. Calculates cost based on slot count 4. Deletes all metadata entries in loop 5. Resets customMetadataMaxSlots to 0 Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity only - Prevents replay attacks Core.sol Integration: - Payment: getPriceToFlushCustomMetadata (per slot) - Cost: 10x EVVM reward per metadata entry - Paid through requestPay (locks tokens) - Staker reward: 5x reward per slot + priority - makeCaPay distributes batch rewards Efficiency: - Single transaction for all metadata - Batch pricing for multiple entries - Cheaper than calling removeCustomMetadata N times","params":{"identity":"Username to flush all metadata from","nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner"}},"flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Deletes username, metadata, makes available for re-registration Flush Process: 1. Validates user owns username 2. Validates not expired (must be active) 3. Validates is actual username (not temp hash) 4. Calculates cost based on metadata + username 5. Deletes all metadata entries 6. Resets username to default state 7. Preserves offerMaxSlots history Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username only - Prevents replay attacks Core.sol Integration: - Payment: getPriceToFlushUsername - Cost: Base + (10x reward per metadata slot) - Paid through requestPay (locks tokens) - Staker reward: 5x reward per slot + priority - makeCaPay distributes to caller Cleanup: - Deletes all custom metadata slots - Sets owner to address(0) - Sets expirationDate to 0 - Resets customMetadataMaxSlots to 0 - Keeps offerMaxSlots for history - Sets flagNotAUsername to 0x00 - Username becomes available for re-registration","params":{"nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner","username":"Username to completely remove"}},"getAdmin()":{"details":"Returns the address with administrative privileges","returns":{"_0":"The current admin address"}},"getAdminFullDetails()":{"details":"Returns current admin, proposed admin, and proposal acceptance deadline","returns":{"currentAdmin":"Current administrative address","proposalAdmin":"Proposed new admin address (if any)","timeToAcceptAdmin":"Timestamp when proposal can be accepted"}},"getAmountOfCustomMetadata(string)":{"details":"Returns the count of metadata slots currently used","params":{"_username":"The username to count metadata for"},"returns":{"_0":"Number of custom metadata entries"}},"getCoreAddress()":{"details":"Returns the address of the EVVM contract used for payment processing","returns":{"_0":"The current EVVM contract address"}},"getCoreAddressFullDetails()":{"details":"Returns current EVVM address, proposed address, and proposal acceptance deadline","returns":{"currentEvvmAddress":"Current EVVM contract address","proposalEvvmAddress":"Proposed new EVVM address (if any)","timeToAcceptEvvmAddress":"Timestamp when proposal can be accepted"}},"getCustomMetadataMaxSlotsOfIdentity(string)":{"details":"Returns the total capacity for custom metadata entries","params":{"_username":"The username to check metadata capacity for"},"returns":{"_0":"Maximum number of metadata slots"}},"getEvvmID()":{"details":"Returns the EvvmID used for distinguishing different EVVM deployments","returns":{"_0":"Unique EvvmID string"}},"getExpireDateOfIdentity(string)":{"details":"Returns the timestamp when the username registration expires","params":{"_identity":"The username to check expiration for"},"returns":{"_0":"The expiration timestamp in seconds since Unix epoch"}},"getFullCustomMetadataOfIdentity(string)":{"details":"Returns an array containing all metadata strings in order","params":{"_username":"The username to get metadata for"},"returns":{"_0":"Array of all custom metadata strings"}},"getIdentityBasicMetadata(string)":{"details":"Returns essential metadata for quick identity verification","params":{"_username":"The username to get basic info for"},"returns":{"_0":"Owner address and expiration timestamp"}},"getLengthOfOffersUsername(string)":{"details":"Iterates through offers to find the actual count of non-empty slots","params":{"_username":"The username to count offers for"},"returns":{"length":"Total number of offers that have been made"}},"getOffersOfUsername(string)":{"details":"Returns both active and expired offers that haven\'t been withdrawn","params":{"_username":"The username to get offers for"},"returns":{"offers":"Array of all offer metadata structures"}},"getOwnerOfIdentity(string)":{"details":"Returns the current owner address for any valid identity","params":{"_username":"The username to query"},"returns":{"_0":"Address of the username owner"}},"getPriceOfRegistration(string)":{"details":"Price is fully dynamic based on existing offers and timing - If dosnt have offers, price is 100x current EVVM reward amount - If has offers, price is calculated via seePriceToRenew function","params":{"username":"The username to get registration price for"},"returns":{"_0":"The current registration price in Principal Tokens"}},"getPriceToAddCustomMetadata()":{"details":"Price is dynamic based on current EVVM reward amount","returns":{"price":"Cost in Principal Tokens (10x current reward amount)"}},"getPriceToFlushCustomMetadata(string)":{"details":"Cost scales with the number of metadata entries to remove","params":{"_identity":"The username to calculate flush cost for"},"returns":{"price":"Total cost in Principal Tokens (10x reward amount per metadata entry)"}},"getPriceToFlushUsername(string)":{"details":"Includes cost for metadata removal plus base username deletion fee","params":{"_identity":"The username to calculate deletion cost for"},"returns":{"price":"Total cost in Principal Tokens (metadata flush cost + 1x reward amount)"}},"getPriceToRemoveCustomMetadata()":{"details":"Price is dynamic based on current EVVM reward amount","returns":{"price":"Cost in Principal Tokens (10x current reward amount)"}},"getProposedWithdrawAmountFullDetails()":{"details":"Returns proposed withdrawal amount and acceptance deadline","returns":{"proposalAmountToWithdrawTokens":"Proposed withdrawal amount in Principal Tokens","timeToAcceptAmountToWithdrawTokens":"Timestamp when proposal can be executed"}},"getSingleCustomMetadataOfIdentity(string,uint256)":{"details":"Retrieves metadata at a specific slot position","params":{"_key":"The index of the metadata entry to retrieve","_username":"The username to get metadata from"},"returns":{"_0":"The metadata string at the specified index"}},"getSingleOfferOfUsername(string,uint256)":{"details":"Retrieves detailed information about a particular offer","params":{"_offerID":"The ID/index of the specific offer","_username":"The username to get the offer from"},"returns":{"offer":"The complete offer metadata structure"}},"hashUsername(string,uint256)":{"details":"Used in the commit-reveal scheme to prevent front-running attacks","params":{"_randomNumber":"Random number to add entropy","_username":"The username to hash"},"returns":{"_0":"Hash of the username and random number"}},"isUsernameAvailable(string)":{"details":"A username is available if it was never registered or has been expired for 60+ days","params":{"_username":"The username to check availability for"},"returns":{"_0":"True if the username is available for registration"}},"makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Tokens are locked in the contract. A 0.5% marketplace fee is applied upon successful sale.","params":{"amount":"Total amount offered (including fee).","expirationDate":"When the offer expires.","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment (locks tokens).","originExecutor":"Optional tx.origin restriction.","priorityFeePay":"Optional priority fee for the executor.","signature":"Offerer\'s authorization signature.","signaturePay":"Signature for the Core payment.","user":"The address of the offerer.","username":"The target username."},"returns":{"offerID":"The unique ID of the created offer."}},"preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Part of the commit-reveal scheme. Valid for 30 minutes.","params":{"hashPreRegisteredUsername":"The keccak256 hash of (username + secret).","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment (if fee is paid).","originExecutor":"Optional tx.origin restriction.","priorityFeePay":"Optional priority fee for the executor.","signature":"Registrant\'s authorization signature.","signaturePay":"Signature for the Core payment (if fee is paid).","user":"The address of the registrant."}},"proposeAdmin(address)":{"details":"Time-delayed governance system for admin changes","params":{"_adminToPropose":"Address of the proposed new admin"}},"proposeChangeEvvmAddress(address)":{"details":"Critical function that affects payment processing integration","params":{"_newEvvmAddress":"Address of the new EVVM contract"}},"proposeWithdrawPrincipalTokens(uint256)":{"details":"Amount must be available after reserving funds for operations and locked offers","params":{"_amount":"Amount of Principal Tokens to withdraw"}},"registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Validates format, availability, and payment. Grants 1 year of ownership.","params":{"lockNumber":"The secret used in the pre-registration hash.","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment (registration fee + priority fee).","originExecutor":"Optional tx.origin restriction.","priorityFeePay":"Optional priority fee for the executor.","signature":"Registrant\'s authorization signature.","signaturePay":"Signature for the Core payment.","user":"The address of the registrant.","username":"The plain-text username being registered."}},"removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Shifts all subsequent entries to fill gap Removal Process: 1. Validates user owns username 2. Validates key exists in metadata slots 3. Deletes entry at key position 4. Shifts all entries after key down by 1 5. Decrements customMetadataMaxSlots Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity + key - Prevents replay attacks Core.sol Integration: - Payment: 10x EVVM reward amount - Paid through requestPay (locks tokens) - Staker reward: 5x reward + priority fee - makeCaPay distributes rewards Array Reordering: - Shifts entries from key+1 to maxSlots - Maintains continuous slot indexing - No gaps in metadata array","params":{"identity":"Username to remove metadata from","key":"Index of metadata entry to remove","nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner"}},"renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Dynamic pricing based on timing and market demand Pricing Rules: - Free: Renewed within grace period after expiration - Variable: Based on highest active offer (min 500 PT) - Fixed: 500,000 PT if renewed >1 year early - Can renew up to 100 years in advance Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username only - Prevents replay attacks Core.sol Integration: - Payment: seePriceToRenew calculates cost - Paid through requestPay (locks tokens) - Staker reward: 1x reward + 50% of price + fee - makeCaPay distributes rewards Renewal Logic: - Extends expirationDate by 366 days - Preserves ownership and all metadata - Cannot exceed 100 years (36500 days)","params":{"nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner","username":"Username to renew"}},"seePriceToRenew(string)":{"details":"Pricing varies based on timing and market demand: - Free if renewed before expiration (within grace period) - Variable cost based on highest active offer (minimum 500 Principal Token) - Fixed 500,000 Principal Token if renewed more than 1 year before expiration","params":{"_identity":"The username to calculate renewal price for"},"returns":{"price":"The cost in Principal Tokens to renew the username"}},"strictVerifyIfIdentityExist(string)":{"details":"More strict version that reverts instead of returning false","params":{"_username":"The username to verify"},"returns":{"_0":"True if the username exists (will revert if not)"}},"verifyIfIdentityExists(string)":{"details":"Handles both pre-registrations and actual username registrations","params":{"_identity":"The identity/username to check"},"returns":{"_0":"True if the identity exists and is valid"}},"verifyStrictAndGetOwnerOfIdentity(string)":{"details":"Combines strict verification with owner lookup in one call","params":{"_username":"The username to verify and get owner for"},"returns":{"answer":"Address of the username owner (reverts if username doesn\'t exist)"}},"withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Can only be called by offer creator or after expire Withdrawal Flow: 1. Validates offer exists and belongs to user 2. Optionally validates expiration date passed 3. Refunds locked tokens to offerer 4. Processes optional priority fee 5. Deletes offer and updates slot count Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username + offer ID - Prevents replay attacks and double withdrawals Core.sol Integration: - Refund: offer amount via makeTransfer to offerer - Priority fee: via requestPay (if > 0) - Staker reward: 1x reward + priority fee - makeCaPay distributes to caller if staker Token Unlocking: - Decreases principalTokenTokenLockedForWithdrawOffers - Releases both offer amount and marketplace fee - Returns funds to original offerer","params":{"nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","offerID":"Unique identifier of offer to withdraw","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address that made original offer","username":"Username offer was made for"}}},"stateVariables":{"TIME_TO_ACCEPT_PROPOSAL":{"details":"Time delay for accepting proposals (1 day)"},"admin":{"details":"Proposal system for admin address changes"},"amountToWithdrawTokens":{"details":"Proposal system for token withdrawal with delay"},"core":{"details":"EVVM contract for payment processing"},"coreAddress":{"details":"Proposal system for Core address changes"},"identityCustomMetadata":{"details":"Nested mapping: username => key => custom value"},"identityDetails":{"details":"Mapping from username to core metadata"},"principalTokenTokenLockedForWithdrawOffers":{"details":"Principal Tokens locked in pending marketplace"},"usernameOffers":{"details":"Nested mapping: username => offer ID => offer"}},"title":"EVVM Name Service","version":1},"userdoc":{"kind":"user","methods":{"acceptChangeEvvmAddress()":{"notice":"Executes the approved EVVM address change"},"acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Accepts marketplace offer and transfers ownership"},"acceptProposeAdmin()":{"notice":"Accepts the admin proposal and becomes the new admin"},"addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Adds custom metadata to username using schema format"},"cancelChangeEvvmAddress()":{"notice":"Cancels the pending EVVM address change proposal"},"cancelProposeAdmin()":{"notice":"Cancels the current admin proposal"},"cancelWithdrawPrincipalTokens()":{"notice":"Cancels the pending token withdrawal proposal"},"claimWithdrawPrincipalTokens()":{"notice":"Executes the approved token withdrawal"},"constructor":{"notice":"Initializes the NameService with the Core contract and initial administrator."},"flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Removes all custom metadata entries for username"},"flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Completely removes username and all data"},"getAdmin()":{"notice":"Gets the current admin address"},"getAdminFullDetails()":{"notice":"Gets complete admin information including pending proposals"},"getAmountOfCustomMetadata(string)":{"notice":"Gets the number of custom metadata entries for a username"},"getCoreAddress()":{"notice":"Gets the current EVVM contract address"},"getCoreAddressFullDetails()":{"notice":"Gets complete EVVM address information including pending proposals"},"getCustomMetadataMaxSlotsOfIdentity(string)":{"notice":"Gets the maximum number of metadata slots available for a username"},"getEvvmID()":{"notice":"Gets the unique identifier string for this EVVM instance"},"getExpireDateOfIdentity(string)":{"notice":"Gets the expiration date of a username registration"},"getFullCustomMetadataOfIdentity(string)":{"notice":"Retrieves all custom metadata entries for a username"},"getIdentityBasicMetadata(string)":{"notice":"Gets basic identity information (owner and expiration date)"},"getLengthOfOffersUsername(string)":{"notice":"Counts the total number of offers made for a username"},"getOffersOfUsername(string)":{"notice":"Gets all offers made for a specific username"},"getOwnerOfIdentity(string)":{"notice":"Gets the owner address of a registered identity"},"getPriceOfRegistration(string)":{"notice":"Gets price to register an username"},"getPriceToAddCustomMetadata()":{"notice":"Gets the current price to add custom metadata to a username"},"getPriceToFlushCustomMetadata(string)":{"notice":"Gets the cost to remove all custom metadata entries from a username"},"getPriceToFlushUsername(string)":{"notice":"Gets the cost to completely remove a username and all its data"},"getPriceToRemoveCustomMetadata()":{"notice":"Gets the current price to remove a single custom metadata entry"},"getProposedWithdrawAmountFullDetails()":{"notice":"Gets information about pending token withdrawal proposals"},"getSingleCustomMetadataOfIdentity(string,uint256)":{"notice":"Gets a specific custom metadata entry by index"},"getSingleOfferOfUsername(string,uint256)":{"notice":"Gets a specific offer for a username by offer ID"},"hashUsername(string,uint256)":{"notice":"Creates a hash of username and random number for pre-registration"},"isUsernameAvailable(string)":{"notice":"Checks if a username is available for registration"},"makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Places a purchase offer on an existing username."},"preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Commits a username hash to prevent front-running before registration."},"proposeAdmin(address)":{"notice":"Proposes new admin address with 1-day delay"},"proposeChangeEvvmAddress(address)":{"notice":"Proposes to change the EVVM contract address"},"proposeWithdrawPrincipalTokens(uint256)":{"notice":"Proposes to withdraw Principal Tokens from the contract"},"registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Finalizes username registration by revealing the secret associated with a pre-registration."},"removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Removes specific custom metadata entry by key"},"renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Renews username registration for another year"},"seePriceToRenew(string)":{"notice":"Calculates the cost to renew a username registration"},"strictVerifyIfIdentityExist(string)":{"notice":"Strictly verifies if an identity exists and reverts if not found"},"verifyIfIdentityExists(string)":{"notice":"Checks if an identity exists in the system"},"verifyStrictAndGetOwnerOfIdentity(string)":{"notice":"Verifies identity exists and returns owner address"},"withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Withdraws marketplace offer and refunds tokens"}},"notice":"_ _ | \\\\ | | | \\\\| | __ _ _ __ ___ ___ | . ` |/ _` | \'_ ` _ \\\\ / _ \\\\ | |\\\\ | (_| | | | | | | __/ \\\\_| \\\\_/\\\\__,_|_| |_| |_|\\\\___| _____ _ / ___| (_) \\\\ `--. ___ _ ____ ___ ___ ___ `--. \\\\/ _ | \'__\\\\ \\\\ / | |/ __/ _ \\\\ /\\\\__/ | __| | \\\\ V /| | (_| __/ \\\\____/ \\\\___|_| \\\\_/ |_|\\\\___\\\\___| \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u255a\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u255a\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d Identity and username registration system for the EVVM ecosystem.","version":1}},"settings":{"compilationTarget":{"src/contracts/nameService/NameService.sol":"NameService"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"_coreAddress",type:"address"},{internalType:"address",name:"_initialOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],type:"error",name:"AmountMustBeGreaterThanZero"},{inputs:[],type:"error",name:"CannotBeBeforeCurrentTime"},{inputs:[],type:"error",name:"EmptyCustomMetadata"},{inputs:[],type:"error",name:"IdentityIsNotAUsername"},{inputs:[],type:"error",name:"InvalidAdminProposal"},{inputs:[],type:"error",name:"InvalidEvvmAddress"},{inputs:[],type:"error",name:"InvalidKey"},{inputs:[],type:"error",name:"InvalidUsername"},{inputs:[],type:"error",name:"InvalidWithdrawAmount"},{inputs:[],type:"error",name:"LockTimeNotExpired"},{inputs:[],type:"error",name:"OfferInactive"},{inputs:[],type:"error",name:"OwnershipExpired"},{inputs:[],type:"error",name:"PreRegistrationNotValid"},{inputs:[],type:"error",name:"RenewalTimeLimitExceeded"},{inputs:[],type:"error",name:"SenderIsNotAdmin"},{inputs:[],type:"error",name:"SenderIsNotProposedAdmin"},{inputs:[],type:"error",name:"UserIsNotOwnerOfIdentity"},{inputs:[],type:"error",name:"UserIsNotOwnerOfOffer"},{inputs:[],type:"error",name:"UsernameAlreadyRegistered"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptChangeEvvmAddress"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"uint256",name:"offerID",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"acceptOffer"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptProposeAdmin"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"identity",type:"string"},{internalType:"string",name:"value",type:"string"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"addCustomMetadata"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelChangeEvvmAddress"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelProposeAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelWithdrawPrincipalTokens"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"claimWithdrawPrincipalTokens"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"identity",type:"string"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"flushCustomMetadata"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"flushUsername"},{inputs:[],stateMutability:"view",type:"function",name:"getAdmin",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getAdminFullDetails",outputs:[{internalType:"address",name:"currentAdmin",type:"address"},{internalType:"address",name:"proposalAdmin",type:"address"},{internalType:"uint256",name:"timeToAcceptAdmin",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getAmountOfCustomMetadata",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCoreAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCoreAddressFullDetails",outputs:[{internalType:"address",name:"currentEvvmAddress",type:"address"},{internalType:"address",name:"proposalEvvmAddress",type:"address"},{internalType:"uint256",name:"timeToAcceptEvvmAddress",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getCustomMetadataMaxSlotsOfIdentity",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmID",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"getExpireDateOfIdentity",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getFullCustomMetadataOfIdentity",outputs:[{internalType:"string[]",name:"",type:"string[]"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getIdentityBasicMetadata",outputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getLengthOfOffersUsername",outputs:[{internalType:"uint256",name:"length",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getOffersOfUsername",outputs:[{internalType:"struct NameServiceStructs.OfferMetadata[]",name:"offers",type:"tuple[]",components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"uint256",name:"expirationDate",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}]}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getOwnerOfIdentity",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"string",name:"username",type:"string"}],stateMutability:"view",type:"function",name:"getPriceOfRegistration",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPriceToAddCustomMetadata",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"getPriceToFlushCustomMetadata",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"getPriceToFlushUsername",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPriceToRemoveCustomMetadata",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getProposedWithdrawAmountFullDetails",outputs:[{internalType:"uint256",name:"proposalAmountToWithdrawTokens",type:"uint256"},{internalType:"uint256",name:"timeToAcceptAmountToWithdrawTokens",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"},{internalType:"uint256",name:"_key",type:"uint256"}],stateMutability:"view",type:"function",name:"getSingleCustomMetadataOfIdentity",outputs:[{internalType:"string",name:"",type:"string"}]},{inputs:[{internalType:"string",name:"_username",type:"string"},{internalType:"uint256",name:"_offerID",type:"uint256"}],stateMutability:"view",type:"function",name:"getSingleOfferOfUsername",outputs:[{internalType:"struct NameServiceStructs.OfferMetadata",name:"offer",type:"tuple",components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"uint256",name:"expirationDate",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}]}]},{inputs:[{internalType:"string",name:"_username",type:"string"},{internalType:"uint256",name:"_randomNumber",type:"uint256"}],stateMutability:"pure",type:"function",name:"hashUsername",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"isUsernameAvailable",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"expirationDate",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"makeOffer",outputs:[{internalType:"uint256",name:"offerID",type:"uint256"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bytes32",name:"hashPreRegisteredUsername",type:"bytes32"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"preRegistrationUsername"},{inputs:[{internalType:"address",name:"_adminToPropose",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeAdmin"},{inputs:[{internalType:"address",name:"_newEvvmAddress",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeChangeEvvmAddress"},{inputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeWithdrawPrincipalTokens"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"uint256",name:"lockNumber",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"registrationUsername"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"identity",type:"string"},{internalType:"uint256",name:"key",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"removeCustomMetadata"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"renewUsername"},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"seePriceToRenew",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"strictVerifyIfIdentityExist",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"verifyIfIdentityExists",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"verifyStrictAndGetOwnerOfIdentity",outputs:[{internalType:"address",name:"answer",type:"address"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"uint256",name:"offerID",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"withdrawOffer"}],devdoc:{kind:"dev",methods:{"acceptChangeEvvmAddress()":{details:"Can only be called after the time delay has passed"},"acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Can only be called by current owner before expiration Acceptance Flow: 1. Validates user is current username owner 2. Validates offer exists and not expired 3. Transfers offer amount to seller 4. Transfers ownership to offerer 5. Processes optional priority fee 6. Deletes offer and unlocks tokens Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username + offer ID - Prevents replay attacks and double acceptance Core.sol Integration: - Payment: offer amount via makeCaPay to seller - Priority fee: via requestPay (if > 0) - Fee Distribution: * 99.5% to seller (locked amount) * 0.5% + reward to staker (if applicable) - makeCaPay transfers from locked funds Ownership Transfer: - Changes identityDetails[username].owner - Preserves all metadata and expiration - Transfers all custom metadata slots Token Unlocking: - Decreases principalTokenTokenLockedForWithdrawOffers - Releases offer amount + marketplace fee - Distributes to seller and staker",params:{nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",offerID:"Unique identifier of offer to accept",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of current username owner",username:"Username being sold"}},"acceptProposeAdmin()":{details:"Can only be called by the proposed admin after the time delay has passed"},"addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":{details:`Metadata format: [schema]:[subschema]>[value] Standard Format Examples: - memberOf:>EVVM - socialMedia:x>jistro (Twitter/X handle) - email:dev>jistro[at]evvm.org (dev email) - email:callme>contact[at]jistro.xyz (contact) Schema Guidelines: - Based on https://schema.org/docs/schemas.html - ':' separates schema from subschema - '>' separates metadata from value - Pad spaces if schema/subschema < 5 chars - Use "socialMedia" for social networks Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity + value - Prevents replay attacks Core.sol Integration: - Payment: 10x EVVM reward amount - Paid through requestPay (locks tokens) - Staker reward: 5x reward + priority fee - makeCaPay distributes rewards Slot Management: - Increments customMetadataMaxSlots - Each slot holds one metadata entry - No limit on number of slots`,params:{identity:"Username to add metadata to",nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner",value:"Metadata string following format"}},"cancelChangeEvvmAddress()":{details:"Only the current admin can cancel pending proposals"},"cancelProposeAdmin()":{details:"Only the current admin can cancel pending proposals"},"cancelWithdrawPrincipalTokens()":{details:"Only the current admin can cancel pending proposals"},"claimWithdrawPrincipalTokens()":{details:"Can only be called after the time delay has passed"},constructor:{params:{_coreAddress:"The address of the EVVM Core contract.",_initialOwner:"The address granted administrative privileges."}},"flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"More gas-efficient than removing individually Flush Process: 1. Validates user owns username 2. Validates metadata slots exist (not empty) 3. Calculates cost based on slot count 4. Deletes all metadata entries in loop 5. Resets customMetadataMaxSlots to 0 Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity only - Prevents replay attacks Core.sol Integration: - Payment: getPriceToFlushCustomMetadata (per slot) - Cost: 10x EVVM reward per metadata entry - Paid through requestPay (locks tokens) - Staker reward: 5x reward per slot + priority - makeCaPay distributes batch rewards Efficiency: - Single transaction for all metadata - Batch pricing for multiple entries - Cheaper than calling removeCustomMetadata N times",params:{identity:"Username to flush all metadata from",nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner"}},"flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Deletes username, metadata, makes available for re-registration Flush Process: 1. Validates user owns username 2. Validates not expired (must be active) 3. Validates is actual username (not temp hash) 4. Calculates cost based on metadata + username 5. Deletes all metadata entries 6. Resets username to default state 7. Preserves offerMaxSlots history Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username only - Prevents replay attacks Core.sol Integration: - Payment: getPriceToFlushUsername - Cost: Base + (10x reward per metadata slot) - Paid through requestPay (locks tokens) - Staker reward: 5x reward per slot + priority - makeCaPay distributes to caller Cleanup: - Deletes all custom metadata slots - Sets owner to address(0) - Sets expirationDate to 0 - Resets customMetadataMaxSlots to 0 - Keeps offerMaxSlots for history - Sets flagNotAUsername to 0x00 - Username becomes available for re-registration",params:{nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner",username:"Username to completely remove"}},"getAdmin()":{details:"Returns the address with administrative privileges",returns:{_0:"The current admin address"}},"getAdminFullDetails()":{details:"Returns current admin, proposed admin, and proposal acceptance deadline",returns:{currentAdmin:"Current administrative address",proposalAdmin:"Proposed new admin address (if any)",timeToAcceptAdmin:"Timestamp when proposal can be accepted"}},"getAmountOfCustomMetadata(string)":{details:"Returns the count of metadata slots currently used",params:{_username:"The username to count metadata for"},returns:{_0:"Number of custom metadata entries"}},"getCoreAddress()":{details:"Returns the address of the EVVM contract used for payment processing",returns:{_0:"The current EVVM contract address"}},"getCoreAddressFullDetails()":{details:"Returns current EVVM address, proposed address, and proposal acceptance deadline",returns:{currentEvvmAddress:"Current EVVM contract address",proposalEvvmAddress:"Proposed new EVVM address (if any)",timeToAcceptEvvmAddress:"Timestamp when proposal can be accepted"}},"getCustomMetadataMaxSlotsOfIdentity(string)":{details:"Returns the total capacity for custom metadata entries",params:{_username:"The username to check metadata capacity for"},returns:{_0:"Maximum number of metadata slots"}},"getEvvmID()":{details:"Returns the EvvmID used for distinguishing different EVVM deployments",returns:{_0:"Unique EvvmID string"}},"getExpireDateOfIdentity(string)":{details:"Returns the timestamp when the username registration expires",params:{_identity:"The username to check expiration for"},returns:{_0:"The expiration timestamp in seconds since Unix epoch"}},"getFullCustomMetadataOfIdentity(string)":{details:"Returns an array containing all metadata strings in order",params:{_username:"The username to get metadata for"},returns:{_0:"Array of all custom metadata strings"}},"getIdentityBasicMetadata(string)":{details:"Returns essential metadata for quick identity verification",params:{_username:"The username to get basic info for"},returns:{_0:"Owner address and expiration timestamp"}},"getLengthOfOffersUsername(string)":{details:"Iterates through offers to find the actual count of non-empty slots",params:{_username:"The username to count offers for"},returns:{length:"Total number of offers that have been made"}},"getOffersOfUsername(string)":{details:"Returns both active and expired offers that haven't been withdrawn",params:{_username:"The username to get offers for"},returns:{offers:"Array of all offer metadata structures"}},"getOwnerOfIdentity(string)":{details:"Returns the current owner address for any valid identity",params:{_username:"The username to query"},returns:{_0:"Address of the username owner"}},"getPriceOfRegistration(string)":{details:"Price is fully dynamic based on existing offers and timing - If dosnt have offers, price is 100x current EVVM reward amount - If has offers, price is calculated via seePriceToRenew function",params:{username:"The username to get registration price for"},returns:{_0:"The current registration price in Principal Tokens"}},"getPriceToAddCustomMetadata()":{details:"Price is dynamic based on current EVVM reward amount",returns:{price:"Cost in Principal Tokens (10x current reward amount)"}},"getPriceToFlushCustomMetadata(string)":{details:"Cost scales with the number of metadata entries to remove",params:{_identity:"The username to calculate flush cost for"},returns:{price:"Total cost in Principal Tokens (10x reward amount per metadata entry)"}},"getPriceToFlushUsername(string)":{details:"Includes cost for metadata removal plus base username deletion fee",params:{_identity:"The username to calculate deletion cost for"},returns:{price:"Total cost in Principal Tokens (metadata flush cost + 1x reward amount)"}},"getPriceToRemoveCustomMetadata()":{details:"Price is dynamic based on current EVVM reward amount",returns:{price:"Cost in Principal Tokens (10x current reward amount)"}},"getProposedWithdrawAmountFullDetails()":{details:"Returns proposed withdrawal amount and acceptance deadline",returns:{proposalAmountToWithdrawTokens:"Proposed withdrawal amount in Principal Tokens",timeToAcceptAmountToWithdrawTokens:"Timestamp when proposal can be executed"}},"getSingleCustomMetadataOfIdentity(string,uint256)":{details:"Retrieves metadata at a specific slot position",params:{_key:"The index of the metadata entry to retrieve",_username:"The username to get metadata from"},returns:{_0:"The metadata string at the specified index"}},"getSingleOfferOfUsername(string,uint256)":{details:"Retrieves detailed information about a particular offer",params:{_offerID:"The ID/index of the specific offer",_username:"The username to get the offer from"},returns:{offer:"The complete offer metadata structure"}},"hashUsername(string,uint256)":{details:"Used in the commit-reveal scheme to prevent front-running attacks",params:{_randomNumber:"Random number to add entropy",_username:"The username to hash"},returns:{_0:"Hash of the username and random number"}},"isUsernameAvailable(string)":{details:"A username is available if it was never registered or has been expired for 60+ days",params:{_username:"The username to check availability for"},returns:{_0:"True if the username is available for registration"}},"makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Tokens are locked in the contract. A 0.5% marketplace fee is applied upon successful sale.",params:{amount:"Total amount offered (including fee).",expirationDate:"When the offer expires.",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment (locks tokens).",originExecutor:"Optional tx.origin restriction.",priorityFeePay:"Optional priority fee for the executor.",signature:"Offerer's authorization signature.",signaturePay:"Signature for the Core payment.",user:"The address of the offerer.",username:"The target username."},returns:{offerID:"The unique ID of the created offer."}},"preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Part of the commit-reveal scheme. Valid for 30 minutes.",params:{hashPreRegisteredUsername:"The keccak256 hash of (username + secret).",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment (if fee is paid).",originExecutor:"Optional tx.origin restriction.",priorityFeePay:"Optional priority fee for the executor.",signature:"Registrant's authorization signature.",signaturePay:"Signature for the Core payment (if fee is paid).",user:"The address of the registrant."}},"proposeAdmin(address)":{details:"Time-delayed governance system for admin changes",params:{_adminToPropose:"Address of the proposed new admin"}},"proposeChangeEvvmAddress(address)":{details:"Critical function that affects payment processing integration",params:{_newEvvmAddress:"Address of the new EVVM contract"}},"proposeWithdrawPrincipalTokens(uint256)":{details:"Amount must be available after reserving funds for operations and locked offers",params:{_amount:"Amount of Principal Tokens to withdraw"}},"registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Validates format, availability, and payment. Grants 1 year of ownership.",params:{lockNumber:"The secret used in the pre-registration hash.",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment (registration fee + priority fee).",originExecutor:"Optional tx.origin restriction.",priorityFeePay:"Optional priority fee for the executor.",signature:"Registrant's authorization signature.",signaturePay:"Signature for the Core payment.",user:"The address of the registrant.",username:"The plain-text username being registered."}},"removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Shifts all subsequent entries to fill gap Removal Process: 1. Validates user owns username 2. Validates key exists in metadata slots 3. Deletes entry at key position 4. Shifts all entries after key down by 1 5. Decrements customMetadataMaxSlots Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity + key - Prevents replay attacks Core.sol Integration: - Payment: 10x EVVM reward amount - Paid through requestPay (locks tokens) - Staker reward: 5x reward + priority fee - makeCaPay distributes rewards Array Reordering: - Shifts entries from key+1 to maxSlots - Maintains continuous slot indexing - No gaps in metadata array",params:{identity:"Username to remove metadata from",key:"Index of metadata entry to remove",nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner"}},"renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Dynamic pricing based on timing and market demand Pricing Rules: - Free: Renewed within grace period after expiration - Variable: Based on highest active offer (min 500 PT) - Fixed: 500,000 PT if renewed >1 year early - Can renew up to 100 years in advance Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username only - Prevents replay attacks Core.sol Integration: - Payment: seePriceToRenew calculates cost - Paid through requestPay (locks tokens) - Staker reward: 1x reward + 50% of price + fee - makeCaPay distributes rewards Renewal Logic: - Extends expirationDate by 366 days - Preserves ownership and all metadata - Cannot exceed 100 years (36500 days)",params:{nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner",username:"Username to renew"}},"seePriceToRenew(string)":{details:"Pricing varies based on timing and market demand: - Free if renewed before expiration (within grace period) - Variable cost based on highest active offer (minimum 500 Principal Token) - Fixed 500,000 Principal Token if renewed more than 1 year before expiration",params:{_identity:"The username to calculate renewal price for"},returns:{price:"The cost in Principal Tokens to renew the username"}},"strictVerifyIfIdentityExist(string)":{details:"More strict version that reverts instead of returning false",params:{_username:"The username to verify"},returns:{_0:"True if the username exists (will revert if not)"}},"verifyIfIdentityExists(string)":{details:"Handles both pre-registrations and actual username registrations",params:{_identity:"The identity/username to check"},returns:{_0:"True if the identity exists and is valid"}},"verifyStrictAndGetOwnerOfIdentity(string)":{details:"Combines strict verification with owner lookup in one call",params:{_username:"The username to verify and get owner for"},returns:{answer:"Address of the username owner (reverts if username doesn't exist)"}},"withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Can only be called by offer creator or after expire Withdrawal Flow: 1. Validates offer exists and belongs to user 2. Optionally validates expiration date passed 3. Refunds locked tokens to offerer 4. Processes optional priority fee 5. Deletes offer and updates slot count Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username + offer ID - Prevents replay attacks and double withdrawals Core.sol Integration: - Refund: offer amount via makeTransfer to offerer - Priority fee: via requestPay (if > 0) - Staker reward: 1x reward + priority fee - makeCaPay distributes to caller if staker Token Unlocking: - Decreases principalTokenTokenLockedForWithdrawOffers - Releases both offer amount and marketplace fee - Returns funds to original offerer",params:{nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",offerID:"Unique identifier of offer to withdraw",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address that made original offer",username:"Username offer was made for"}}},version:1},userdoc:{kind:"user",methods:{"acceptChangeEvvmAddress()":{notice:"Executes the approved EVVM address change"},"acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Accepts marketplace offer and transfers ownership"},"acceptProposeAdmin()":{notice:"Accepts the admin proposal and becomes the new admin"},"addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Adds custom metadata to username using schema format"},"cancelChangeEvvmAddress()":{notice:"Cancels the pending EVVM address change proposal"},"cancelProposeAdmin()":{notice:"Cancels the current admin proposal"},"cancelWithdrawPrincipalTokens()":{notice:"Cancels the pending token withdrawal proposal"},"claimWithdrawPrincipalTokens()":{notice:"Executes the approved token withdrawal"},constructor:{notice:"Initializes the NameService with the Core contract and initial administrator."},"flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Removes all custom metadata entries for username"},"flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Completely removes username and all data"},"getAdmin()":{notice:"Gets the current admin address"},"getAdminFullDetails()":{notice:"Gets complete admin information including pending proposals"},"getAmountOfCustomMetadata(string)":{notice:"Gets the number of custom metadata entries for a username"},"getCoreAddress()":{notice:"Gets the current EVVM contract address"},"getCoreAddressFullDetails()":{notice:"Gets complete EVVM address information including pending proposals"},"getCustomMetadataMaxSlotsOfIdentity(string)":{notice:"Gets the maximum number of metadata slots available for a username"},"getEvvmID()":{notice:"Gets the unique identifier string for this EVVM instance"},"getExpireDateOfIdentity(string)":{notice:"Gets the expiration date of a username registration"},"getFullCustomMetadataOfIdentity(string)":{notice:"Retrieves all custom metadata entries for a username"},"getIdentityBasicMetadata(string)":{notice:"Gets basic identity information (owner and expiration date)"},"getLengthOfOffersUsername(string)":{notice:"Counts the total number of offers made for a username"},"getOffersOfUsername(string)":{notice:"Gets all offers made for a specific username"},"getOwnerOfIdentity(string)":{notice:"Gets the owner address of a registered identity"},"getPriceOfRegistration(string)":{notice:"Gets price to register an username"},"getPriceToAddCustomMetadata()":{notice:"Gets the current price to add custom metadata to a username"},"getPriceToFlushCustomMetadata(string)":{notice:"Gets the cost to remove all custom metadata entries from a username"},"getPriceToFlushUsername(string)":{notice:"Gets the cost to completely remove a username and all its data"},"getPriceToRemoveCustomMetadata()":{notice:"Gets the current price to remove a single custom metadata entry"},"getProposedWithdrawAmountFullDetails()":{notice:"Gets information about pending token withdrawal proposals"},"getSingleCustomMetadataOfIdentity(string,uint256)":{notice:"Gets a specific custom metadata entry by index"},"getSingleOfferOfUsername(string,uint256)":{notice:"Gets a specific offer for a username by offer ID"},"hashUsername(string,uint256)":{notice:"Creates a hash of username and random number for pre-registration"},"isUsernameAvailable(string)":{notice:"Checks if a username is available for registration"},"makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Places a purchase offer on an existing username."},"preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Commits a username hash to prevent front-running before registration."},"proposeAdmin(address)":{notice:"Proposes new admin address with 1-day delay"},"proposeChangeEvvmAddress(address)":{notice:"Proposes to change the EVVM contract address"},"proposeWithdrawPrincipalTokens(uint256)":{notice:"Proposes to withdraw Principal Tokens from the contract"},"registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Finalizes username registration by revealing the secret associated with a pre-registration."},"removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Removes specific custom metadata entry by key"},"renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Renews username registration for another year"},"seePriceToRenew(string)":{notice:"Calculates the cost to renew a username registration"},"strictVerifyIfIdentityExist(string)":{notice:"Strictly verifies if an identity exists and reverts if not found"},"verifyIfIdentityExists(string)":{notice:"Checks if an identity exists in the system"},"verifyStrictAndGetOwnerOfIdentity(string)":{notice:"Verifies identity exists and returns owner address"},"withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Withdraws marketplace offer and refunds tokens"}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/nameService/NameService.sol":"NameService"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:64},tF={abi:[{type:"constructor",inputs:[{name:"_coreAddress",type:"address",internalType:"address"},{name:"_stakingAddress",type:"address",internalType:"address"},{name:"_owner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptFillFixedPercentage",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptFillPropotionalPercentage",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptMaxLimitFillFixedFee",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptOwner",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptPercentageFee",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptWithdrawal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addBalance",inputs:[{name:"_token",type:"address",internalType:"address"},{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelOrder",inputs:[{name:"user",type:"address",internalType:"address"},{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"dispatchOrder_fillFixedFee",inputs:[{name:"user",type:"address",internalType:"address"},{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"amountOfTokenBToFill",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"},{name:"maxFillFixedFee",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"dispatchOrder_fillPropotionalFee",inputs:[{name:"user",type:"address",internalType:"address"},{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"amountOfTokenBToFill",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"findMarket",inputs:[{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getAllMarketOrders",inputs:[{name:"market",type:"uint256",internalType:"uint256"}],outputs:[{name:"orders",type:"tuple[]",internalType:"struct P2PSwapStructs.OrderForGetter[]",components:[{name:"marketId",type:"uint256",internalType:"uint256"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"seller",type:"address",internalType:"address"},{name:"amountA",type:"uint256",internalType:"uint256"},{name:"amountB",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAllMarketsMetadata",inputs:[],outputs:[{name:"",type:"tuple[]",internalType:"struct P2PSwapStructs.MarketInformation[]",components:[{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"maxSlot",type:"uint256",internalType:"uint256"},{name:"ordersAvailable",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getBalanceOfContract",inputs:[{name:"token",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getIfUsedAsyncNonce",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getMarketMetadata",inputs:[{name:"market",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"tuple",internalType:"struct P2PSwapStructs.MarketInformation",components:[{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"maxSlot",type:"uint256",internalType:"uint256"},{name:"ordersAvailable",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getMaxLimitFillFixedFee",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getMaxLimitFillFixedFeeProposal",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getMyOrdersInSpecificMarket",inputs:[{name:"user",type:"address",internalType:"address"},{name:"market",type:"uint256",internalType:"uint256"}],outputs:[{name:"orders",type:"tuple[]",internalType:"struct P2PSwapStructs.OrderForGetter[]",components:[{name:"marketId",type:"uint256",internalType:"uint256"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"seller",type:"address",internalType:"address"},{name:"amountA",type:"uint256",internalType:"uint256"},{name:"amountB",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getNextCurrentSyncNonce",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getOrder",inputs:[{name:"market",type:"uint256",internalType:"uint256"},{name:"orderId",type:"uint256",internalType:"uint256"}],outputs:[{name:"order",type:"tuple",internalType:"struct P2PSwapStructs.Order",components:[{name:"seller",type:"address",internalType:"address"},{name:"amountA",type:"uint256",internalType:"uint256"},{name:"amountB",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getOwnerProposal",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getOwnerTimeToAccept",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPercentageFee",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPrincipalTokenAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getProposalPercentageFee",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getProposedWithdrawal",inputs:[],outputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getRewardPercentage",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct P2PSwapStructs.Percentage",components:[{name:"seller",type:"uint256",internalType:"uint256"},{name:"service",type:"uint256",internalType:"uint256"},{name:"mateStaker",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getRewardPercentageProposal",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct P2PSwapStructs.Percentage",components:[{name:"seller",type:"uint256",internalType:"uint256"},{name:"service",type:"uint256",internalType:"uint256"},{name:"mateStaker",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"makeOrder",inputs:[{name:"user",type:"address",internalType:"address"},{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"amountA",type:"uint256",internalType:"uint256"},{name:"amountB",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[{name:"market",type:"uint256",internalType:"uint256"},{name:"orderId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"proposeFillFixedPercentage",inputs:[{name:"_seller",type:"uint256",internalType:"uint256"},{name:"_service",type:"uint256",internalType:"uint256"},{name:"_mateStaker",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeFillPropotionalPercentage",inputs:[{name:"_seller",type:"uint256",internalType:"uint256"},{name:"_service",type:"uint256",internalType:"uint256"},{name:"_mateStaker",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeMaxLimitFillFixedFee",inputs:[{name:"_maxLimitFillFixedFee",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeOwner",inputs:[{name:"_owner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposePercentageFee",inputs:[{name:"_percentageFee",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeWithdrawal",inputs:[{name:"_tokenToWithdraw",type:"address",internalType:"address"},{name:"_amountToWithdraw",type:"uint256",internalType:"uint256"},{name:"_to",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeFillFixedPercentage",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeFillPropotionalPercentage",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeMaxLimitFillFixedFee",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeOwner",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposePercentageFee",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeWithdrawal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"stake",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unstake",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"InvalidServiceSignature",inputs:[]}],bytecode:{object:"0x60806040523461011957604051601f612d6c38819003918201601f19168301916001600160401b03831184841017610105578084926060946040528339810103126101195761004d8161011d565b90610066604061005f6020840161011d565b920161011d565b5f80546001600160a01b039485166001600160a01b03199182161790915560018054938516938216939093179092556002805491909316911617905566038d7ea4c68000600f556101f4600c55604051606081018181106001600160401b03821117610105576103e89160409182526113888152610fa060208201520152611388600555610fa06006556103e8600755604051612c3a90816101328239f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b51906001600160a01b03821682036101195756fe6080806040526004361015610012575f80fd5b5f905f3560e01c9081630a96865b1461217a575080631128a79a1461213f578063144384281461208f57806316790f8114611f5e57806317857d9d14611efa57806317c8515214611eb15780631ea43a7d14611d905780631f80982114611d7357806321e5383a14611d2357806326415c7114611cd1578063280e32fb14611c6057806328b44b4b14611c285780632e17de7814611baa57806335287eaf14611b6b57806335b2c22c146119e757806354282704146119825780635dc220751461153e5780635e1a3573146114c15780636b6445b61461144f5780636cd30148146113b25780636cdbf9271461136c5780637280ff351461132f57806374efedc9146112f057806376a75a2914610fe9578063775f3f7e146112d25780637b8ad14914611015578063893d20e814610fee5780638eb163d314610fe957806392aa42c914610e37578063952469d014610a385780639610067114610e195780639c34866614610df25780639dc2060714610dd4578063a694fc3a14610a7a578063a936e0d114610a3d578063af5cecc014610a38578063b3d4fd79146109fb578063b54cfef0146105b6578063b5ed298a14610557578063b7ac72ff146104b1578063c721316314610447578063cfb35fd0146103b2578063d0e3692d14610312578063d89ea03c146102c9578063db7ccd631461027b5763ebbc496514610218575f80fd5b346102785780600319360112610278576003546001600160a01b03811680331480159061026d575b610269576001600160601b0360a01b60025416176002556001600160601b0360a01b1660035580f35b8280fd5b506004544211610240565b80fd5b5034610278576040366003190112610278576001600160a01b03604061029f612202565b92826102a9612218565b9416815260176020522091165f52602052602060405f2054604051908152f35b503461027857806003193601126102785760806001600160a01b03601254166013546001600160a01b036014541660155491604051938452602084015260408301526060820152f35b50346102785760403660031901126102785761032c612202565b60206001600160a01b0360448185541693604051948593849263d0e3692d60e01b845216600483015260243560248301525afa9081156103a7576020929161037a575b506040519015158152f35b61039a9150823d84116103a0575b61039281836124b6565b8101906126f6565b5f61036f565b503d610388565b6040513d84823e3d90fd5b5034610278576103c136612288565b916001600160a01b03600254163314801590610429575b6104255782604080516103ea81612462565b8381528460208201520152600855600955600a5562015180420180421161041157600b5580f35b634e487b7160e01b82526011600452602482fd5b8380fd5b506127106104408461043b8585612425565b612425565b14156103d8565b50346102785780600319360112610278576104606125ab565b50506104ad60405161047181612462565b60055481526006546020820152600754604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b0390f35b5034610278576060366003190112610278576104cb612202565b6024356104d661222e565b906001600160a01b03600254163314801590610539575b610425576001600160a01b038093166001600160601b0360a01b6012541617601255601355166001600160601b0360a01b60145416176014556201518042018042116104115760155580f35b506001600160a01b0383168452601a602052604084205481116104ed565b503461027857602036600319011261027857610571612202565b6001600160a01b036002541633036105b2576001600160a01b03166001600160601b0360a01b60035416176003556201518042018042116104115760045580f35b5080fd5b503461027857806105c636612300565b93899f9b9e9891958f9397949d8c9f9b819d8c546001600160a01b031696604051936020850160a0905260c085016009905260e085016836b0b5b2a7b93232b960b91b90526001600160a01b031660408501526001600160a01b03166060840152608083015260a082015260e08152610641610100826124b6565b8051906020012094843b156109f7578b61067a8f96948c98969488946040519a8b998a988997637d3d171560e11b895260048901612655565b03925af180156109ec579089916109d3575b50506106a993929161069f9136916126b0565b91888a8888612786565b6001600160a01b03831684526017602052604084206001600160a01b0388165f5260205260405f20549687156108fc575b508684526018602052600260408520015487855260186020526003604086200154145f146108595750600260249787855260186020528160408620016107208154612514565b905587855260186020526003604086200161073b8154612514565b9055878552601860205281604086200154965b6001600160a01b036040519461076386612462565b16845260208401908152604084019182528886526019602052604086208887526020526001600160a01b038060408820955116166001600160601b0360a01b8554161784555160018401555191015560206001600160a01b0383541660405197888092630a1ad2d160e21b82523360048301525afa80156103a757604096839161083a575b5061081c575b5050156108105761080460ff60035b1633612890565b82519182526020820152f35b61080460ff60026107fd565b8280610829575b506107ee565b6108339133612721565b5f82610823565b610853915060203d6020116103a05761039281836124b6565b5f6107e8565b9660015b87855260186020526002604086200154600181018091116108e85781116108db578785526019602052604085208186526020526001600160a01b03604086205416156108b1576108ac90612514565b61085d565b6024985090600291965b8886526018602052600360408720016108d48154612514565b905561074e565b50600290602498966108bb565b634e487b7160e01b86526011600452602486fd5b90965061090a601654612514565b806016556001600160a01b03841685526017602052604085206001600160a01b0383165f5260205260405f20556003604051916109468361247e565b6001600160a01b03851683526001600160a01b036020840191168152604083018681526001600160a01b03606085019288845260165489526018602052818060408b20975116166001600160601b0360a01b87541617865551166001600160a01b036001860191166001600160601b0360a01b82541617905551600284015551910155601654955f6106da565b816109dd916124b6565b6109e857875f61068c565b8780fd5b6040513d8b823e3d90fd5b8d80fd5b5034610278576020366003190112610278576001600160a01b0360025416330361027857600435600d5562015180420180421161041157600e5580f35b6123cf565b50346102785780600319360112610278576001600160a01b03600254163314801590610a6f575b6102785780600d5580f35b50600e544211610a64565b503461027857602036600319011261027857806004356001600160a01b03600254163314801590610d4b575b610c40576001600160a01b0360015416803b15610d47578280916024604051809481936399b4c3ef60e01b83528760048401525af1908115610d3c578391610d27575b50506001600160a01b0360015416604051630412d6ed60e31b8152602081600481855afa8015610d1c576001600160a01b03918591610cfd575b501660405192630412d6ed60e31b8452602084600481865afa938415610cd5576001600160a01b03946020918791610ce0575b5060046040518097819363280e32fb60e01b8352165afa938415610cd5578594610ca4575b50604051631961201760e31b8152602081600481875afa908115610c99578691610c5c575b5090610bab9161270e565b90803b15610c585760405163c898a6e960e01b81526001600160a01b039384166004820152939092166024840152604483015282908290606490829084905af180156103a757610c43575b506001600160a01b0360015416803b15610c405781809160046040518094819363c9d2beb160e01b83525af180156103a757610c2f5750f35b81610c39916124b6565b6102785780f35b50fd5b81610c4d916124b6565b61027857805f610bf6565b8480fd5b919550506020813d602011610c91575b81610c79602093836124b6565b81010312610c8d5751859490610bab610ba0565b5f80fd5b3d9150610c6c565b6040513d88823e3d90fd5b610cc791945060203d602011610cce575b610cbf81836124b6565b810190612636565b925f610b7b565b503d610cb5565b6040513d87823e3d90fd5b610cf79150823d8411610cce57610cbf81836124b6565b5f610b56565b610d16915060203d602011610cce57610cbf81836124b6565b5f610b23565b6040513d86823e3d90fd5b81610d31916124b6565b610c4057815f610ae9565b6040513d85823e3d90fd5b5050fd5b50600460206001600160a01b036001541660405192838092631961201760e31b82525afa908115610d3c578391610d9c575b50610d88908261270e565b60018352601a602052604083205410610aa6565b9250506020823d602011610dcc575b81610db8602093836124b6565b81010312610c8d57610d8883925190610d7d565b3d9150610dab565b50346102785780600319360112610278576020601054604051908152f35b503461027857806003193601126102785760206001600160a01b0360035416604051908152f35b50346102785780600319360112610278576020600c54604051908152f35b50346102785780610e4736612300565b969a959194929b97998e94919a819e9a9f6001600160a01b03610e6e91541692898c6129b0565b92823b15610fe5578b610e9f8f979289979388946040519a8b998a988997637d3d171560e11b895260048901612655565b03925af180156103a757610fcc575b50506001600160a01b0384168b52601760205260408b206001600160a01b0383165f5260205260405f205497610ee48a8a612a0a565b928c60028501998a5491508d610f0a612710610f02600c548661270e565b048094612425565b809110610f87578e610f789f8b610f5b98610f4595610f639f610f3e948a60019f8d93610f389136916126b0565b95612786565b848b612a38565b9954906001600160a01b03865416913393612a5a565b015491612721565b15610f7b57610f73600533612890565b61284c565b80f35b610f7360ff60046107fd565b60405162461bcd60e51b815260206004820152601f60248201527f496e737566696369656e7420616d6f756e744f66546f6b656e546f46696c6c006044820152606490fd5b81610fd6916124b6565b610fe1578a5f610eae565b8a80fd5b8680fd5b6122a2565b503461027857806003193601126102785760206001600160a01b0360025416604051908152f35b5034610278576101a036600319011261027857611030612202565b611038612218565b61104061222e565b6064359260843592611050612244565b9160c435916001600160a01b03831683036109e8576101043567ffffffffffffffff81116112ce5761108690369060040161225a565b969094610124358a610164359967ffffffffffffffff8b116105b2576110b18c9b369060040161225a565b9490998b6110cf610184359f6001600160a01b03875416928b6129b0565b813b156112ca578580946111018d978f96604051998a9889978896637d3d171560e11b885260e4359360048901612655565b03925af180156103a7576112b5575b50506001600160a01b0384168b52601760205260408b206001600160a01b0389165f5260205260405f2054976111468a8a612a0a565b9360028501988d8d8b54918091612710611162600c548661270e565b04111561128f5750508d6103e88102908082046103e8149015171561127a576127109004969594939291906111ab8f5b6111a58a6111a08386612425565b612418565b92612425565b908310611236578f9e610f789f6111f760019a8f610f639f8f8a906111ea928d610f5b9f6111df610f459d8f9236916126b0565b946101443594612786565b5492506111a08484612425565b6112018383612425565b90861015908161122c575b50156112255761121d915084612418565b92848b612a38565b5092610f3e565b905085105f61120c565b606460405162461bcd60e51b815260206004820152602060248201527f496e737566696369656e7420616d6f756e744f66546f6b656e42546f46696c6c6044820152fd5b50634e487b7160e01b8f52601160045260248ffd5b6111ab9f50979695949392919097506127106112ad600c548361270e565b049e8f611192565b816112bf916124b6565b610fe1578a5f611110565b8580fd5b8880fd5b50346102785780600319360112610278576020600454604051908152f35b50346102785780600319360112610278576001600160a01b03600254163314801590611324575b61027857601054600f5580f35b506011544211611317565b5034610278576020366003190112610278576001600160a01b03600254163303610278576004356010556201518042018042116104115760115580f35b50346102785761137b36612288565b916001600160a01b036002541633036104255761271061139f8461043b8585612425565b036104255782604080516103ea81612462565b5034610278576020366003190112610278576113cc612202565b9060206001600160a01b03602481845416946040519586938492630d9a602960e31b84521660048301525afa9081156114435790611410575b602090604051908152f35b506020813d60201161143b575b8161142a602093836124b6565b81010312610c8d5760209051611405565b3d915061141d565b604051903d90823e3d90fd5b50346102785760203660031901126102785761148260406080926114716124f0565b506004358152601860205220612567565b6114bf6040518092606080916001600160a01b0381511684526001600160a01b036020820151166020850152604081015160408501520151910152565bf35b50346102785760403660031901126102785760406060916114e06125ab565b506004358152601960205281812060243582526020522060405161150381612462565b6001600160a01b0382541691828252604060026001830154926020850193845201549201918252604051928352516020830152516040820152f35b50346102785761016036600319011261027857611559612202565b611561612218565b9061156a61222e565b90606435608435936001600160a01b03851685036112ca5761158a612244565b9060e43567ffffffffffffffff81116109e8576115ab90369060040161225a565b90956101043596896101443567ffffffffffffffff81116105b2576115d490369060040161225a565b94909a6001600160a01b0383541693604051946020860160808152600b60a08801526a31b0b731b2b627b93232b960a91b60c08801526001600160a01b038a16968760408201526001600160a01b03891660608201528c608082015260c0815261163f60e0826124b6565b519020813b156112ca578580946116748f978e96604051998a9889978896637d3d171560e11b885260c4359360048901612655565b03925af180156103a757611969575b505260176020526001600160a01b0360408a2091165f5260205260405f20549283158015611937575b61190257889187151598896117c3575b50505093610f7391836116e79652601960205260408920858a52602052600160408a20015491612721565b6001600160a01b0383541690604051630a1ad2d160e21b8152336004820152602081602481865afa908115610cd55785916117a4575b508061179d575b611747575b50501561173b57610f78600333612890565b610f7860ff60026107fd565b60206004926040519384809263280e32fb60e01b82525afa8015610d1c5761177792859161177e575b5033612721565b5f80611729565b611797915060203d602011610cce57610cbf81836124b6565b5f611770565b5082611724565b6117bd915060203d6020116103a05761039281836124b6565b5f61171d565b60049060206001600160a01b038654166040519384809263280e32fb60e01b82525afa918215610cd55785926118df575b50611801919236916126b0565b906001600160a01b03845416803b15610c58576001600160a01b03856101a48b602083978f869a87916040519c8d9b8c9a8b9863487e5a7760e11b8a5216600489015230602489015261016060448901528961016489015216606487015287608487015260a48601523060c48601521660e4840152610124356101048401526001610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af180156103a7576118ca575b80806116bc565b816118d4916124b6565b610fe557865f6118c3565b61180192506118fc9060203d602011610cce57610cbf81836124b6565b916117f4565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037b93232b960991b6044820152606490fd5b50838952601960205260408920858a526020526001600160a01b0360408a2054166001600160a01b03871614156116ac565b81611973916124b6565b61197e57895f611683565b8980fd5b50346102785780600319360112610278576001600160a01b036002541633148015906119dc575b610278576001600160601b0360a01b60125416601255806013556001600160601b0360a01b601454166014558060155580f35b5060155442116119a9565b503461027857604036600319011261027857611a01612202565b6024358083526018602052600260408420015460018101809111611b5757611a28906125c9565b906001600160a01b0360019316925b81855260186020526002604086200154600181018091116108e8578111611b4957818552601960205260408520818652602052836001600160a01b0360408720541614611a8d575b611a8890612514565b611a37565b8185526019602052604085208186526020526001600160a01b03604086205416828652601960205260408620828752602052600160408720015483875260196020526040872083885260205260026040882001549060405192611aef84612432565b8584528460208501526040840152606083015260808201525f19820190828211611b355781611b2d91611b26611a88959488612553565b5285612553565b509050611a7f565b634e487b7160e01b87526011600452602487fd5b604051806104ad8582612194565b634e487b7160e01b84526011600452602484fd5b50346102785780600319360112610278576001600160a01b03600254163314801590611b9f575b61027857600d54600c5580f35b50600e544211611b92565b5034610c8d576020366003190112610c8d576001600160a01b03600254163303610c8d576001600160a01b0360015416803b15610c8d575f80916024604051809481936320a719f560e21b835260043560048401525af18015611c1d57611c0f575080f35b611c1b91505f906124b6565b005b6040513d5f823e3d90fd5b34610c8d576020366003190112610c8d576001600160a01b03611c49612202565b165f52601a602052602060405f2054604051908152f35b34610c8d575f366003190112610c8d57600460206001600160a01b035f54166040519283809263280e32fb60e01b82525afa8015611c1d576020915f91611cb4575b506001600160a01b0360405191168152f35b611ccb9150823d8411610cce57610cbf81836124b6565b82611ca2565b34610c8d575f366003190112610c8d576003546001600160a01b0381163314801590611d18575b610c8d5773ffffffffffffffffffffffffffffffffffffffff1916600355005b506004544211611cf8565b34610c8d576040366003190112610c8d57611d3c612202565b6001600160a01b03600254163303610c8d576001600160a01b03165f52601a60205260405f20611d6f6024358254612425565b9055005b34610c8d575f366003190112610c8d576020600f54604051908152f35b34610c8d576020366003190112610c8d57600435805f526018602052600260405f20015460018101809111611e9d57611dc8906125c9565b9060015b815f526018602052600260405f20015460018101809111611e9d578111611b4957815f52601960205260405f20815f526020526001600160a01b0360405f205416611e20575b611e1b90612514565b611dcc565b5f82815260196020908152604080832084845290915290819020805460018201546002909201549251939291906001600160a01b0316611e5f85612432565b8585528360208601526040850152606084015260808301525f19810191818311611e9d5782611e9591611b26611e1b9588612553565b509050611e12565b634e487b7160e01b5f52601160045260245ffd5b34610c8d575f366003190112610c8d57600460206001600160a01b035f541660405192838092630be428a960e11b82525afa8015611c1d575f9061141057602090604051908152f35b34610c8d575f366003190112610c8d57611f126125ab565b506104ad604051611f2281612462565b60085481526009546020820152600a54604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b34610c8d575f366003190112610c8d576016546001810190818111611e9d57611f86826124d8565b91611f9460405193846124b6565b808352611fa3601f19916124d8565b015f5b81811061207857505060015b8181111561203a57826040518091602082016020835281518091526020604084019201905f5b818110611fe6575050500390f35b91935091602060808261202c6001948851606080916001600160a01b0381511684526001600160a01b036020820151166020850152604081015160408501520151910152565b019401910191849392611fd8565b805f52601860205260405f20905f19810191818311611e9d576120739261206361206d92612567565b611b268288612553565b50612514565b611fb2565b6020906120836124f0565b82828701015201611fa6565b34610c8d575f366003190112610c8d576001600160a01b03600254163314801590612134575b610c8d576120dd6001600160a01b03601454166001600160a01b036012541660135491612721565b6013546001600160a01b03601254165f52601a60205261210260405f20918254612418565b90556001600160601b0360a01b601254166012555f6013556001600160601b0360a01b601454166014555f6015555f80f35b5060155442116120b5565b34610c8d575f366003190112610c8d576001600160a01b0360025416331480159061216f575b610c8d575f601055005b506011544211612165565b34610c8d575f366003190112610c8d57602090600d548152f35b60206040818301928281528451809452019201905f5b8181106121b75750505090565b909192602060a0600192608087518051835284810151858401526001600160a01b036040820151166040840152606081015160608401520151608082015201940191019190916121aa565b600435906001600160a01b0382168203610c8d57565b602435906001600160a01b0382168203610c8d57565b604435906001600160a01b0382168203610c8d57565b60a435906001600160a01b0382168203610c8d57565b9181601f84011215610c8d5782359167ffffffffffffffff8311610c8d5760208381860195010111610c8d57565b6060906003190112610c8d57600435906024359060443590565b34610c8d575f366003190112610c8d576001600160a01b036002541633148015906122f5575b610c8d575f604080516122da81612462565b82815282602082015201525f6008555f6009555f600a555f80f35b50600b5442116122c8565b610180600319820112610c8d576004356001600160a01b0381168103610c8d57916024356001600160a01b0381168103610c8d57916044356001600160a01b0381168103610c8d5791606435916084359160a4356001600160a01b0381168103610c8d579160c4356001600160a01b0381168103610c8d579160e435916101043567ffffffffffffffff8111610c8d578161239d9160040161225a565b9290929161012435916101443591610164359067ffffffffffffffff8211610c8d576123cb9160040161225a565b9091565b34610c8d575f366003190112610c8d576001600160a01b0360025416331480159061240d575b610c8d57600854600555600954600655600a54600755005b50600b5442116123f5565b91908203918211611e9d57565b91908201809211611e9d57565b60a0810190811067ffffffffffffffff82111761244e57604052565b634e487b7160e01b5f52604160045260245ffd5b6060810190811067ffffffffffffffff82111761244e57604052565b6080810190811067ffffffffffffffff82111761244e57604052565b6040810190811067ffffffffffffffff82111761244e57604052565b90601f8019910116810190811067ffffffffffffffff82111761244e57604052565b67ffffffffffffffff811161244e5760051b60200190565b604051906124fd8261247e565b5f6060838281528260208201528260408201520152565b5f198114611e9d5760010190565b80511561252f5760200190565b634e487b7160e01b5f52603260045260245ffd5b80516001101561252f5760400190565b805182101561252f5760209160051b010190565b906040516125748161247e565b6060600382946001600160a01b0381541684526001600160a01b036001820154166020850152600281015460408501520154910152565b604051906125b882612462565b5f6040838281528260208201520152565b906125d3826124d8565b6125e060405191826124b6565b82815280926125f1601f19916124d8565b01905f5b82811061260157505050565b60209060405161261081612432565b5f81525f838201525f60408201525f60608201525f6080820152828285010152016125f5565b90816020910312610c8d57516001600160a01b0381168103610c8d5790565b959293879592946001600160a01b036101009996818095168a5216602089015260408801521660608601526080850152600160a085015260e060c08501528160e0850152848401375f828201840152601f01601f1916010190565b92919267ffffffffffffffff821161244e57604051916126da601f8201601f1916602001846124b6565b829481845281830111610c8d578281602093845f960137010152565b90816020910312610c8d57518015158103610c8d5790565b81810292918115918404141715611e9d57565b90916001600160a01b035f5416803b15610c8d5760405163c898a6e960e01b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015611c1d5761277a5750565b5f612784916124b6565b565b9295949190936001600160a01b035f541693843b15610c8d5760205f976001600160a01b0399958a6101a49581988c986040519e8f9d8e9c8d9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528b6101648b0152166064890152608488015260a48701523060c48701521660e48501526101048401526001610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af18015611c1d5761277a5750565b90815f52601960205260405f20905f5260205260405f206001600160601b0360a01b81541690555f526018602052600360405f200180548015611e9d575f19019055565b6001600160a01b035f5416604051630a1ad2d160e21b81526001600160a01b0383166004820152602081602481855afa908115611c1d575f91612991575b506128d857505050565b60405163280e32fb60e01b815290602082600481845afa918215611c1d575f9261296c575b506020600491604051928380926309a69f5760e01b82525afa908115611c1d575f91612938575b50612784936129329161270e565b91612721565b90506020813d602011612964575b81612953602093836124b6565b81010312610c8d5751612784612924565b3d9150612946565b6004919250612989602091823d8411610cce57610cbf81836124b6565b9291506128fd565b6129aa915060203d6020116103a05761039281836124b6565b5f6128ce565b916001600160a01b036040519281602085019560808752600d60a08701526c3234b9b830ba31b427b93232b960991b60c0870152166040850152166060830152608082015260c08152612a0460e0826124b6565b51902090565b8015611902575f52601960205260405f20905f5260205260405f20906001600160a01b038254161561190257565b91838111612a4857505050505f90565b612a559361293291612418565b600190565b949190612a7d612a8d91959495612710612a766005548661270e565b0490612425565b92612710612a766007548561270e565b9260405194612a9d6060876124b6565b6002865260405f5b818110612be1575050612b23612b459594936001600160a01b0393612710938560405191612ad28361249a565b888352166020820152612ae48a612522565b52612aee89612522565b508460405191612afd8361249a565b888352166020820152612b0f89612543565b52612b1988612543565b506006549061270e565b04951694855f52601a602052612b3e60405f20918254612425565b9055612425565b906001600160a01b035f541691823b15610c8d5792906040519384926353d04b7b60e11b8452606484016060600486015283518091526020608486019401905f5b818110612bb357505050835f9593819387936024840152604483015203925af18015611c1d5761277a5750565b8251805187526020908101516001600160a01b03168188015289975060409096019590920191600101612b86565b602090604051612bf08161249a565b5f81525f8382015282828b01015201612aa556fea26469706673582212202ce3de043b14261a3291a1fde70c7d34ff790f6a8b685b6974bf8d1ad45d3f3364736f6c63430008210033",sourceMap:"1901:33735:66:-:0;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;-1:-1:-1;;;;;1901:33735:66;;;-1:-1:-1;;;;;;1901:33735:66;;;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;2887:14;1901:33735;;;;;;;;;;;2942:11;2911:20;1901:33735;2987:3;2963:13;1901:33735;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;3117:4;1901:33735;;;;;3060:4;1901:33735;;3087:4;1901:33735;3019:113;;1901:33735;3019:113;1901:33735;3060:4;3000:132;1901:33735;3087:4;1901:33735;;3117:4;1901:33735;;;;;;;;;;;;;;;-1:-1:-1;1901:33735:66;;;;;-1:-1:-1;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o",linkReferences:{}},deployedBytecode:{object:"0x6080806040526004361015610012575f80fd5b5f905f3560e01c9081630a96865b1461217a575080631128a79a1461213f578063144384281461208f57806316790f8114611f5e57806317857d9d14611efa57806317c8515214611eb15780631ea43a7d14611d905780631f80982114611d7357806321e5383a14611d2357806326415c7114611cd1578063280e32fb14611c6057806328b44b4b14611c285780632e17de7814611baa57806335287eaf14611b6b57806335b2c22c146119e757806354282704146119825780635dc220751461153e5780635e1a3573146114c15780636b6445b61461144f5780636cd30148146113b25780636cdbf9271461136c5780637280ff351461132f57806374efedc9146112f057806376a75a2914610fe9578063775f3f7e146112d25780637b8ad14914611015578063893d20e814610fee5780638eb163d314610fe957806392aa42c914610e37578063952469d014610a385780639610067114610e195780639c34866614610df25780639dc2060714610dd4578063a694fc3a14610a7a578063a936e0d114610a3d578063af5cecc014610a38578063b3d4fd79146109fb578063b54cfef0146105b6578063b5ed298a14610557578063b7ac72ff146104b1578063c721316314610447578063cfb35fd0146103b2578063d0e3692d14610312578063d89ea03c146102c9578063db7ccd631461027b5763ebbc496514610218575f80fd5b346102785780600319360112610278576003546001600160a01b03811680331480159061026d575b610269576001600160601b0360a01b60025416176002556001600160601b0360a01b1660035580f35b8280fd5b506004544211610240565b80fd5b5034610278576040366003190112610278576001600160a01b03604061029f612202565b92826102a9612218565b9416815260176020522091165f52602052602060405f2054604051908152f35b503461027857806003193601126102785760806001600160a01b03601254166013546001600160a01b036014541660155491604051938452602084015260408301526060820152f35b50346102785760403660031901126102785761032c612202565b60206001600160a01b0360448185541693604051948593849263d0e3692d60e01b845216600483015260243560248301525afa9081156103a7576020929161037a575b506040519015158152f35b61039a9150823d84116103a0575b61039281836124b6565b8101906126f6565b5f61036f565b503d610388565b6040513d84823e3d90fd5b5034610278576103c136612288565b916001600160a01b03600254163314801590610429575b6104255782604080516103ea81612462565b8381528460208201520152600855600955600a5562015180420180421161041157600b5580f35b634e487b7160e01b82526011600452602482fd5b8380fd5b506127106104408461043b8585612425565b612425565b14156103d8565b50346102785780600319360112610278576104606125ab565b50506104ad60405161047181612462565b60055481526006546020820152600754604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b0390f35b5034610278576060366003190112610278576104cb612202565b6024356104d661222e565b906001600160a01b03600254163314801590610539575b610425576001600160a01b038093166001600160601b0360a01b6012541617601255601355166001600160601b0360a01b60145416176014556201518042018042116104115760155580f35b506001600160a01b0383168452601a602052604084205481116104ed565b503461027857602036600319011261027857610571612202565b6001600160a01b036002541633036105b2576001600160a01b03166001600160601b0360a01b60035416176003556201518042018042116104115760045580f35b5080fd5b503461027857806105c636612300565b93899f9b9e9891958f9397949d8c9f9b819d8c546001600160a01b031696604051936020850160a0905260c085016009905260e085016836b0b5b2a7b93232b960b91b90526001600160a01b031660408501526001600160a01b03166060840152608083015260a082015260e08152610641610100826124b6565b8051906020012094843b156109f7578b61067a8f96948c98969488946040519a8b998a988997637d3d171560e11b895260048901612655565b03925af180156109ec579089916109d3575b50506106a993929161069f9136916126b0565b91888a8888612786565b6001600160a01b03831684526017602052604084206001600160a01b0388165f5260205260405f20549687156108fc575b508684526018602052600260408520015487855260186020526003604086200154145f146108595750600260249787855260186020528160408620016107208154612514565b905587855260186020526003604086200161073b8154612514565b9055878552601860205281604086200154965b6001600160a01b036040519461076386612462565b16845260208401908152604084019182528886526019602052604086208887526020526001600160a01b038060408820955116166001600160601b0360a01b8554161784555160018401555191015560206001600160a01b0383541660405197888092630a1ad2d160e21b82523360048301525afa80156103a757604096839161083a575b5061081c575b5050156108105761080460ff60035b1633612890565b82519182526020820152f35b61080460ff60026107fd565b8280610829575b506107ee565b6108339133612721565b5f82610823565b610853915060203d6020116103a05761039281836124b6565b5f6107e8565b9660015b87855260186020526002604086200154600181018091116108e85781116108db578785526019602052604085208186526020526001600160a01b03604086205416156108b1576108ac90612514565b61085d565b6024985090600291965b8886526018602052600360408720016108d48154612514565b905561074e565b50600290602498966108bb565b634e487b7160e01b86526011600452602486fd5b90965061090a601654612514565b806016556001600160a01b03841685526017602052604085206001600160a01b0383165f5260205260405f20556003604051916109468361247e565b6001600160a01b03851683526001600160a01b036020840191168152604083018681526001600160a01b03606085019288845260165489526018602052818060408b20975116166001600160601b0360a01b87541617865551166001600160a01b036001860191166001600160601b0360a01b82541617905551600284015551910155601654955f6106da565b816109dd916124b6565b6109e857875f61068c565b8780fd5b6040513d8b823e3d90fd5b8d80fd5b5034610278576020366003190112610278576001600160a01b0360025416330361027857600435600d5562015180420180421161041157600e5580f35b6123cf565b50346102785780600319360112610278576001600160a01b03600254163314801590610a6f575b6102785780600d5580f35b50600e544211610a64565b503461027857602036600319011261027857806004356001600160a01b03600254163314801590610d4b575b610c40576001600160a01b0360015416803b15610d47578280916024604051809481936399b4c3ef60e01b83528760048401525af1908115610d3c578391610d27575b50506001600160a01b0360015416604051630412d6ed60e31b8152602081600481855afa8015610d1c576001600160a01b03918591610cfd575b501660405192630412d6ed60e31b8452602084600481865afa938415610cd5576001600160a01b03946020918791610ce0575b5060046040518097819363280e32fb60e01b8352165afa938415610cd5578594610ca4575b50604051631961201760e31b8152602081600481875afa908115610c99578691610c5c575b5090610bab9161270e565b90803b15610c585760405163c898a6e960e01b81526001600160a01b039384166004820152939092166024840152604483015282908290606490829084905af180156103a757610c43575b506001600160a01b0360015416803b15610c405781809160046040518094819363c9d2beb160e01b83525af180156103a757610c2f5750f35b81610c39916124b6565b6102785780f35b50fd5b81610c4d916124b6565b61027857805f610bf6565b8480fd5b919550506020813d602011610c91575b81610c79602093836124b6565b81010312610c8d5751859490610bab610ba0565b5f80fd5b3d9150610c6c565b6040513d88823e3d90fd5b610cc791945060203d602011610cce575b610cbf81836124b6565b810190612636565b925f610b7b565b503d610cb5565b6040513d87823e3d90fd5b610cf79150823d8411610cce57610cbf81836124b6565b5f610b56565b610d16915060203d602011610cce57610cbf81836124b6565b5f610b23565b6040513d86823e3d90fd5b81610d31916124b6565b610c4057815f610ae9565b6040513d85823e3d90fd5b5050fd5b50600460206001600160a01b036001541660405192838092631961201760e31b82525afa908115610d3c578391610d9c575b50610d88908261270e565b60018352601a602052604083205410610aa6565b9250506020823d602011610dcc575b81610db8602093836124b6565b81010312610c8d57610d8883925190610d7d565b3d9150610dab565b50346102785780600319360112610278576020601054604051908152f35b503461027857806003193601126102785760206001600160a01b0360035416604051908152f35b50346102785780600319360112610278576020600c54604051908152f35b50346102785780610e4736612300565b969a959194929b97998e94919a819e9a9f6001600160a01b03610e6e91541692898c6129b0565b92823b15610fe5578b610e9f8f979289979388946040519a8b998a988997637d3d171560e11b895260048901612655565b03925af180156103a757610fcc575b50506001600160a01b0384168b52601760205260408b206001600160a01b0383165f5260205260405f205497610ee48a8a612a0a565b928c60028501998a5491508d610f0a612710610f02600c548661270e565b048094612425565b809110610f87578e610f789f8b610f5b98610f4595610f639f610f3e948a60019f8d93610f389136916126b0565b95612786565b848b612a38565b9954906001600160a01b03865416913393612a5a565b015491612721565b15610f7b57610f73600533612890565b61284c565b80f35b610f7360ff60046107fd565b60405162461bcd60e51b815260206004820152601f60248201527f496e737566696369656e7420616d6f756e744f66546f6b656e546f46696c6c006044820152606490fd5b81610fd6916124b6565b610fe1578a5f610eae565b8a80fd5b8680fd5b6122a2565b503461027857806003193601126102785760206001600160a01b0360025416604051908152f35b5034610278576101a036600319011261027857611030612202565b611038612218565b61104061222e565b6064359260843592611050612244565b9160c435916001600160a01b03831683036109e8576101043567ffffffffffffffff81116112ce5761108690369060040161225a565b969094610124358a610164359967ffffffffffffffff8b116105b2576110b18c9b369060040161225a565b9490998b6110cf610184359f6001600160a01b03875416928b6129b0565b813b156112ca578580946111018d978f96604051998a9889978896637d3d171560e11b885260e4359360048901612655565b03925af180156103a7576112b5575b50506001600160a01b0384168b52601760205260408b206001600160a01b0389165f5260205260405f2054976111468a8a612a0a565b9360028501988d8d8b54918091612710611162600c548661270e565b04111561128f5750508d6103e88102908082046103e8149015171561127a576127109004969594939291906111ab8f5b6111a58a6111a08386612425565b612418565b92612425565b908310611236578f9e610f789f6111f760019a8f610f639f8f8a906111ea928d610f5b9f6111df610f459d8f9236916126b0565b946101443594612786565b5492506111a08484612425565b6112018383612425565b90861015908161122c575b50156112255761121d915084612418565b92848b612a38565b5092610f3e565b905085105f61120c565b606460405162461bcd60e51b815260206004820152602060248201527f496e737566696369656e7420616d6f756e744f66546f6b656e42546f46696c6c6044820152fd5b50634e487b7160e01b8f52601160045260248ffd5b6111ab9f50979695949392919097506127106112ad600c548361270e565b049e8f611192565b816112bf916124b6565b610fe1578a5f611110565b8580fd5b8880fd5b50346102785780600319360112610278576020600454604051908152f35b50346102785780600319360112610278576001600160a01b03600254163314801590611324575b61027857601054600f5580f35b506011544211611317565b5034610278576020366003190112610278576001600160a01b03600254163303610278576004356010556201518042018042116104115760115580f35b50346102785761137b36612288565b916001600160a01b036002541633036104255761271061139f8461043b8585612425565b036104255782604080516103ea81612462565b5034610278576020366003190112610278576113cc612202565b9060206001600160a01b03602481845416946040519586938492630d9a602960e31b84521660048301525afa9081156114435790611410575b602090604051908152f35b506020813d60201161143b575b8161142a602093836124b6565b81010312610c8d5760209051611405565b3d915061141d565b604051903d90823e3d90fd5b50346102785760203660031901126102785761148260406080926114716124f0565b506004358152601860205220612567565b6114bf6040518092606080916001600160a01b0381511684526001600160a01b036020820151166020850152604081015160408501520151910152565bf35b50346102785760403660031901126102785760406060916114e06125ab565b506004358152601960205281812060243582526020522060405161150381612462565b6001600160a01b0382541691828252604060026001830154926020850193845201549201918252604051928352516020830152516040820152f35b50346102785761016036600319011261027857611559612202565b611561612218565b9061156a61222e565b90606435608435936001600160a01b03851685036112ca5761158a612244565b9060e43567ffffffffffffffff81116109e8576115ab90369060040161225a565b90956101043596896101443567ffffffffffffffff81116105b2576115d490369060040161225a565b94909a6001600160a01b0383541693604051946020860160808152600b60a08801526a31b0b731b2b627b93232b960a91b60c08801526001600160a01b038a16968760408201526001600160a01b03891660608201528c608082015260c0815261163f60e0826124b6565b519020813b156112ca578580946116748f978e96604051998a9889978896637d3d171560e11b885260c4359360048901612655565b03925af180156103a757611969575b505260176020526001600160a01b0360408a2091165f5260205260405f20549283158015611937575b61190257889187151598896117c3575b50505093610f7391836116e79652601960205260408920858a52602052600160408a20015491612721565b6001600160a01b0383541690604051630a1ad2d160e21b8152336004820152602081602481865afa908115610cd55785916117a4575b508061179d575b611747575b50501561173b57610f78600333612890565b610f7860ff60026107fd565b60206004926040519384809263280e32fb60e01b82525afa8015610d1c5761177792859161177e575b5033612721565b5f80611729565b611797915060203d602011610cce57610cbf81836124b6565b5f611770565b5082611724565b6117bd915060203d6020116103a05761039281836124b6565b5f61171d565b60049060206001600160a01b038654166040519384809263280e32fb60e01b82525afa918215610cd55785926118df575b50611801919236916126b0565b906001600160a01b03845416803b15610c58576001600160a01b03856101a48b602083978f869a87916040519c8d9b8c9a8b9863487e5a7760e11b8a5216600489015230602489015261016060448901528961016489015216606487015287608487015260a48601523060c48601521660e4840152610124356101048401526001610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af180156103a7576118ca575b80806116bc565b816118d4916124b6565b610fe557865f6118c3565b61180192506118fc9060203d602011610cce57610cbf81836124b6565b916117f4565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037b93232b960991b6044820152606490fd5b50838952601960205260408920858a526020526001600160a01b0360408a2054166001600160a01b03871614156116ac565b81611973916124b6565b61197e57895f611683565b8980fd5b50346102785780600319360112610278576001600160a01b036002541633148015906119dc575b610278576001600160601b0360a01b60125416601255806013556001600160601b0360a01b601454166014558060155580f35b5060155442116119a9565b503461027857604036600319011261027857611a01612202565b6024358083526018602052600260408420015460018101809111611b5757611a28906125c9565b906001600160a01b0360019316925b81855260186020526002604086200154600181018091116108e8578111611b4957818552601960205260408520818652602052836001600160a01b0360408720541614611a8d575b611a8890612514565b611a37565b8185526019602052604085208186526020526001600160a01b03604086205416828652601960205260408620828752602052600160408720015483875260196020526040872083885260205260026040882001549060405192611aef84612432565b8584528460208501526040840152606083015260808201525f19820190828211611b355781611b2d91611b26611a88959488612553565b5285612553565b509050611a7f565b634e487b7160e01b87526011600452602487fd5b604051806104ad8582612194565b634e487b7160e01b84526011600452602484fd5b50346102785780600319360112610278576001600160a01b03600254163314801590611b9f575b61027857600d54600c5580f35b50600e544211611b92565b5034610c8d576020366003190112610c8d576001600160a01b03600254163303610c8d576001600160a01b0360015416803b15610c8d575f80916024604051809481936320a719f560e21b835260043560048401525af18015611c1d57611c0f575080f35b611c1b91505f906124b6565b005b6040513d5f823e3d90fd5b34610c8d576020366003190112610c8d576001600160a01b03611c49612202565b165f52601a602052602060405f2054604051908152f35b34610c8d575f366003190112610c8d57600460206001600160a01b035f54166040519283809263280e32fb60e01b82525afa8015611c1d576020915f91611cb4575b506001600160a01b0360405191168152f35b611ccb9150823d8411610cce57610cbf81836124b6565b82611ca2565b34610c8d575f366003190112610c8d576003546001600160a01b0381163314801590611d18575b610c8d5773ffffffffffffffffffffffffffffffffffffffff1916600355005b506004544211611cf8565b34610c8d576040366003190112610c8d57611d3c612202565b6001600160a01b03600254163303610c8d576001600160a01b03165f52601a60205260405f20611d6f6024358254612425565b9055005b34610c8d575f366003190112610c8d576020600f54604051908152f35b34610c8d576020366003190112610c8d57600435805f526018602052600260405f20015460018101809111611e9d57611dc8906125c9565b9060015b815f526018602052600260405f20015460018101809111611e9d578111611b4957815f52601960205260405f20815f526020526001600160a01b0360405f205416611e20575b611e1b90612514565b611dcc565b5f82815260196020908152604080832084845290915290819020805460018201546002909201549251939291906001600160a01b0316611e5f85612432565b8585528360208601526040850152606084015260808301525f19810191818311611e9d5782611e9591611b26611e1b9588612553565b509050611e12565b634e487b7160e01b5f52601160045260245ffd5b34610c8d575f366003190112610c8d57600460206001600160a01b035f541660405192838092630be428a960e11b82525afa8015611c1d575f9061141057602090604051908152f35b34610c8d575f366003190112610c8d57611f126125ab565b506104ad604051611f2281612462565b60085481526009546020820152600a54604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b34610c8d575f366003190112610c8d576016546001810190818111611e9d57611f86826124d8565b91611f9460405193846124b6565b808352611fa3601f19916124d8565b015f5b81811061207857505060015b8181111561203a57826040518091602082016020835281518091526020604084019201905f5b818110611fe6575050500390f35b91935091602060808261202c6001948851606080916001600160a01b0381511684526001600160a01b036020820151166020850152604081015160408501520151910152565b019401910191849392611fd8565b805f52601860205260405f20905f19810191818311611e9d576120739261206361206d92612567565b611b268288612553565b50612514565b611fb2565b6020906120836124f0565b82828701015201611fa6565b34610c8d575f366003190112610c8d576001600160a01b03600254163314801590612134575b610c8d576120dd6001600160a01b03601454166001600160a01b036012541660135491612721565b6013546001600160a01b03601254165f52601a60205261210260405f20918254612418565b90556001600160601b0360a01b601254166012555f6013556001600160601b0360a01b601454166014555f6015555f80f35b5060155442116120b5565b34610c8d575f366003190112610c8d576001600160a01b0360025416331480159061216f575b610c8d575f601055005b506011544211612165565b34610c8d575f366003190112610c8d57602090600d548152f35b60206040818301928281528451809452019201905f5b8181106121b75750505090565b909192602060a0600192608087518051835284810151858401526001600160a01b036040820151166040840152606081015160608401520151608082015201940191019190916121aa565b600435906001600160a01b0382168203610c8d57565b602435906001600160a01b0382168203610c8d57565b604435906001600160a01b0382168203610c8d57565b60a435906001600160a01b0382168203610c8d57565b9181601f84011215610c8d5782359167ffffffffffffffff8311610c8d5760208381860195010111610c8d57565b6060906003190112610c8d57600435906024359060443590565b34610c8d575f366003190112610c8d576001600160a01b036002541633148015906122f5575b610c8d575f604080516122da81612462565b82815282602082015201525f6008555f6009555f600a555f80f35b50600b5442116122c8565b610180600319820112610c8d576004356001600160a01b0381168103610c8d57916024356001600160a01b0381168103610c8d57916044356001600160a01b0381168103610c8d5791606435916084359160a4356001600160a01b0381168103610c8d579160c4356001600160a01b0381168103610c8d579160e435916101043567ffffffffffffffff8111610c8d578161239d9160040161225a565b9290929161012435916101443591610164359067ffffffffffffffff8211610c8d576123cb9160040161225a565b9091565b34610c8d575f366003190112610c8d576001600160a01b0360025416331480159061240d575b610c8d57600854600555600954600655600a54600755005b50600b5442116123f5565b91908203918211611e9d57565b91908201809211611e9d57565b60a0810190811067ffffffffffffffff82111761244e57604052565b634e487b7160e01b5f52604160045260245ffd5b6060810190811067ffffffffffffffff82111761244e57604052565b6080810190811067ffffffffffffffff82111761244e57604052565b6040810190811067ffffffffffffffff82111761244e57604052565b90601f8019910116810190811067ffffffffffffffff82111761244e57604052565b67ffffffffffffffff811161244e5760051b60200190565b604051906124fd8261247e565b5f6060838281528260208201528260408201520152565b5f198114611e9d5760010190565b80511561252f5760200190565b634e487b7160e01b5f52603260045260245ffd5b80516001101561252f5760400190565b805182101561252f5760209160051b010190565b906040516125748161247e565b6060600382946001600160a01b0381541684526001600160a01b036001820154166020850152600281015460408501520154910152565b604051906125b882612462565b5f6040838281528260208201520152565b906125d3826124d8565b6125e060405191826124b6565b82815280926125f1601f19916124d8565b01905f5b82811061260157505050565b60209060405161261081612432565b5f81525f838201525f60408201525f60608201525f6080820152828285010152016125f5565b90816020910312610c8d57516001600160a01b0381168103610c8d5790565b959293879592946001600160a01b036101009996818095168a5216602089015260408801521660608601526080850152600160a085015260e060c08501528160e0850152848401375f828201840152601f01601f1916010190565b92919267ffffffffffffffff821161244e57604051916126da601f8201601f1916602001846124b6565b829481845281830111610c8d578281602093845f960137010152565b90816020910312610c8d57518015158103610c8d5790565b81810292918115918404141715611e9d57565b90916001600160a01b035f5416803b15610c8d5760405163c898a6e960e01b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015611c1d5761277a5750565b5f612784916124b6565b565b9295949190936001600160a01b035f541693843b15610c8d5760205f976001600160a01b0399958a6101a49581988c986040519e8f9d8e9c8d9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528b6101648b0152166064890152608488015260a48701523060c48701521660e48501526101048401526001610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af18015611c1d5761277a5750565b90815f52601960205260405f20905f5260205260405f206001600160601b0360a01b81541690555f526018602052600360405f200180548015611e9d575f19019055565b6001600160a01b035f5416604051630a1ad2d160e21b81526001600160a01b0383166004820152602081602481855afa908115611c1d575f91612991575b506128d857505050565b60405163280e32fb60e01b815290602082600481845afa918215611c1d575f9261296c575b506020600491604051928380926309a69f5760e01b82525afa908115611c1d575f91612938575b50612784936129329161270e565b91612721565b90506020813d602011612964575b81612953602093836124b6565b81010312610c8d5751612784612924565b3d9150612946565b6004919250612989602091823d8411610cce57610cbf81836124b6565b9291506128fd565b6129aa915060203d6020116103a05761039281836124b6565b5f6128ce565b916001600160a01b036040519281602085019560808752600d60a08701526c3234b9b830ba31b427b93232b960991b60c0870152166040850152166060830152608082015260c08152612a0460e0826124b6565b51902090565b8015611902575f52601960205260405f20905f5260205260405f20906001600160a01b038254161561190257565b91838111612a4857505050505f90565b612a559361293291612418565b600190565b949190612a7d612a8d91959495612710612a766005548661270e565b0490612425565b92612710612a766007548561270e565b9260405194612a9d6060876124b6565b6002865260405f5b818110612be1575050612b23612b459594936001600160a01b0393612710938560405191612ad28361249a565b888352166020820152612ae48a612522565b52612aee89612522565b508460405191612afd8361249a565b888352166020820152612b0f89612543565b52612b1988612543565b506006549061270e565b04951694855f52601a602052612b3e60405f20918254612425565b9055612425565b906001600160a01b035f541691823b15610c8d5792906040519384926353d04b7b60e11b8452606484016060600486015283518091526020608486019401905f5b818110612bb357505050835f9593819387936024840152604483015203925af18015611c1d5761277a5750565b8251805187526020908101516001600160a01b03168188015289975060409096019590920191600101612b86565b602090604051612bf08161249a565b5f81525f8382015282828b01015201612aa556fea26469706673582212202ce3de043b14261a3291a1fde70c7d34ff790f6a8b685b6974bf8d1ad45d3f3364736f6c63430008210033",sourceMap:"1901:33735:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1568:16:78;1901:33735:66;1568:16:78;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;1878:31:78;1901:33735:66;1878:31:78;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25466:14;1901:33735;-1:-1:-1;;;;;1901:33735:66;;25452:10;;:28;;;:68;;;1901:33735;25435:129;;-1:-1:-1;;;;;1901:33735:66;;25573:22;1901:33735;;;25573:22;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;25466:14;1901:33735;;;25435:129;25545:8;;;25452:68;1901:33735;;;25484:15;:36;25452:68;;1901:33735;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;;:::i;:::-;;;;;:::i;:::-;;;;;33510:8;1901:33735;;;33510:24;1901:33735;-1:-1:-1;1901:33735:66;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;35509:15:66;1901:33735;;35538:16;1901:33735;-1:-1:-1;;;;;35568:19:66;1901:33735;;35601:16;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;-1:-1:-1;;;;;4999:37:98;1901:33735:66;;;;;;;;;;;;;;;4999:37:98;;1901:33735:66;;4999:37:98;;1901:33735:66;;;;;;;4999:37:98;;;;;;;1901:33735:66;4999:37:98;;;;1901:33735:66;;;;;;;;;;4999:37:98;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1901:33735:66;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;26886:5:66;1901:33735;;26872:10;:19;;;:65;;;1901:33735;26868:104;;1901:33735;;;;;;;:::i;:::-;;;;27009:96;;;;1901:33735;27009:96;1901:33735;26981:124;1901:33735;;;;;27174:6;27156:15;1901:33735;27156:15;;1901:33735;;;27115:65;1901:33735;;;;-1:-1:-1;;;1901:33735:66;;;;;;;;26868:104;26953:8;;;26872:65;26895:18;26931:6;26895:32;:18;;;;;:::i;:::-;:32;:::i;:::-;:42;;26872:65;;1901:33735;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;34839:16;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;;;;;29534:5:66;1901:33735;;29520:10;:19;;;:91;;;1901:33735;29503:152;;-1:-1:-1;;;;;1901:33735:66;;;-1:-1:-1;;;;;1901:33735:66;;29664:34;1901:33735;;;29664:34;1901:33735;29708:36;1901:33735;;-1:-1:-1;;;;;1901:33735:66;;29754:25;1901:33735;;;29754:25;1901:33735;29826:6;29808:15;1901:33735;29808:15;;1901:33735;;;29789:43;1901:33735;;;29520:91;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;;29575:18;1901:33735;;;;;;29555:56;;29520:91;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;-1:-1:-1;;;;;25026:5:66;1901:33735;;25012:10;:19;25008:58;;-1:-1:-1;;;;;1901:33735:66;-1:-1:-1;;;;;1901:33735:66;;25075:23;1901:33735;;;25075:23;1901:33735;25147:6;25129:15;1901:33735;25129:15;;1901:33735;;;;;;;25008:58;25047:8;1901:33735;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4487:15;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;;1072:57:102;;;;1901:33735:66;;;;;;;;;;;;-1:-1:-1;;;1901:33735:66;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;1072:57:102;;;;;;:::i;:::-;1901:33735:66;;1072:57:102;;;1045:98;4514:245:66;;;;;;1901:33735;4514:245;1901:33735;;;;;;;;;;;;;;;;;;;;;4514:245;;1901:33735;4514:245;;;:::i;:::-;;;;;;;;;;;;;;1901:33735;;;4770:201;1901:33735;;;;;;;;:::i;:::-;4770:201;;;;;;:::i;:::-;-1:-1:-1;;;;;1901:33735:66;;;;33510:8;1072:57:102;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;5031:11;;;5027:79;;1901:33735;;;;;5133:14;1072:57:102;1901:33735:66;5133:30;1901:33735;;;5133:30;1901:33735;;;;5133:14;1072:57:102;1901:33735:66;5179:38;1901:33735;;;5179:38;1901:33735;5133:84;5116:594;5179:38;;;1901:33735;5133:30;5856:32;1901:33735;;;;5133:14;1072:57:102;1901:33735:66;;;;;5242:30;:32;1901:33735;;5242:32;:::i;:::-;1901:33735;;;;;5133:14;1072:57:102;1901:33735:66;5179:38;1901:33735;;;5288:38;:40;1901:33735;;5288:40;:::i;:::-;1901:33735;;;;;5133:14;1072:57:102;1901:33735:66;;;;;5352:30;1901:33735;5116:594;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::i;:::-;;;;1072:57:102;5758:83:66;;1901:33735;;;;5758:83;;1901:33735;;;;;;5720:18;1072:57:102;1901:33735:66;;;;;;;1072:57:102;1901:33735:66;-1:-1:-1;;;;;1901:33735:66;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;4722:4;1901:33735;;;;;;;1072:57:102;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;5856:32;;5877:10;1901:33735;5856:32;;1901:33735;5856:32;;;;;;1901:33735;5856:32;;;;;5116:594;5852:217;;;5116:594;-1:-1:-1;;6213:18:66;;;6185:55;1901:33735;5179:38;6213:26;1901:33735;5877:10;6185:55;:::i;:::-;1901:33735;;;;;1072:57:102;1901:33735:66;;;;6213:26;6185:55;1901:33735;5133:30;6213:26;;5852:217;5908:18;;5904:155;;5852:217;;;;5904:155;6029:14;5877:10;;6029:14;:::i;:::-;5904:155;;;;5856:32;;;;1072:57:102;5856:32:66;1072:57:102;5856:32:66;;;;;;;:::i;:::-;;;;5116:594;5418:13;4722:4;5474:3;1901:33735;;;5133:14;1072:57:102;1901:33735:66;5133:30;1901:33735;;;5438:30;1901:33735;4722:4;1901:33735;;;;;;;5433:39;;;;1901:33735;;;5501:18;1072:57:102;1901:33735:66;;;;;;;1072:57:102;1901:33735:66;-1:-1:-1;;;;;1901:33735:66;;;;;5501:50;5497:135;;5474:3;;;:::i;:::-;5418:13;;5497:135;5856:32;5575:11;;;5133:30;5575:11;5608:5;5413:233;1901:33735;;;5133:14;1072:57:102;1901:33735:66;5179:38;1901:33735;;;5659:38;:40;1901:33735;;5659:40;:::i;:::-;1901:33735;;5116:594;;5433:39;;5133:30;5433:39;5856:32;5433:39;;;;1901:33735;-1:-1:-1;;;1901:33735:66;;;;;;;;5027:79;1901:33735;;;24196:13;;1901:33735;24196:13;:::i;:::-;1901:33735;24196:13;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;;33510:8;1072:57:102;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1901:33735:66;;;;-1:-1:-1;;;;;1072:57:102;24297:105:66;;1901:33735;;;;;24297:105;;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;24297:105;;1901:33735;;;;24196:13;1901:33735;;;24267:14;1072:57:102;1901:33735:66;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;-1:-1:-1;;;;;4722:4:66;1901:33735;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;24196:13;1901:33735;5027:79;;;;4514:245;;;;;:::i;:::-;1901:33735;;4514:245;;;;1901:33735;;;;4514:245;1901:33735;;;;;;;;;4514:245;1901:33735;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;27862:5:66;1901:33735;;27848:10;:19;27844:58;;1901:33735;;27911:22;1901:33735;28007:6;27989:15;1901:33735;27989:15;;1901:33735;;;27960:26;1901:33735;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;28114:5:66;1901:33735;;28100:10;:19;;;:67;;;1901:33735;28083:128;;1901:33735;28220:22;1901:33735;;;28100:67;1901:33735;28141:26;1901:33735;28123:15;:44;28100:67;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;;-1:-1:-1;;;;;30664:5:66;1901:33735;;30650:10;:19;;;:145;;;1901:33735;30633:181;;-1:-1:-1;;;;;1901:33735:66;;;1374:44:99;;;;;1901:33735:66;;;1374:44:99;1901:33735:66;;;;;;;;;1374:44:99;;;1901:33735:66;1374:44:99;;1901:33735:66;1374:44:99;;;;;;;;;;;1901:33735:66;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;1434:24:99;;1901:33735:66;1434:24:99;1901:33735:66;1434:24:99;;;;;;;;-1:-1:-1;;;;;1434:24:99;;;;;1901:33735:66;;;;;;;;;1515:24:99;;1901:33735:66;1515:24:99;1901:33735:66;1515:24:99;;;;;;;;;-1:-1:-1;;;;;1515:24:99;1901:33735:66;1515:24:99;;;;;1901:33735:66;;;;;;;;;;;;1509:58:99;;1901:33735:66;1509:58:99;;;;;;;;;;;1901:33735:66;-1:-1:-1;1901:33735:66;;-1:-1:-1;;;1581:24:99;;1901:33735:66;;;;1581:24:99;;;;;;;;;;;;1901:33735:66;1581:40:99;;;;;:::i;:::-;1428:203;;;;;;1901:33735:66;;-1:-1:-1;;;1428:203:99;;-1:-1:-1;;;;;1901:33735:66;;;;1428:203:99;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;1428:203:99;;;;;;;;1901:33735:66;;-1:-1:-1;;;;;1901:33735:66;;;1641:31:99;;;;;1901:33735:66;;;;;;;;;;;;;1641:31:99;;;;;;;;;;1901:33735:66;;1641:31:99;;;;;:::i;:::-;1901:33735:66;;1641:31:99;1901:33735:66;1641:31:99;1901:33735:66;;1428:203:99;;;;;:::i;:::-;1901:33735:66;;1428:203:99;;;;;1901:33735:66;;;1581:24:99;;;;;1901:33735:66;1581:24:99;;1901:33735:66;1581:24:99;;;;;;1901:33735:66;1581:24:99;;;:::i;:::-;;;1901:33735:66;;;;;;;;1581:40:99;:24;;1901:33735:66;-1:-1:-1;1901:33735:66;;1581:24:99;;;-1:-1:-1;1581:24:99;;;1901:33735:66;;;;;;;;;1509:58:99;;;;;1901:33735:66;1509:58:99;1901:33735:66;1509:58:99;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1901:33735:66;;;;;;;;;1515:24:99;;;;;;;;;;;;;;:::i;:::-;;;;1434;;;;1901:33735:66;1434:24:99;1901:33735:66;1434:24:99;;;;;;;:::i;:::-;;;;;1901:33735:66;;;;;;;;;1374:44:99;;;;;:::i;:::-;1901:33735:66;;1374:44:99;;;;;1901:33735:66;;;;;;;;;1374:44:99;1901:33735:66;30806:8;;30650:145;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;30694:24;;;;;;;;;;;;;30650:145;30685:33;;;;;:::i;:::-;1901:33735;;;30733:18;1901:33735;;;;;;-1:-1:-1;30650:145:66;;30694:24;;;;1901:33735;30694:24;;1901:33735;30694:24;;;;;;1901:33735;30694:24;;;:::i;:::-;;;1901:33735;;;;30685:33;1901:33735;;;30694:24;;;;;;-1:-1:-1;30694:24:66;;1901:33735;;;;;;;;;;;;;;35191:29;1901:33735;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34315:14:66;1901:33735;;;;;;;;;;;;;;;;;;;;;;35065:13;1901:33735;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11927:54:66;1901:33735;;;11927:54;;;;:::i;:::-;11839:240;;;;;;1901:33735;11839:240;1901:33735;;;;;;;;;;;;;;;;;;;;11839:240;;1901:33735;11839:240;;;:::i;:::-;;;;;;;;;;;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;;33510:8;1901:33735;;;;;-1:-1:-1;;;;;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;12174:40;;;;;:::i;:::-;12267:13;;;;;1901:33735;;;12239:42;1901:33735;;12316:19;18461:6;18427:30;18436:13;1901:33735;18427:30;;:::i;:::-;1901:33735;12316:19;;;:::i;:::-;12350:37;;;12346:109;;1901:33735;13353:7;1901:33735;;13144:14;1901:33735;12798:134;1901:33735;13236:13;1901:33735;12465:214;1901:33735;;12042:4;1901:33735;;;;;;;;:::i;:::-;12465:214;;:::i;:::-;12798:134;;;:::i;:::-;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;13120:10;;13144:14;;:::i;:::-;13236:13;1901:33735;13236:13;;:::i;:::-;13289:17;;;13261:46;13301:1;13120:10;13261:46;:::i;:::-;13353:7;:::i;:::-;1901:33735;;13289:17;13261:46;1901:33735;;13289:17;;12346:109;1901:33735;;-1:-1:-1;;;12403:41:66;;1901:33735;;12403:41;;1901:33735;;;;;;;;;;;12403:41;;;11839:240;;;;;:::i;:::-;1901:33735;;11839:240;;;;1901:33735;;;;11839:240;1901:33735;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;34411:5:66;1901:33735;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;16577:54;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;16577:54;;;:::i;:::-;16489:240;;;;;1901:33735;;;16489:240;1901:33735;;;;;;;;;;;;;;;;16489:240;;1901:33735;;16489:240;1901:33735;16489:240;;;:::i;:::-;;;;;;;;;;;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;;33510:8;1901:33735;;;;;-1:-1:-1;;;;;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;16824:40;;;;;:::i;:::-;16941:13;;;;1901:33735;;;;;16906:87;18610:13;18639:35;18461:6;18427:30;18436:13;1901:33735;18427:30;;:::i;:::-;1901:33735;18639:53;;;;18708:21;;;18758:4;1901:33735;;;;;;18758:4;1901:33735;;;;;;;18461:6;1901:33735;;;;;;;;;17086:19;1901:33735;18635:220;17026:27;:19;;;;;:::i;:::-;:27;:::i;:::-;17086:19;;:::i;:::-;17120:34;;;17116:107;;1901:33735;;18246:7;1901:33735;19392:25;1901:33735;;;18129:13;1901:33735;;;;17233:214;1901:33735;;18070:14;1901:33735;;17721:132;1901:33735;;;;;;:::i;:::-;;;;17233:214;;:::i;:::-;1901:33735;17477:125;19392:17;;;;;:::i;:25::-;19450:17;;;;:::i;:::-;19482:25;;;;:54;;;;18635:220;-1:-1:-1;19478:165:66;;;19563:24;;;;;:::i;:::-;19478:165;17721:132;;;:::i;19478:165::-;19618:14;19478:165;;;19482:54;19511:25;;;;19482:54;;;17116:107;1901:33735;;;21220:23;;;17170:42;;1901:33735;;17170:42;;1901:33735;;;;;;;;;;;17170:42;1901:33735;-1:-1:-1;;;;1901:33735:66;;;;;;;;18635:220;17086:19;18809:35;;;;;;;;;;;1901:33735;18461:6;18427:30;18436:13;1901:33735;18427:30;;:::i;:::-;1901:33735;18635:220;;;;16489:240;;;;;:::i;:::-;1901:33735;;16489:240;;;;;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29163:5:66;1901:33735;;29149:10;:19;;;:86;;;1901:33735;29132:147;;29319:29;1901:33735;29319:20;1901:33735;;;29149:86;1901:33735;29202:33;1901:33735;29184:15;:51;29149:86;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;28624:5:66;1901:33735;;28610:10;:19;28606:58;;1901:33735;;28673:29;1901:33735;28790:6;28772:15;1901:33735;28772:15;;1901:33735;;;28736:33;1901:33735;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;25804:5:66;1901:33735;;25790:10;:19;25786:58;;25893:6;25857:32;:18;;;;;:::i;:32::-;:42;25853:81;;1901:33735;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4497:34:98;1901:33735:66;;;;;;;;;;;;;;;4497:34:98;;1901:33735:66;;4497:34:98;;1901:33735:66;4497:34:98;;;;;;;;;;1901:33735:66;;;;;;;;;4497:34:98;;1901:33735:66;4497:34:98;;1901:33735:66;4497:34:98;;;;;;1901:33735:66;4497:34:98;;;:::i;:::-;;;1901:33735:66;;;;;;;4497:34:98;;;;;-1:-1:-1;4497:34:98;;;1901:33735:66;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;;;;;:::i;:::-;;;;;;33676:14;1901:33735;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;;;;:::i;:::-;;;;;;32562:18;1901:33735;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;1669:50:102;1901:33735:66;1669:50:102;;1901:33735:66;;;;;;;;-1:-1:-1;;;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;1669:50:102;;;1901:33735:66;1669:50:102;;:::i;:::-;1901:33735:66;1659:61:102;;8222:238:66;;;;;1901:33735;;;8222:238;1901:33735;;;;;;;;;;;;;;;;8222:238;;1901:33735;;8222:238;1901:33735;8222:238;;;:::i;:::-;;;;;;;;;;;1901:33735;;;33510:8;1901:33735;;-1:-1:-1;;;;;1901:33735:66;;;33510:24;1901:33735;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;21139:11;;;:65;;;;1901:33735;21135:119;;8586:18;;;;;8582:305;;;;1901:33735;;;;;8921:43;1901:33735;;9011:7;1901:33735;;8921:18;1901:33735;;;;;;;;;;;;;;8921:43;1901:33735;8921:43;;:::i;9011:7::-;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;9034:32;;9055:10;1901:33735;9034:32;;1901:33735;;9034:32;1901:33735;9034:32;;;;;;;;;;;;;1901:33735;9034:54;;;;1901:33735;9030:217;;1901:33735;-1:-1:-1;;9284:26:66;;;9256:55;9305:1;9055:10;9256:55;:::i;9284:26::-;9256:55;1901:33735;9309:1;9284:26;;9030:217;1901:33735;;;;;;;;;;;;9159:31;;;;;;;;9208:14;9159:31;;;;;9030:217;9055:10;;9208:14;:::i;:::-;9030:217;;;;9159:31;;;;1901:33735;9159:31;1901:33735;9159:31;;;;;;;:::i;:::-;;;;9034:54;;;;;:32;;;;1901:33735;9034:32;1901:33735;9034:32;;;;;;;:::i;:::-;;;;8582:305;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;8670:31;;;;;;;;;;;;;8582:305;1901:33735;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1901:33735:66;;;1745:265:98;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;1745:265:98;;1901:33735:66;;1745:265:98;;1901:33735:66;1793:4:98;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1793:4:98;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;1745:265:98;;;;;;;;;;;8582:305:66;;;;;1745:265:98;;;;;:::i;:::-;1901:33735:66;;1745:265:98;;;;8670:31:66;1901:33735;8670:31;;;;1901:33735;8670:31;1901:33735;8670:31;;;;;;;:::i;:::-;;;;21135:119;1901:33735;;-1:-1:-1;;;21220:23:66;;1901:33735;;21220:23;;1901:33735;;;;;;-1:-1:-1;;;1901:33735:66;;;;;;21220:23;21139:65;1901:33735;;;;21154:18;1901:33735;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;21154:50;;21139:65;;8222:238;;;;;:::i;:::-;1901:33735;;8222:238;;;;1901:33735;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29917:5:66;1901:33735;;29903:10;:19;;;:57;;;1901:33735;29899:96;;-1:-1:-1;;;;;1901:33735:66;;30004:28;1901:33735;;30004:28;1901:33735;;30042:20;1901:33735;-1:-1:-1;;;;;1901:33735:66;;30072:32;1901:33735;;30072:32;1901:33735;;30114:20;1901:33735;;;29903:57;1901:33735;29944:16;1901:33735;29926:15;:34;29903:57;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;;;;32843:14;1901:33735;;32843:30;1901:33735;;;32843:30;1901:33735;;;;;;;;;32801:86;;;:::i;:::-;32903:13;-1:-1:-1;;;;;1901:33735:66;;;32898:456;32959:3;1901:33735;;;32843:14;1901:33735;;32843:30;1901:33735;;;32923:30;1901:33735;;;;;;;;;32918:39;;;;1901:33735;;;32982:18;1901:33735;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;32982:44;32978:366;;32959:3;;;;:::i;:::-;32903:13;;32978:366;1901:33735;;;32982:18;1901:33735;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;32982:18;1901:33735;;;;;;;;;;;;;;33215:37;1901:33735;;;;32982:18;1901:33735;;;;;;;;;;32843:30;1901:33735;;;33274:37;1901:33735;;;;;;;;:::i;:::-;;;;33062:267;1901:33735;33062:267;;1901:33735;;33062:267;;1901:33735;33062:267;;;1901:33735;33062:267;;;1901:33735;;;;;;;;;;;33046:283;;;;32959:3;33046:283;;;;:::i;:::-;;;;:::i;:::-;;32978:366;;;;1901:33735;-1:-1:-1;;;1901:33735:66;;;;;;;;32918:39;1901:33735;;;;32918:39;1901:33735;;:::i;:::-;-1:-1:-1;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28340:5:66;1901:33735;;28326:10;:19;;;:67;;;1901:33735;28309:128;;28470:22;1901:33735;28470:13;1901:33735;;;28326:67;1901:33735;28367:26;1901:33735;28349:15;:44;28326:67;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;30933:5:66;1901:33735;;30919:10;:19;30915:33;;-1:-1:-1;;;;;1901:33735:66;;;2024:41:99;;;;;1901:33735:66;;;2024:41:99;1901:33735:66;;;;;;;;;2024:41:99;;1901:33735:66;;;2024:41:99;;1901:33735:66;2024:41:99;;;;;;;;1901:33735:66;;;2024:41:99;;;;1901:33735:66;2024:41:99;;:::i;:::-;1901:33735:66;2024:41:99;1901:33735:66;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;:::i;:::-;;;;34200:18;1901:33735;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;1878:31:78;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;1878:31:78;;;;;;;;;;1901:33735:66;1878:31:78;;;1901:33735:66;;-1:-1:-1;;;;;1901:33735:66;;;;;;;1878:31:78;;;;;;;;;;;;;;:::i;:::-;;;;1901:33735:66;;;;;;-1:-1:-1;;1901:33735:66;;;;25246:14;1901:33735;-1:-1:-1;;;;;1901:33735:66;;25232:10;:28;;;:68;;;1901:33735;25215:129;;-1:-1:-1;;1901:33735:66;25246:14;1901:33735;;25232:68;1901:33735;;;25264:15;:36;25232:68;;1901:33735;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;-1:-1:-1;;;;;31089:5:66;1901:33735;;31075:10;:19;31071:58;;-1:-1:-1;;;;;1901:33735:66;;;31138:18;1901:33735;;;;;31138:37;1901:33735;;;;31138:37;:::i;:::-;1901:33735;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;35317:20;1901:33735;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;;;;31870:14;1901:33735;;31870:30;1901:33735;;;31870:30;1901:33735;;;;;;;;;31828:86;;;:::i;:::-;31930:13;1901:33735;31986:3;1901:33735;;;31870:14;1901:33735;;31870:30;1901:33735;;;31950:30;1901:33735;;;;;;;;;31945:39;;;;1901:33735;;;32009:18;1901:33735;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;32005:372;;31986:3;;;;:::i;:::-;31930:13;;32005:372;1901:33735;;;;32009:18;1901:33735;;;;;;;;;;;;;;;;;;;;;32248:37;;1901:33735;31870:30;32307:37;;;1901:33735;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;:::i;:::-;;;;32095:267;1901:33735;32095:267;;1901:33735;;32095:267;;1901:33735;32095:267;;;1901:33735;32095:267;;;1901:33735;;;;;;;;;;;32079:283;;;;31986:3;32079:283;;;:::i;:::-;;32005:372;;;;1901:33735;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;1568:16:78;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;1568:16:78;;;;;;;;1901:33735:66;1568:16:78;;;;1901:33735:66;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;;;;;;:::i;:::-;34675:25;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;33928:11;1901:33735;33942:1;1901:33735;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;33959:13;;33942:1;33974:16;;;;;;;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33942:1;1901:33735;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33992:3;1901:33735;;;34028:14;1901:33735;;;;;;;;;;;;;;;;33992:3;1901:33735;;34011:34;1901:33735;;:::i;:::-;34011:34;;;;:::i;:::-;;33992:3;:::i;:::-;33959:13;;1901:33735;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;30212:5:66;1901:33735;;30198:10;:19;;;:57;;;1901:33735;30194:96;;30347:16;-1:-1:-1;;;;;30309:19:66;1901:33735;;-1:-1:-1;;;;;30330:15:66;1901:33735;;30347:16;1901:33735;30347:16;;:::i;:::-;;1901:33735;-1:-1:-1;;;;;30330:15:66;1901:33735;;;;30374:18;1901:33735;;30374:55;1901:33735;;;;;;30374:55;:::i;:::-;1901:33735;;-1:-1:-1;;;;;1901:33735:66;;30330:15;1901:33735;;30330:15;1901:33735;;30347:16;1901:33735;-1:-1:-1;;;;;1901:33735:66;;30309:19;1901:33735;;30309:19;1901:33735;;30550:20;1901:33735;;;;30198:57;1901:33735;30239:16;1901:33735;30221:15;:34;30198:57;;1901:33735;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;28904:5:66;1901:33735;;28890:10;:19;;;:86;;;1901:33735;28873:147;;1901:33735;29029:29;1901:33735;;28890:86;1901:33735;28943:33;1901:33735;28925:15;:51;28890:86;;1901:33735;;;;;;-1:-1:-1;;1901:33735:66;;;;;;34953:22;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;26249:5:66;1901:33735;;26235:10;:19;;;:91;;;1901:33735;26218:152;;1901:33735;;;;;;;:::i;:::-;;;;26407:27;;;;1901:33735;26407:27;1901:33735;;26379:55;1901:33735;;;;;;;;;;26235:91;1901:33735;26288:38;1901:33735;26270:15;:56;26235:91;;1901:33735;;-1:-1:-1;;1901:33735:66;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;27584:5:66;1901:33735;;27570:10;:19;;;:91;;;1901:33735;27553:152;;27733:25;1901:33735;27714:44;1901:33735;;;;;;;;;;27570:91;1901:33735;27623:38;1901:33735;27605:15;:56;27570:91;;1901:33735;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1901:33735:66;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;1901:33735:66;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;23851:1;1901:33735;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1901:33735:66;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;8423:4;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1901:33735:66;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;3421:155:98:-;;;-1:-1:-1;;;;;3540:4:98;1901:33735:66;;3540:29:98;;;;;1901:33735:66;;-1:-1:-1;;;3540:29:98;;-1:-1:-1;;;;;1901:33735:66;;;3540:29:98;;;1901:33735:66;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;-1:-1:-1;;3540:29:98;;;;;;;;3421:155;:::o;3540:29::-;:4;:29;;;:::i;:::-;3421:155::o;1481:536::-;;;;;;;-1:-1:-1;;;;;1745:4:98;1901:33735:66;;1745:265:98;;;;;;1901:33735:66;1745:4:98;1901:33735:66;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;1745:265:98;;1901:33735:66;1745:265:98;;;1901:33735:66;1793:4:98;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;1793:4:98;1901:33735:66;;;;;;;;;;;;;16692:4;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;1745:265:98;;;;;;;;;;;1481:536;:::o;21942:222:66:-;;1901:33735;22105:1;1901:33735;22052:18;1901:33735;;;22105:1;1901:33735;;22105:1;1901:33735;;;;22105:1;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;;;;;22105:1;1901:33735;22117:14;1901:33735;;22117:38;1901:33735;22105:1;1901:33735;22117:38;1901:33735;;;;;;-1:-1:-1;;1901:33735:66;;;21942:222::o;21485:300::-;-1:-1:-1;;;;;21571:4:66;1901:33735;;;;;;;21571:30;;-1:-1:-1;;;;;1901:33735:66;;21571:30;;;1901:33735;;21571:30;;;;;;;;;;;:4;:30;;;21485:300;21567:212;;;21485:300;;;:::o;21567:212::-;1901:33735;;-1:-1:-1;;;21670:31:66;;1901:33735;;;21571:30;1901:33735;;21670:31;;;;;;;21571:4;21670:31;;;21567:212;1901:33735;;21571:30;1901:33735;;;;;;;;;;21719:22;;;;;;;;;21571:4;21719:22;;;21567:212;21719:35;;;;;;:::i;:::-;;;:::i;:22::-;;;1901:33735;21719:22;;1901:33735;21719:22;;;;;;1901:33735;21719:22;;;:::i;:::-;;;1901:33735;;;;;21719:35;:22;;;;;-1:-1:-1;21719:22:66;;21670:31;21571:30;21670:31;;;;1901:33735;21670:31;;;;;;;;;;;:::i;:::-;;;;;;21571:30;;;;1901:33735;21571:30;1901:33735;21571:30;;;;;;;:::i;:::-;;;;2104:244:102;;-1:-1:-1;;;;;1901:33735:66;;2288:52:102;;;;;1901:33735:66;;;;;;;;;-1:-1:-1;;;1901:33735:66;;;;;;;;;;;;;;;;;;;2288:52:102;;;;;;:::i;:::-;1901:33735:66;2278:63:102;;2104:244;:::o;20416:363:66:-;20570:11;;20566:65;;20580:1;1901:33735;20648:18;1901:33735;;;20580:1;1901:33735;;20580:1;1901:33735;;;;20580:1;1901:33735;;-1:-1:-1;;;;;1901:33735:66;;;20697:26;20693:80;;20416:363::o;22493:351::-;;22686:27;;;22682:134;;22825:12;;;;1901:33735;22493:351;:::o;22682:134::-;22752:27;;;;;:::i;:::-;22801:4;22794:11;:::o;23235:842::-;;;;23464:68;23567:72;23235:842;;;;23525:6;23492:29;23498:16;1901:33735;23492:29;;:::i;:::-;1901:33735;23464:68;;:::i;:::-;1901:33735;23525:6;23595:33;23601:27;1901:33735;23595:33;;:::i;23567:72::-;1901:33735;;;;;;;;:::i;:::-;23601:27;1901:33735;;;-1:-1:-1;1901:33735:66;;;;;;;;23956:30;24040:29;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;23525:6;1901:33735;;;;;;;;:::i;:::-;;;;;;23779:55;;1901:33735;23767:67;;;:::i;:::-;;;;;:::i;:::-;;1901:33735;;;;;;;:::i;:::-;;;;;;23856:59;;1901:33735;23844:71;;;:::i;:::-;;;;;:::i;:::-;;23962:24;1901:33735;23956:30;;:::i;:::-;1901:33735;;;;;-1:-1:-1;1901:33735:66;23926:18;1901:33735;;23926:70;1901:33735;-1:-1:-1;1901:33735:66;;;;23926:70;:::i;:::-;1901:33735;;24040:29;:::i;:::-;1901:33735;-1:-1:-1;;;;;;1901:33735:66;;4076:41:98;;;;;;1901:33735:66;;;;;;;;;;4076:41:98;;1901:33735:66;;;;4076:41:98;;;1901:33735:66;;;;;;;;;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;4076:41:98;;;;;;;;;;23235:842:66;:::o;1901:33735::-;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;23851:1;1901:33735;;;;;;;;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;",linkReferences:{}},methodIdentifiers:{"acceptFillFixedPercentage()":"af5cecc0","acceptFillPropotionalPercentage()":"952469d0","acceptMaxLimitFillFixedFee()":"74efedc9","acceptOwner()":"ebbc4965","acceptPercentageFee()":"35287eaf","acceptWithdrawal()":"14438428","addBalance(address,uint256)":"21e5383a","cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"5dc22075","dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":"7b8ad149","dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"92aa42c9","findMarket(address,address)":"db7ccd63","getAllMarketOrders(uint256)":"1ea43a7d","getAllMarketsMetadata()":"16790f81","getBalanceOfContract(address)":"28b44b4b","getEvvmID()":"17c85152","getIfUsedAsyncNonce(address,uint256)":"d0e3692d","getMarketMetadata(uint256)":"6b6445b6","getMaxLimitFillFixedFee()":"1f809821","getMaxLimitFillFixedFeeProposal()":"9dc20607","getMyOrdersInSpecificMarket(address,uint256)":"35b2c22c","getNextCurrentSyncNonce(address)":"6cd30148","getOrder(uint256,uint256)":"5e1a3573","getOwner()":"893d20e8","getOwnerProposal()":"9c348666","getOwnerTimeToAccept()":"775f3f7e","getPercentageFee()":"96100671","getPrincipalTokenAddress()":"280e32fb","getProposalPercentageFee()":"0a96865b","getProposedWithdrawal()":"d89ea03c","getRewardPercentage()":"c7213163","getRewardPercentageProposal()":"17857d9d","makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"b54cfef0","proposeFillFixedPercentage(uint256,uint256,uint256)":"6cdbf927","proposeFillPropotionalPercentage(uint256,uint256,uint256)":"cfb35fd0","proposeMaxLimitFillFixedFee(uint256)":"7280ff35","proposeOwner(address)":"b5ed298a","proposePercentageFee(uint256)":"b3d4fd79","proposeWithdrawal(address,uint256,address)":"b7ac72ff","rejectProposeFillFixedPercentage()":"76a75a29","rejectProposeFillPropotionalPercentage()":"8eb163d3","rejectProposeMaxLimitFillFixedFee()":"1128a79a","rejectProposeOwner()":"26415c71","rejectProposePercentageFee()":"a936e0d1","rejectProposeWithdrawal()":"54282704","stake(uint256)":"a694fc3a","unstake(uint256)":"2e17de78"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_coreAddress","type":"address"},{"internalType":"address","name":"_stakingAddress","type":"address"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidServiceSignature","type":"error"},{"inputs":[],"name":"acceptFillFixedPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptFillPropotionalPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptMaxLimitFillFixedFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptPercentageFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"cancelOrder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"uint256","name":"amountOfTokenBToFill","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"},{"internalType":"uint256","name":"maxFillFixedFee","type":"uint256"}],"name":"dispatchOrder_fillFixedFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"uint256","name":"amountOfTokenBToFill","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"dispatchOrder_fillPropotionalFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"findMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"market","type":"uint256"}],"name":"getAllMarketOrders","outputs":[{"components":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"internalType":"struct P2PSwapStructs.OrderForGetter[]","name":"orders","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllMarketsMetadata","outputs":[{"components":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"maxSlot","type":"uint256"},{"internalType":"uint256","name":"ordersAvailable","type":"uint256"}],"internalType":"struct P2PSwapStructs.MarketInformation[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getBalanceOfContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"getIfUsedAsyncNonce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"market","type":"uint256"}],"name":"getMarketMetadata","outputs":[{"components":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"maxSlot","type":"uint256"},{"internalType":"uint256","name":"ordersAvailable","type":"uint256"}],"internalType":"struct P2PSwapStructs.MarketInformation","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxLimitFillFixedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxLimitFillFixedFeeProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"market","type":"uint256"}],"name":"getMyOrdersInSpecificMarket","outputs":[{"components":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"internalType":"struct P2PSwapStructs.OrderForGetter[]","name":"orders","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNextCurrentSyncNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"market","type":"uint256"},{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"getOrder","outputs":[{"components":[{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"internalType":"struct P2PSwapStructs.Order","name":"order","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwnerProposal","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwnerTimeToAccept","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPercentageFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrincipalTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProposalPercentageFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProposedWithdrawal","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardPercentage","outputs":[{"components":[{"internalType":"uint256","name":"seller","type":"uint256"},{"internalType":"uint256","name":"service","type":"uint256"},{"internalType":"uint256","name":"mateStaker","type":"uint256"}],"internalType":"struct P2PSwapStructs.Percentage","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardPercentageProposal","outputs":[{"components":[{"internalType":"uint256","name":"seller","type":"uint256"},{"internalType":"uint256","name":"service","type":"uint256"},{"internalType":"uint256","name":"mateStaker","type":"uint256"}],"internalType":"struct P2PSwapStructs.Percentage","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"makeOrder","outputs":[{"internalType":"uint256","name":"market","type":"uint256"},{"internalType":"uint256","name":"orderId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seller","type":"uint256"},{"internalType":"uint256","name":"_service","type":"uint256"},{"internalType":"uint256","name":"_mateStaker","type":"uint256"}],"name":"proposeFillFixedPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seller","type":"uint256"},{"internalType":"uint256","name":"_service","type":"uint256"},{"internalType":"uint256","name":"_mateStaker","type":"uint256"}],"name":"proposeFillPropotionalPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxLimitFillFixedFee","type":"uint256"}],"name":"proposeMaxLimitFillFixedFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"proposeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentageFee","type":"uint256"}],"name":"proposePercentageFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenToWithdraw","type":"address"},{"internalType":"uint256","name":"_amountToWithdraw","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"proposeWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeFillFixedPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeFillPropotionalPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeMaxLimitFillFixedFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposePercentageFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Mate labs ","details":"Supports order book-style trading with customizable fee models. Integrates with Core.sol for asset locking and settlements, and Staking.sol for validator rewards.","errors":{"InvalidServiceSignature()":[{"details":"Thrown when signature validation fails"}]},"kind":"dev","methods":{"cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Validates ownership, refunds tokenA, deletes order Cancellation Flow: 1. Validates signature via Core.sol 2. Validates user is order owner 3. Processes optional priority fee 4. Refunds locked tokenA to user 5. Deletes order (sets seller to address(0)) 6. Rewards staker if applicable Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents replay attacks and double cancellation Core.sol Integration: - Refunds tokenA via makeCaPay (order.amountA) - Priority fee via requestPay (if > 0) - Staker reward: 2-3x MATE via _rewardExecutor - makeCaPay handles staker priority fee distribution Security: - Only order owner can cancel - Atomic refund + deletion - Market slot becomes available for reuse","params":{"nonce":"Nonce for service execution (async)","noncePay":"Nonce for EVVM payment transaction","orderId":"Order ID to cancel","originExecutor":"Executor address for signature validation","priorityFeePay":"Optional priority fee for staker","signature":"Signature for cancellation authorization","signaturePay":"Signature for EVVM payment","tokenA":"Token A in pair","tokenB":"Token B in pair","user":"Address that owns the order"}},"dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":{"details":"Fee = min(proportionalFee, maxLimitFillFixedFee.current) with -10% tolerance Fixed Fee Execution Flow: 1. Validates signature via Core.sol 2. Validates market and order exist 3. Calculates capped fee and 10% tolerance 4. Validates amountOfTokenBToFill >= amountB + fee - 10% 5. Collects tokenB + amount via Evvm.requestPay 6. Calculates final fee based on actual payment 7. Handles overpayment refund if any 8. Distributes payments (seller, service, staker) 9. Transfers tokenA to buyer via Evvm.makeCaPay 10. Rewards staker (4-5x MATE) 11. Deletes order Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents double filling Core.sol Integration: - Collects tokenB via requestPay (variable amount) - Distributes via makeDisperseCaPay: * Seller: amountB + (finalFee * seller%) * Staker: priorityFee + (finalFee * staker%) * Service: finalFee * service% (accumulated) - Transfers tokenA to buyer via makeCaPay - Staker reward: 4-5x MATE via _rewardExecutor Fee Calculation: - Base: amountB (order requirement) - ProportionalFee: (amountB * percentageFee.current) / 10,000 - Fee: min(proportionalFee, maxLimitFillFixedFee.current) - Tolerance: fee * 10% (fee10) - MinRequired: amountB + fee - fee10 - FullRequired: amountB + fee - FinalFee: Based on actual payment amount Tolerance Range: - Accepts payment between [amountB + 90% fee] and [amountB + 100% fee] - Calculates actual fee from payment received - Enables flexible fee payment for users","params":{"amountOfTokenBToFill":"Amount of tokenB buyer is paying (must cover order + fee)","maxFillFixedFee":"Max fee cap (for testing)","nonce":"Nonce for service execution (async)","noncePay":"Nonce for EVVM payment transaction","orderId":"Order ID to fill","originExecutor":"Executor address for signature validation","priorityFeePay":"Optional priority fee for staker","signature":"Signature for dispatch authorization","signaturePay":"Signature for EVVM payment","tokenA":"Token A in pair","tokenB":"Token B in pair","user":"Address filling the order (buyer)"}},"dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Fee = amountB * percentageFee.current / 10,000 Proportional Fee Execution Flow: 1. Validates signature via Core.sol 2. Validates market and order exist 3. Calculates fee: (amountB * percentageFee.current) / 10,000 4. Validates amountOfTokenBToFill >= amountB + fee 5. Collects tokenB + fee via Evvm.requestPay 6. Handles overpayment refund if any 7. Distributes payments (seller, service, staker) 8. Transfers tokenA to buyer via Evvm.makeCaPay 9. Rewards staker (4-5x MATE) 10. Deletes order Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents double filling Core.sol Integration: - Collects tokenB via requestPay (amountB + fee) - Distributes via makeDisperseCaPay: * Seller: amountB + (fee * seller%) * Staker: priorityFee + (fee * staker%) * Service: fee * service% (accumulated) - Transfers tokenA to buyer via makeCaPay - Staker reward: 4-5x MATE via _rewardExecutor Fee Calculation: - Base: amountB (order requirement) - Fee: (amountB * percentageFee.current) / 10,000 - Total: amountB + fee - Example: 5% fee = 500 / 10,000","params":{"amountOfTokenBToFill":"Amount of tokenB buyer is paying (must cover order + fee)","nonce":"Nonce for service execution (async)","noncePay":"Nonce for EVVM payment transaction","orderId":"Order ID to fill","originExecutor":"Executor address for signature validation","priorityFeePay":"Optional priority fee for staker","signature":"Signature for dispatch authorization","signaturePay":"Signature for EVVM payment","tokenA":"Token A in pair","tokenB":"Token B in pair","user":"Address filling the order (buyer)"}},"getEvvmID()":{"details":"Returns core.getEvvmID(). Prevents cross-chain replays.","returns":{"_0":"Unique EVVM instance identifier"}},"getIfUsedAsyncNonce(address,uint256)":{"details":"View function returning core.getIfUsedAsyncNonce(user, nonce). Reserved nonces return false until consumed.","params":{"nonce":"Async nonce to check","user":"User address to query"},"returns":{"_0":"true if consumed, false if available/reserved"}},"getNextCurrentSyncNonce(address)":{"details":"View function returning core.getNextCurrentSyncNonce(user). Auto-increments after each use.","params":{"user":"User address to query"},"returns":{"_0":"Next sync nonce for user"}},"getPrincipalTokenAddress()":{"details":"Returns core.getPrincipalTokenAddress(). Used for payment operations.","returns":{"_0":"Address of Principal Token (MATE)"}},"makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Locks tokenA in Core.sol and opens an order slot. Markets are automatically created for new token pairs.","params":{"amountA":"Amount of tokenA offered.","amountB":"Amount of tokenB requested.","nonce":"Nonce for service execution (async).","noncePay":"Nonce for the Core payment (locks tokenA).","originExecutor":"executor address for signature validation.","priorityFeePay":"Optional priority fee for the executor.","signature":"Seller\'s authorization signature.","signaturePay":"Signature for the Core payment.","tokenA":"Address of the token being sold.","tokenB":"Address of the token being bought.","user":"Seller address."},"returns":{"market":"The ID of the market.","orderId":"The ID of the order within that market."}}},"title":"EVVM P2P Swap","version":1},"userdoc":{"kind":"user","methods":{"cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Cancels existing order and refunds locked tokens"},"dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":{"notice":"Fills order using fixed/capped fee model"},"dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Fills order using proportional fee model"},"getEvvmID()":{"notice":"Gets unique EVVM instance identifier for signature validation"},"getIfUsedAsyncNonce(address,uint256)":{"notice":"Checks if async nonce was consumed"},"getNextCurrentSyncNonce(address)":{"notice":"Gets next sequential sync nonce for user"},"getPrincipalTokenAddress()":{"notice":"Gets Principal Token (MATE) address"},"makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Creates a new limit order in a specific trading market."}},"notice":"/$$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$ | $$__ $$/$$__ $| $$__ $$/$$__ $$ | $$ \\\\ $|__/ \\\\ $| $$ \\\\ $| $$ \\\\__//$$ /$$ /$$ /$$$$$$ /$$$$$$ | $$$$$$$/ /$$$$$$| $$$$$$$| $$$$$$| $$ | $$ | $$|____ $$/$$__ $$ | $$____/ /$$____/| $$____/ \\\\____ $| $$ | $$ | $$ /$$$$$$| $$ \\\\ $$ | $$ | $$ | $$ /$$ \\\\ $| $$ | $$ | $$/$$__ $| $$ | $$ | $$ | $$$$$$$| $$ | $$$$$$| $$$$$/$$$$| $$$$$$| $$$$$$$/ |__/ |________|__/ \\\\______/ \\\\_____/\\\\___/ \\\\_______| $$____/ | $$ | $$ |__/ Peer-to-peer decentralized exchange for token trading within EVVM.","version":1}},"settings":{"compilationTarget":{"src/contracts/p2pSwap/P2PSwap.sol":"P2PSwap"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/contracts/p2pSwap/P2PSwap.sol":{"keccak256":"0x3b1096877a840e92cd0bc3f29e2db26e85f6bda47b06282a852484eac538d317","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://74ebdbf8e5f0c7f6f6deca066c34b0ea11e5d64764a827ac934edb79c9fd630a","dweb:/ipfs/QmfBC9pr1dhZhyF6yPMYxzQeVvyo2HTrVpNfrs7uJfiVav"]},"src/contracts/staking/Estimator.sol":{"keccak256":"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"]},"src/contracts/staking/Staking.sol":{"keccak256":"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"]},"src/interfaces/ICore.sol":{"keccak256":"0x5aaecf1d449b5b7beb864d3f7ae281eb1ca8d810d852927e9cf04593882e3c6f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://5159ea817b157f01b80a16d6efb3bb41cc3a5d482e44e7b6370079ad8dd7dd3b","dweb:/ipfs/QmXp2GuM9aU8DBPVaikvxYG3J65pjBkyti8MTXeP2WB2Pp"]},"src/interfaces/IStaking.sol":{"keccak256":"0xa4b5ffd3ea30c1d8fc878e4031284c6311aab6adb6b8f3d9edd95fb6467ccfb0","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://530b73a2e3b6dfd3e207b768d377d84190118d8d92104fbc39d281ffb31d4c98","dweb:/ipfs/QmPEM2tFcxmiUwav17UwGw1bEkEuUFxRL2LrRB1o9FvC2r"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/EvvmService.sol":{"keccak256":"0xceddba57e52de250e7c1828cfc157173db686fa6911bb427eb0df0f9085847f4","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://b16ed1576c11fdd32db2939b23811e557fcd5a9719eba2e40bdb59508294023d","dweb:/ipfs/QmccmyQERqoU7ysrFrXt8otZJ8UHAGEYbMTFWw7thWgY6J"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/errors/StakingError.sol":{"keccak256":"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/structs/P2PSwapStructs.sol":{"keccak256":"0x26a2d75e6397aa2c67e844eafa5d2e55b920910c6639f7f06e0c95ff97144273","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://f727b7ed930fdf509b741f6026c077c88ead5fd2b6f1461d90958c5ea122ef75","dweb:/ipfs/QmeMYZUArqVqwh24717aebHkpbwbV6Lzzmk2j5tTZuceMF"]},"src/library/structs/StakingStructs.sol":{"keccak256":"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/service/CoreExecution.sol":{"keccak256":"0xcca54c237de2e977dd710a10241b49023074460a67e2d6337db7645c5fb32468","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://14102751a905a10357670a05577b690537aaf6f0a6235ba231fbaaa0538a0714","dweb:/ipfs/QmNuivzcUHWwBDdDRLXQmHXo3JZhTnCF5K5khpz3PbUbHu"]},"src/library/utils/service/StakingServiceUtils.sol":{"keccak256":"0x751f079780ec3353091054f85c0a8ad046e2d8b10b6a1532674721be4df9da53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://33581b93ba9cd6d1a9764913a5bfb53cd51617b179703ef3f277279f354c9ab0","dweb:/ipfs/QmcdBqwdjmzKhm976vGXHbYRvtoUBf7VX3RnBEKtZ5cHoh"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]},"src/library/utils/signature/P2PSwapHashUtils.sol":{"keccak256":"0x305a0ea1c5c24a22c28feef476b802bf62622507f9e8e4b616d783d7d6bf0e0e","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://7840e3bb504191739741acc2fa51eb04bbcc68e609133e3fd7577dfece0aab8c","dweb:/ipfs/QmTHoJaYazhsfWM7CBLxfYGN12omcseJPWp6CXiL5jNZZQ"]},"src/library/utils/signature/StakingHashUtils.sol":{"keccak256":"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"_coreAddress",type:"address"},{internalType:"address",name:"_stakingAddress",type:"address"},{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],type:"error",name:"InvalidServiceSignature"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptFillFixedPercentage"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptFillPropotionalPercentage"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptMaxLimitFillFixedFee"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptOwner"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptPercentageFee"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptWithdrawal"},{inputs:[{internalType:"address",name:"_token",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"addBalance"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"cancelOrder"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"uint256",name:"amountOfTokenBToFill",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"},{internalType:"uint256",name:"maxFillFixedFee",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"dispatchOrder_fillFixedFee"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"uint256",name:"amountOfTokenBToFill",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"dispatchOrder_fillPropotionalFee"},{inputs:[{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"}],stateMutability:"view",type:"function",name:"findMarket",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"uint256",name:"market",type:"uint256"}],stateMutability:"view",type:"function",name:"getAllMarketOrders",outputs:[{internalType:"struct P2PSwapStructs.OrderForGetter[]",name:"orders",type:"tuple[]",components:[{internalType:"uint256",name:"marketId",type:"uint256"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"address",name:"seller",type:"address"},{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getAllMarketsMetadata",outputs:[{internalType:"struct P2PSwapStructs.MarketInformation[]",name:"",type:"tuple[]",components:[{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"maxSlot",type:"uint256"},{internalType:"uint256",name:"ordersAvailable",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"view",type:"function",name:"getBalanceOfContract",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmID",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"getIfUsedAsyncNonce",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"uint256",name:"market",type:"uint256"}],stateMutability:"view",type:"function",name:"getMarketMetadata",outputs:[{internalType:"struct P2PSwapStructs.MarketInformation",name:"",type:"tuple",components:[{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"maxSlot",type:"uint256"},{internalType:"uint256",name:"ordersAvailable",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getMaxLimitFillFixedFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getMaxLimitFillFixedFeeProposal",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"market",type:"uint256"}],stateMutability:"view",type:"function",name:"getMyOrdersInSpecificMarket",outputs:[{internalType:"struct P2PSwapStructs.OrderForGetter[]",name:"orders",type:"tuple[]",components:[{internalType:"uint256",name:"marketId",type:"uint256"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"address",name:"seller",type:"address"},{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"view",type:"function",name:"getNextCurrentSyncNonce",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"uint256",name:"market",type:"uint256"},{internalType:"uint256",name:"orderId",type:"uint256"}],stateMutability:"view",type:"function",name:"getOrder",outputs:[{internalType:"struct P2PSwapStructs.Order",name:"order",type:"tuple",components:[{internalType:"address",name:"seller",type:"address"},{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getOwner",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getOwnerProposal",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getOwnerTimeToAccept",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPercentageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPrincipalTokenAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getProposalPercentageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getProposedWithdrawal",outputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getRewardPercentage",outputs:[{internalType:"struct P2PSwapStructs.Percentage",name:"",type:"tuple",components:[{internalType:"uint256",name:"seller",type:"uint256"},{internalType:"uint256",name:"service",type:"uint256"},{internalType:"uint256",name:"mateStaker",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getRewardPercentageProposal",outputs:[{internalType:"struct P2PSwapStructs.Percentage",name:"",type:"tuple",components:[{internalType:"uint256",name:"seller",type:"uint256"},{internalType:"uint256",name:"service",type:"uint256"},{internalType:"uint256",name:"mateStaker",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"makeOrder",outputs:[{internalType:"uint256",name:"market",type:"uint256"},{internalType:"uint256",name:"orderId",type:"uint256"}]},{inputs:[{internalType:"uint256",name:"_seller",type:"uint256"},{internalType:"uint256",name:"_service",type:"uint256"},{internalType:"uint256",name:"_mateStaker",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeFillFixedPercentage"},{inputs:[{internalType:"uint256",name:"_seller",type:"uint256"},{internalType:"uint256",name:"_service",type:"uint256"},{internalType:"uint256",name:"_mateStaker",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeFillPropotionalPercentage"},{inputs:[{internalType:"uint256",name:"_maxLimitFillFixedFee",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeMaxLimitFillFixedFee"},{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeOwner"},{inputs:[{internalType:"uint256",name:"_percentageFee",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposePercentageFee"},{inputs:[{internalType:"address",name:"_tokenToWithdraw",type:"address"},{internalType:"uint256",name:"_amountToWithdraw",type:"uint256"},{internalType:"address",name:"_to",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeWithdrawal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeFillFixedPercentage"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeFillPropotionalPercentage"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeMaxLimitFillFixedFee"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeOwner"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposePercentageFee"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeWithdrawal"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"stake"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"unstake"}],devdoc:{kind:"dev",methods:{"cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Validates ownership, refunds tokenA, deletes order Cancellation Flow: 1. Validates signature via Core.sol 2. Validates user is order owner 3. Processes optional priority fee 4. Refunds locked tokenA to user 5. Deletes order (sets seller to address(0)) 6. Rewards staker if applicable Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents replay attacks and double cancellation Core.sol Integration: - Refunds tokenA via makeCaPay (order.amountA) - Priority fee via requestPay (if > 0) - Staker reward: 2-3x MATE via _rewardExecutor - makeCaPay handles staker priority fee distribution Security: - Only order owner can cancel - Atomic refund + deletion - Market slot becomes available for reuse",params:{nonce:"Nonce for service execution (async)",noncePay:"Nonce for EVVM payment transaction",orderId:"Order ID to cancel",originExecutor:"Executor address for signature validation",priorityFeePay:"Optional priority fee for staker",signature:"Signature for cancellation authorization",signaturePay:"Signature for EVVM payment",tokenA:"Token A in pair",tokenB:"Token B in pair",user:"Address that owns the order"}},"dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":{details:"Fee = min(proportionalFee, maxLimitFillFixedFee.current) with -10% tolerance Fixed Fee Execution Flow: 1. Validates signature via Core.sol 2. Validates market and order exist 3. Calculates capped fee and 10% tolerance 4. Validates amountOfTokenBToFill >= amountB + fee - 10% 5. Collects tokenB + amount via Evvm.requestPay 6. Calculates final fee based on actual payment 7. Handles overpayment refund if any 8. Distributes payments (seller, service, staker) 9. Transfers tokenA to buyer via Evvm.makeCaPay 10. Rewards staker (4-5x MATE) 11. Deletes order Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents double filling Core.sol Integration: - Collects tokenB via requestPay (variable amount) - Distributes via makeDisperseCaPay: * Seller: amountB + (finalFee * seller%) * Staker: priorityFee + (finalFee * staker%) * Service: finalFee * service% (accumulated) - Transfers tokenA to buyer via makeCaPay - Staker reward: 4-5x MATE via _rewardExecutor Fee Calculation: - Base: amountB (order requirement) - ProportionalFee: (amountB * percentageFee.current) / 10,000 - Fee: min(proportionalFee, maxLimitFillFixedFee.current) - Tolerance: fee * 10% (fee10) - MinRequired: amountB + fee - fee10 - FullRequired: amountB + fee - FinalFee: Based on actual payment amount Tolerance Range: - Accepts payment between [amountB + 90% fee] and [amountB + 100% fee] - Calculates actual fee from payment received - Enables flexible fee payment for users",params:{amountOfTokenBToFill:"Amount of tokenB buyer is paying (must cover order + fee)",maxFillFixedFee:"Max fee cap (for testing)",nonce:"Nonce for service execution (async)",noncePay:"Nonce for EVVM payment transaction",orderId:"Order ID to fill",originExecutor:"Executor address for signature validation",priorityFeePay:"Optional priority fee for staker",signature:"Signature for dispatch authorization",signaturePay:"Signature for EVVM payment",tokenA:"Token A in pair",tokenB:"Token B in pair",user:"Address filling the order (buyer)"}},"dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Fee = amountB * percentageFee.current / 10,000 Proportional Fee Execution Flow: 1. Validates signature via Core.sol 2. Validates market and order exist 3. Calculates fee: (amountB * percentageFee.current) / 10,000 4. Validates amountOfTokenBToFill >= amountB + fee 5. Collects tokenB + fee via Evvm.requestPay 6. Handles overpayment refund if any 7. Distributes payments (seller, service, staker) 8. Transfers tokenA to buyer via Evvm.makeCaPay 9. Rewards staker (4-5x MATE) 10. Deletes order Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents double filling Core.sol Integration: - Collects tokenB via requestPay (amountB + fee) - Distributes via makeDisperseCaPay: * Seller: amountB + (fee * seller%) * Staker: priorityFee + (fee * staker%) * Service: fee * service% (accumulated) - Transfers tokenA to buyer via makeCaPay - Staker reward: 4-5x MATE via _rewardExecutor Fee Calculation: - Base: amountB (order requirement) - Fee: (amountB * percentageFee.current) / 10,000 - Total: amountB + fee - Example: 5% fee = 500 / 10,000",params:{amountOfTokenBToFill:"Amount of tokenB buyer is paying (must cover order + fee)",nonce:"Nonce for service execution (async)",noncePay:"Nonce for EVVM payment transaction",orderId:"Order ID to fill",originExecutor:"Executor address for signature validation",priorityFeePay:"Optional priority fee for staker",signature:"Signature for dispatch authorization",signaturePay:"Signature for EVVM payment",tokenA:"Token A in pair",tokenB:"Token B in pair",user:"Address filling the order (buyer)"}},"getEvvmID()":{details:"Returns core.getEvvmID(). Prevents cross-chain replays.",returns:{_0:"Unique EVVM instance identifier"}},"getIfUsedAsyncNonce(address,uint256)":{details:"View function returning core.getIfUsedAsyncNonce(user, nonce). Reserved nonces return false until consumed.",params:{nonce:"Async nonce to check",user:"User address to query"},returns:{_0:"true if consumed, false if available/reserved"}},"getNextCurrentSyncNonce(address)":{details:"View function returning core.getNextCurrentSyncNonce(user). Auto-increments after each use.",params:{user:"User address to query"},returns:{_0:"Next sync nonce for user"}},"getPrincipalTokenAddress()":{details:"Returns core.getPrincipalTokenAddress(). Used for payment operations.",returns:{_0:"Address of Principal Token (MATE)"}},"makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Locks tokenA in Core.sol and opens an order slot. Markets are automatically created for new token pairs.",params:{amountA:"Amount of tokenA offered.",amountB:"Amount of tokenB requested.",nonce:"Nonce for service execution (async).",noncePay:"Nonce for the Core payment (locks tokenA).",originExecutor:"executor address for signature validation.",priorityFeePay:"Optional priority fee for the executor.",signature:"Seller's authorization signature.",signaturePay:"Signature for the Core payment.",tokenA:"Address of the token being sold.",tokenB:"Address of the token being bought.",user:"Seller address."},returns:{market:"The ID of the market.",orderId:"The ID of the order within that market."}}},version:1},userdoc:{kind:"user",methods:{"cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Cancels existing order and refunds locked tokens"},"dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":{notice:"Fills order using fixed/capped fee model"},"dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Fills order using proportional fee model"},"getEvvmID()":{notice:"Gets unique EVVM instance identifier for signature validation"},"getIfUsedAsyncNonce(address,uint256)":{notice:"Checks if async nonce was consumed"},"getNextCurrentSyncNonce(address)":{notice:"Gets next sequential sync nonce for user"},"getPrincipalTokenAddress()":{notice:"Gets Principal Token (MATE) address"},"makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Creates a new limit order in a specific trading market."}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/p2pSwap/P2PSwap.sol":"P2PSwap"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/p2pSwap/P2PSwap.sol":{keccak256:"0x3b1096877a840e92cd0bc3f29e2db26e85f6bda47b06282a852484eac538d317",urls:["bzz-raw://74ebdbf8e5f0c7f6f6deca066c34b0ea11e5d64764a827ac934edb79c9fd630a","dweb:/ipfs/QmfBC9pr1dhZhyF6yPMYxzQeVvyo2HTrVpNfrs7uJfiVav"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Estimator.sol":{keccak256:"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057",urls:["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Staking.sol":{keccak256:"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a",urls:["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/ICore.sol":{keccak256:"0x5aaecf1d449b5b7beb864d3f7ae281eb1ca8d810d852927e9cf04593882e3c6f",urls:["bzz-raw://5159ea817b157f01b80a16d6efb3bb41cc3a5d482e44e7b6370079ad8dd7dd3b","dweb:/ipfs/QmXp2GuM9aU8DBPVaikvxYG3J65pjBkyti8MTXeP2WB2Pp"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IStaking.sol":{keccak256:"0xa4b5ffd3ea30c1d8fc878e4031284c6311aab6adb6b8f3d9edd95fb6467ccfb0",urls:["bzz-raw://530b73a2e3b6dfd3e207b768d377d84190118d8d92104fbc39d281ffb31d4c98","dweb:/ipfs/QmPEM2tFcxmiUwav17UwGw1bEkEuUFxRL2LrRB1o9FvC2r"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/EvvmService.sol":{keccak256:"0xceddba57e52de250e7c1828cfc157173db686fa6911bb427eb0df0f9085847f4",urls:["bzz-raw://b16ed1576c11fdd32db2939b23811e557fcd5a9719eba2e40bdb59508294023d","dweb:/ipfs/QmccmyQERqoU7ysrFrXt8otZJ8UHAGEYbMTFWw7thWgY6J"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/StakingError.sol":{keccak256:"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2",urls:["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/P2PSwapStructs.sol":{keccak256:"0x26a2d75e6397aa2c67e844eafa5d2e55b920910c6639f7f06e0c95ff97144273",urls:["bzz-raw://f727b7ed930fdf509b741f6026c077c88ead5fd2b6f1461d90958c5ea122ef75","dweb:/ipfs/QmeMYZUArqVqwh24717aebHkpbwbV6Lzzmk2j5tTZuceMF"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/StakingStructs.sol":{keccak256:"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf",urls:["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/service/CoreExecution.sol":{keccak256:"0xcca54c237de2e977dd710a10241b49023074460a67e2d6337db7645c5fb32468",urls:["bzz-raw://14102751a905a10357670a05577b690537aaf6f0a6235ba231fbaaa0538a0714","dweb:/ipfs/QmNuivzcUHWwBDdDRLXQmHXo3JZhTnCF5K5khpz3PbUbHu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/service/StakingServiceUtils.sol":{keccak256:"0x751f079780ec3353091054f85c0a8ad046e2d8b10b6a1532674721be4df9da53",urls:["bzz-raw://33581b93ba9cd6d1a9764913a5bfb53cd51617b179703ef3f277279f354c9ab0","dweb:/ipfs/QmcdBqwdjmzKhm976vGXHbYRvtoUBf7VX3RnBEKtZ5cHoh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/P2PSwapHashUtils.sol":{keccak256:"0x305a0ea1c5c24a22c28feef476b802bf62622507f9e8e4b616d783d7d6bf0e0e",urls:["bzz-raw://7840e3bb504191739741acc2fa51eb04bbcc68e609133e3fd7577dfece0aab8c","dweb:/ipfs/QmTHoJaYazhsfWM7CBLxfYGN12omcseJPWp6CXiL5jNZZQ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/StakingHashUtils.sol":{keccak256:"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65",urls:["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:66},nF={abi:[{type:"constructor",inputs:[{name:"initialAdmin",type:"address",internalType:"address"},{name:"initialGoldenFisher",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptNewAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptNewEstimator",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptNewGoldenFisher",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptSetSecondsToUnlockStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addPresaleStaker",inputs:[{name:"_staker",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addPresaleStakers",inputs:[{name:"_stakers",type:"address[]",internalType:"address[]"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelChangeAllowPresaleStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelChangeAllowPublicStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelSetSecondsToUnllockFullUnstaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"confirmChangeAllowPresaleStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"confirmChangeAllowPublicStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"confirmServiceStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"confirmSetSecondsToUnllockFullUnstaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAddressHistory",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"tuple[]",internalType:"struct StakingStructs.HistoryMetadata[]",components:[{name:"transactionType",type:"bytes32",internalType:"bytes32"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"timestamp",type:"uint256",internalType:"uint256"},{name:"totalStaked",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAddressHistoryByIndex",inputs:[{name:"_account",type:"address",internalType:"address"},{name:"_index",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"tuple",internalType:"struct StakingStructs.HistoryMetadata",components:[{name:"transactionType",type:"bytes32",internalType:"bytes32"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"timestamp",type:"uint256",internalType:"uint256"},{name:"totalStaked",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAllowPresaleStaking",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.BoolTypeProposal",components:[{name:"flag",type:"bool",internalType:"bool"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAllowPublicStaking",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.BoolTypeProposal",components:[{name:"flag",type:"bool",internalType:"bool"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getCoreAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getEstimatorAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getEstimatorProposal",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getGoldenFisher",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getGoldenFisherProposal",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getIfUsedAsyncNonce",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getMateAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getPresaleStaker",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPresaleStakerCount",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getSecondsToUnlockFullUnstaking",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getSecondsToUnlockStaking",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getSizeOfAddressHistory",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getTimeToUserUnlockFullUnstakingTime",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getTimeToUserUnlockStakingTime",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getUserAmountStaked",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"gimmeYiel",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"epochAnswer",type:"bytes32",internalType:"bytes32"},{name:"tokenToBeRewarded",type:"address",internalType:"address"},{name:"amountTotalToBeRewarded",type:"uint256",internalType:"uint256"},{name:"idToOverwriteUserHistory",type:"uint256",internalType:"uint256"},{name:"timestampToBeOverwritten",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"goldenStaking",inputs:[{name:"isStaking",type:"bool",internalType:"bool"},{name:"amountOfStaking",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initializeSystemContracts",inputs:[{name:"_estimator",type:"address",internalType:"address"},{name:"_core",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"prepareChangeAllowPresaleStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"prepareChangeAllowPublicStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"prepareServiceStaking",inputs:[{name:"amountOfStaking",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"prepareSetSecondsToUnllockFullUnstaking",inputs:[{name:"_secondsToUnllockFullUnstaking",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"presaleStaking",inputs:[{name:"user",type:"address",internalType:"address"},{name:"isStaking",type:"bool",internalType:"bool"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"priceOfStaking",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"proposeAdmin",inputs:[{name:"_newAdmin",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeEstimator",inputs:[{name:"_estimator",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeGoldenFisher",inputs:[{name:"_goldenFisher",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeSetSecondsToUnlockStaking",inputs:[{name:"_secondsToUnlockStaking",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"publicStaking",inputs:[{name:"user",type:"address",internalType:"address"},{name:"isStaking",type:"bool",internalType:"bool"},{name:"amountOfStaking",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalEstimator",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalGoldenFisher",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalSetSecondsToUnlockStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"serviceUnstaking",inputs:[{name:"amountOfStaking",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"AddressIsNotAService",inputs:[]},{type:"error",name:"AddressMismatch",inputs:[]},{type:"error",name:"AddressMustWaitToFullUnstake",inputs:[]},{type:"error",name:"AddressMustWaitToStakeAgain",inputs:[]},{type:"error",name:"LimitPresaleStakersExceeded",inputs:[]},{type:"error",name:"PresaleStakingDisabled",inputs:[]},{type:"error",name:"PublicStakingDisabled",inputs:[]},{type:"error",name:"SenderIsNotAdmin",inputs:[]},{type:"error",name:"SenderIsNotGoldenFisher",inputs:[]},{type:"error",name:"SenderIsNotProposedAdmin",inputs:[]},{type:"error",name:"ServiceDoesNotFulfillCorrectStakingAmount",inputs:[{name:"requiredAmount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ServiceDoesNotStakeInSameTx",inputs:[]},{type:"error",name:"TimeToAcceptProposalNotReached",inputs:[]},{type:"error",name:"UserIsNotPresaleStaker",inputs:[]},{type:"error",name:"UserPresaleStakerLimitExceeded",inputs:[]}],bytecode:{object:"0x60803460ba57601f613d0538819003918201601f19168301916001600160401b0383118484101760be57808492604094855283398101031260ba57604b602060458360d2565b920160d2565b9060018060a01b031660018060a01b0319600254161760025560018060a01b031660018060a01b03196005541617600555600160ff19601354161760135560ff19601154166011555f600b5562069780600e55600160ff19601a541617601a55604051613c1f90816100e68239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820360ba5756fe60806040526004361015610011575f80fd5b5f5f3560e01c8063147bf6c41461352657806317c85152146134a85780631e9c210f146134625780632096b7681461343d57806327be05571461340957806334dd90d6146133975780633900738a1461333e5780633d8ff69a146132e0578063475c31ff14612cbb578063489c5ad414612c6057806355160ea614612bba57806358b71cb414612406578063602c4fb414612111578063610a0476146120d45780636254300b146120ad57806366d161aa14612086578063681f02ac1461202a5780636b2933a214611fed5780636c58f77b14611f685780636fa7ff1714611ef15780637068dc6514611ec75780637c25faef14611e995780637f8da59114611e72578063829c67d414611a8357806383e512ab14611362578063893d20e81461133b57806389a75af8146112e35780638f4b3f28146112975780639053a2581461120557806396ae4e451461116557806399b4c3ef14610f045780639cde1d3e14610ee05780639e41123314610ebc578063a06831ba14610e80578063a84e9f2314610e44578063b384c57414610e16578063b38c950a14610dda578063b996b6c414610db0578063be10034514610cca578063c130a71914610c78578063c9d2beb114610643578063cb0900b81461061e578063cd6b5460146105a9578063d0e3692d14610508578063d5bbacd5146104dc578063dfb2b3a414610483578063e6cbd0a61461045c578063e6f2ebe41461043e578063e7dc0756146103e2578063f5c1af1c146103c4578063fa6215f3146103a6578063fabd08e81461029b5763fc2feab214610261575f80fd5b346102985760203660031901126102985760406020916001600160a01b0361028761357f565b168152601c83522054604051908152f35b80fd5b5034610298576020366003190112610298576001600160a01b036102bd61357f565b168152601c60205260408120805467ffffffffffffffff811161039257604051906102ee60208260051b0183613641565b80825260208201809385526020852085915b83831061037457868587604051928392602084019060208552518091526040840192915b818110610332575050500390f35b9193509160206080826103666001948851606080918051845260208101516020850152604081015160408501520151910152565b019401910191849392610324565b6004602060019261038485613790565b815201920192019190610300565b634e487b7160e01b83526041600452602483fd5b50346102985780600319360112610298576020600154604051908152f35b50346102985780600319360112610298576020600e54604051908152f35b50346102985780600319360112610298576103fb613778565b505061043a60405161040c816135f5565b60115460ff161515808252601254602092830190815260408051928352905192820192909252918291820190565b0390f35b50346102985780600319360112610298576020600b54604051908152f35b503461029857806003193601126102985760206001600160a01b0360095416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576201518042018042116104b95760125580f35b634e487b7160e01b82526011600452602482fd5b636587b01b60e11b8152600490fd5b50346102985760203660031901126102985760206105006104fb61357f565b61387c565b604051908152f35b50346102985760403660031901126102985761052261357f565b60206001600160a01b03604481601d541693604051948593849263d0e3692d60e01b845216600483015260243560248301525afa90811561059e5760209291610571575b506040519015158152f35b6105919150823d8411610597575b6105898183613641565b810190613752565b5f610566565b503d61057f565b6040513d84823e3d90fd5b50346102985780600319360112610298576003546001600160a01b03811680330361060f576004544210610600576001600160601b0360a01b60025416176002556001600160601b0360a01b166003558060045580f35b6384fa847560e01b8352600483fd5b632dba366760e21b8352600483fd5b503461029857806003193601126102985760206040516901138ccba11c9e8c00008152f35b5034610298578060031936011261029857333b15610c6957601754806901138ccba11c9e8c000002906901138ccba11c9e8c00008204810361091a5761068b82601854613704565b6001600160a01b03601d5416906040519063280e32fb60e01b8252602082600481865afa918215610bea578692610c29575b5060405163d4fac45d60e01b81523360048201526001600160a01b03909216602483015260208280604481015b0381865afa918215610bea578692610bf5575b5014159081610af2575b50610ade576016544203610acf57336001600160a01b036015541603610ac05760405190610734826135f5565b3382526020820191600183526020936040516107508682613641565b868152426107676001600160a01b0385511661380d565b11610ab15786855115610a92575b9150506001600160a01b03601d54166001600160a01b03835116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e57610a75575b505080516001600160a01b03168552601c84526040852054610a04576001600160a01b0382915b51168552601c8452604085206040519261080a84613625565b60018452858401908152604084019142835260608501938452805490600160401b8210156109f0579061084291600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b03909116918382602481865afa9182156109d15785926109b2575b50816109a8575b506108a7578280f35b60405163280e32fb60e01b81528281600481855afa908115610962578390859261096d575b506040516309a69f5760e01b81529192829060049082905afa92831561096257849361092e575b50508160011b918083046002149015171561091a5790610914913390613925565b5f808280f35b634e487b7160e01b83526011600452602483fd5b9080929350813d831161095b575b6109468183613641565b810103126109575751905f806108f3565b5f80fd5b503d61093c565b6040513d86823e3d90fd5b809250813d83116109a1575b6109838183613641565b8101031261099d5782610997600492613711565b916108cc565b8380fd5b503d610979565b905051155f61089e565b6109ca919250843d8611610597576105898183613641565b905f610897565b6040513d87823e3d90fd5b634e487b7160e01b88526004889052602488fd5b634e487b7160e01b89526041600452602489fd5b6001600160a01b038151168552601c8452604085206001600160a01b038251168652601c85526040862054905f198201918211610a6157836003610a536001600160a01b0394610a5b94613725565b5001546135e8565b916107f1565b634e487b7160e01b87526011600452602487fd5b81610a7f91613641565b610a8a57845f6107ca565b8480fd5b8280fd5b808080610aa9956001600160a01b03885116613ab1565b5f8086610775565b632df062b560e21b8752600487fd5b634cd87fb560e01b8352600483fd5b635ac7600960e11b8352600483fd5b630387e0bb60e21b83526004829052602483fd5b9050610b00836019546135e8565b60405163280e32fb60e01b8152602081600481865afa908115610bea578691610ba4575b5060405163d4fac45d60e01b81523060048201526001600160a01b0390911660248201529160209083908180604481015b03915afa9182156109d1578592610b70575b5014155f610707565b9091506020813d602011610b9c575b81610b8c60209383613641565b810103126109575751905f610b67565b3d9150610b7f565b90506020813d602011610be2575b81610bbf60209383613641565b81010312610bde57610b5592610bd6602092613711565b915092610b24565b8580fd5b3d9150610bb2565b6040513d88823e3d90fd5b9091506020813d602011610c21575b81610c1160209383613641565b810103126109575751905f6106fd565b3d9150610c04565b91506020823d602011610c61575b81610c4460209383613641565b81010312610bde576020610c5a6106ea93613711565b92506106bd565b3d9150610c37565b634a340e9d60e01b8152600490fd5b5034610298576020366003190112610298576040906001826001600160a01b03610ca061357f565b1692838152601b60205260ff8282205416938152601b602052200154825191151582526020820152f35b50346102985760203660031901126102985760043567ffffffffffffffff8111610dac5736602382011215610dac5780600401359067ffffffffffffffff8211610a8e573660248360051b83010111610a8e576001600160a01b03600254163303610d9d57825b82811015610d995761032060015411610d8a5760248160051b83010135906001600160a01b038216809203610a8a576001918552601b602052604085208260ff19825416179055610d82825461376a565b825501610d31565b63d646f8c560e01b8452600484fd5b8380f35b636587b01b60e11b8352600483fd5b5080fd5b50346102985780600319360112610298576001600160a01b036002541633036104cd578060145580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b600354166003558060045580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5780600f558060105580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b600654166006558060075580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b6009541660095580600a5580f35b5034610298576020366003190112610298576020610500610edb61357f565b61380d565b5034610298576020366003190112610298576020610500610eff61357f565b6137c2565b503461029857602036600319011261029857600435333b15611156576001600160a01b03601d5416906040519063280e32fb60e01b8252602082600481865afa918215610962578492611116575b5060405163d4fac45d60e01b81523360048201526001600160a01b03909216602483015260208280604481015b0381865afa9182156109625784926110e2575b5060405163280e32fb60e01b8152602081600481875afa9081156109d15785916110a0575b5060405163d4fac45d60e01b81523060048201526001600160a01b0390911660248201529260209084908180604481015b03915afa92831561096257849361106c575b5060405160a0810181811067ffffffffffffffff8211176110585784916080916040523381524260208201528360408201528460608201520152336001600160601b0360a01b60155416176015554260165560175560185560195580f35b634e487b7160e01b86526041600452602486fd5b9092506020813d602011611098575b8161108860209383613641565b810103126109575751915f610ffa565b3d915061107b565b90506020813d6020116110da575b816110bb60209383613641565b81010312610a8a57610fe8936110d2602092613711565b915093610fb7565b3d91506110ae565b9091506020813d60201161110e575b816110fe60209383613641565b810103126109575751905f610f92565b3d91506110f1565b91506020823d60201161114e575b8161113160209383613641565b8101031261099d576020611147610f7f93613711565b9250610f52565b3d9150611124565b634a340e9d60e01b8252600482fd5b503461029857806003193601126102985760049060206001600160a01b03601d54166040519384809263280e32fb60e01b82525afa9081156111f95780916111bc575b6020826001600160a01b0360405191168152f35b90506020823d6020116111f1575b816111d760209383613641565b8101031261029857506111eb602091613711565b5f6111a8565b3d91506111ca565b604051903d90823e3d90fd5b50346102985760403660031901126102985761126a6112646080926001600160a01b0361123061357f565b82606060405161123f81613625565b8281528260208201528260408201520152168152601c60205260406024359120613725565b50613790565b6112956040518092606080918051845260208101516020850152604081015160408501520151910152565bf35b50346102985780600319360112610298576001600160a01b036002541633036104cd5760105442106112d457600f54600e5580600f558060105580f35b6384fa847560e01b8152600490fd5b50346102985780600319360112610298576112fc613778565b505061043a60405161130d816135f5565b60135460ff161515808252601454602092830190815260408051928352905192820192909252918291820190565b503461029857806003193601126102985760206001600160a01b0360025416604051908152f35b5034610298576101403660031901126102985761137d61357f565b6113856135ab565b604435611390613595565b92608435926001600160a01b0384168403610bde5760c43567ffffffffffffffff8111611a7f576113c59036906004016135ba565b60e435959161010435916101243567ffffffffffffffff8111611a7b576113f09036906004016135ba565b99909260ff6013541615611a6c57908b92916001600160a01b03601d5416604051602081019060608252600d60808201526c7075626c69635374616b696e6760981b60a08201528a151560408201528c606082015260a0815261145460c082613641565b519020813b15610bde578580946114898d978c96604051998a9889978896637d3d171560e11b885260a43593600489016136a9565b03925af1801561059e57611a57575b50506114c5906001600160a01b03604051966114b3886135f5565b16865260208601988a8a523691613663565b918315611843576114df6001600160a01b0386511661380d565b4210611834578751156117dc575b505050856001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e576117c7575b505081516001600160a01b03168652601c602052604086205461175d576001600160a01b03835b925b51168652601c602052604086209015611755576001925b6040519361159085613625565b845260208401908152604084019142835260608501938452805490600160401b8210156109f057906115c791600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911692602082602481875afa9182156109d1578592611734575b508161172a575b5061162d578280f35b60405163280e32fb60e01b815291602083600481845afa9283156109625784936116e9575b506020600491604051928380926309a69f5760e01b82525afa9081156109625784916116b7575b508060011b90808204600214901517156116a357610914929161169b916135e8565b903390613925565b634e487b7160e01b84526011600452602484fd5b90506020813d6020116116e1575b816116d260209383613641565b8101031261095757515f611679565b3d91506116c5565b9092506020813d602011611722575b8161170560209383613641565b8101031261099d57602061171a600492613711565b939150611652565b3d91506116f8565b905051155f611624565b61174e91925060203d602011610597576105898183613641565b905f61161d565b600292611583565b6001600160a01b038251168652601c602052604086206001600160a01b038351168752601c6020526040872054905f1982019182116117b357846003610a536001600160a01b03946117ae94613725565b61156a565b634e487b7160e01b88526011600452602488fd5b816117d191613641565b610bde57855f611543565b6001600160a01b03855116866901138ccba11c9e8c000002906901138ccba11c9e8c000082048803611820579188611818959492600194613ab1565b5f80806114ed565b634e487b7160e01b8b52601160045260248bfd5b632df062b560e21b8952600489fd5b6118596001600160a01b038694939451166137c2565b86146119c0575b861515806119b7575b611997575b5050506001600160a01b038251168652601c602052604086206001600160a01b038351168752601c6020526040872054905f1982019182116117b35760036118ba6118c2938793613725565b500154613704565b91600460206001600160a01b03601d54166040519283809263280e32fb60e01b82525afa90811561198c57889161194e575b506001600160a01b03825116856901138ccba11c9e8c000002916901138ccba11c9e8c00008304870361193a5791611935916001600160a01b039493613925565b61156c565b634e487b7160e01b8a52601160045260248afd5b90506020813d602011611984575b8161196960209383613641565b810103126119805761197a90613711565b5f6118f4565b8780fd5b3d915061195c565b6040513d8a823e3d90fd5b6119af92600191886001600160a01b03885116613987565b5f808061186e565b50875115611869565b6119d36001600160a01b0386511661387c565b4210611a4857886001600160a01b03601d54166001600160a01b03875116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af1801561059e57611a2f575b5050611860565b81611a3991613641565b611a4457885f611a28565b8880fd5b636b0ed46d60e01b8952600489fd5b81611a6191613641565b611a4457885f611498565b6333a374eb60e11b8c5260048cfd5b8a80fd5b8680fd5b503461029857602036600319011261029857600435333b1561115657604051611aab816135f5565b338152602081019160018352602091604051611ac78482613641565b85815285611ade6001600160a01b038451166137c2565b8414611ddb575b611dbd575b506001600160a01b038151168552601c8352604085206001600160a01b038251168652601c84526040862054905f198201918211610a615760036118ba611b32938693613725565b906004846001600160a01b03601d54166040519283809263280e32fb60e01b82525afa908115611db2578791611d7d575b506001600160a01b03825116846901138ccba11c9e8c000002916901138ccba11c9e8c000083048603611d695791611ba4916001600160a01b039493613925565b51168552601c8352604085208515611d61576001925b60405193611bc785613625565b8452848401908152604084019142835260608501938452805490600160401b8210156109f05790611bfd91600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b03909116928282602481875afa9182156109d1578592611d42575b5081611d38575b50611c62578280f35b60405163280e32fb60e01b8152918183600481845afa928315610962578493611cfd575b5081600491604051928380926309a69f5760e01b82525afa918215610962578492611ccf575b50508060011b908082046002149015171561091a579061169b83610914936135e8565b90809250813d8311611cf6575b611ce68183613641565b8101031261095757515f80611cac565b503d611cdc565b9092508181813d8311611d31575b611d158183613641565b8101031261099d5781611d29600492613711565b939150611c86565b503d611d0b565b905051155f611c59565b611d5a919250833d8511610597576105898183613641565b905f611c52565b600292611bba565b634e487b7160e01b89526011600452602489fd5b90508481813d8311611dab575b611d948183613641565b81010312611a7f57611da590613711565b5f611b63565b503d611d8a565b6040513d89823e3d90fd5b611dd590868080806001600160a01b03875116613987565b5f611aea565b50611def6001600160a01b0383511661387c565b4210611e6357856001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af190811561059e578291611e4e575b5050611ae5565b81611e5891613641565b61029857805f611e47565b636b0ed46d60e01b8652600486fd5b503461029857806003193601126102985760206001600160a01b0360055416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5780600c5580600d5580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd578060125580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd57600a5442106112d4576009546001600160a01b03811690816001600160601b0360a01b60085416176008556001600160601b0360a01b1660095581600a556001600160601b0360a01b601e541617601e5580f35b503461029857602036600319011261029857611f8261357f565b6001600160a01b03600254163303611fde5761032060015411611fcf576001600160a01b03168152601b60205260408120600160ff19825416179055611fc960015461376a565b60015580f35b63d646f8c560e01b8252600482fd5b636587b01b60e11b8252600482fd5b5034610298576020366003190112610298576001600160a01b036002541633036104cd57600435600c556201518042018042116104b957600d5580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5760145442106112d45760ff601354161581602060405161206c816135f5565b838152015260ff8019601354169116176013558060145580f35b503461029857806003193601126102985760206001600160a01b0360085416604051908152f35b503461029857806003193601126102985760206001600160a01b0360065416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd57600d5442106112d457600c54600b5580600c5580600d5580f35b50346102985760203660031901126102985761212b61357f565b90808092818291836001600160a01b038216808252601c602052604082205461217a575b5050506001600160a01b0360a095604051958652166020850152604084015260608301526080820152f35b94509450945050508160a06001600160a01b03601e541660246040518094819363f702720760e01b83528760048401525af19283156111f9578080948193829083926123ac575b50819581958095899a819a836121dc575b505050505061214f565b916121f08460029795936122319795613925565b828852601c6020526122058460408a20613725565b5055818752601c602052600161221e8460408a20613725565b5001558552601c60205260408520613725565b5001556001600160a01b03601d541690604051630a1ad2d160e21b8152336004820152602081602481865afa90811561059e57829161238d575b5061227c575b8080808080806121d2565b60405163280e32fb60e01b815290602082600481865afa91821561233d57819261234a575b506020600493604051948580926309a69f5760e01b82525afa92831561233d578193612309575b50828004600114831517156122f55750956122ef6001600160a01b039260a0983390613925565b95612271565b634e487b7160e01b81526011600452602490fd5b9092506020813d602011612335575b8161232560209383613641565b810103126109575751915f6122c8565b3d9150612318565b50604051903d90823e3d90fd5b9091506020813d602011612385575b8161236660209383613641565b81010312610dac5790602061237d60049493613711565b9293506122a1565b3d9150612359565b6123a6915060203d602011610597576105898183613641565b5f61226b565b9450505093505060a0813d60a0116123fe575b816123cc60a09383613641565b81010312610a8e578051926123e360208301613711565b9060408301519460806060850151940151909295935f6121c1565b3d91506123bf565b5034610298576101203660031901126102985761242161357f565b6124296135ab565b90604435916001600160a01b038316830361099d57612446613595565b9060a43567ffffffffffffffff8111610bde576124679036906004016135ba565b60c4359460e435916101043567ffffffffffffffff8111612bb6576124909036906004016135ba565b98909460ff60115416158015612baa575b612b9b57908a92916001600160a01b03601d5416604051602081019060608252600e60808201526d70726573616c655374616b696e6760901b60a08201528a151560408201526001606082015260a081526124fd60c082613641565b519020813b15610bde5785809461253289978e96604051998a9889978896637d3d171560e11b885260843593600489016136a9565b03925af1801561059e57612b86575b50506001600160a01b031691828852601b60205260ff60408920541615612b7757828852601b60205260408820600101548415612b705760028110155b612b61578415612b4c5760018101809111611d6957906125c7915b848a52601b602052600160408b200155604051936125b6856135f5565b845260208401978989523691613663565b908794845f14612956576125e46001600160a01b0385511661380d565b421061294757875115612915575b5050506001600160a01b03601d54166001600160a01b03825116813b15610a8a57849160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af180156109625784906128fe575b505080516001600160a01b03168352601c6020526040832054612889576001600160a01b0360015b915b51168352601c602052604083209115612881576001915b6040519261269784613625565b83526020830160018152604084019142835260608501938452805490600160401b82101561286d57906126cf91600182018155613725565b9490946128595751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911693602082602481885afa91821561284e57839261282d575b5081612823575b50612735578380f35b60405163280e32fb60e01b815292602084600481845afa93841561059e5782946127e0575b50906020600492604051938480926309a69f5760e01b82525afa91821561233d5781926127ac575b508160011b91808304600214901517156122f557506127a5929161169b916135e8565b5f80808380f35b9091506020813d6020116127d8575b816127c860209383613641565b810103126109575751905f612782565b3d91506127bb565b9093506020813d60201161281b575b816127fc60209383613641565b81010312610dac57906020612812600493613711565b9491925061275a565b3d91506127ef565b905051155f61272c565b61284791925060203d602011610597576105898183613641565b905f612725565b6040513d85823e3d90fd5b634e487b7160e01b86526004869052602486fd5b634e487b7160e01b87526041600452602487fd5b60029161268a565b6001600160a01b038151168352601c602052604083206001600160a01b038251168452601c6020526040842054905f1982019182116128ea576003916128ce91613725565b50015460018101809111610a61576001600160a01b0390612671565b634e487b7160e01b85526011600452602485fd5b61290791613641565b828612610a8e575f83612649565b83516001600160a01b031686610a615791600191886901138ccba11c9e8c000061293f9695613ab1565b5f80806125f2565b632df062b560e21b8652600486fd5b909293945061296e6001600160a01b038551166137c2565b600114612ab9575b85151580612ab0575b612a90575b5050506001600160a01b038151168552601c602052604085206001600160a01b038251168652601c6020526040862054905f198201918211610a61576003916129cc91613725565b5001545f198101908111612a7c57601d5460405163280e32fb60e01b8152939290602090859060049082906001600160a01b03165afa938415611db2578794612a38575b5080612a336901138ccba11c9e8c00006001600160a01b03809451168a97613925565b612673565b9093506020813d602011612a74575b81612a5460209383613641565b81010312611a7f57612a6d6001600160a01b0391613711565b9390612a10565b3d9150612a47565b634e487b7160e01b86526011600452602486fd5b612aa892600191876001600160a01b03875116613987565b5f8080612984565b5086511561297f565b612acc6001600160a01b0385511661387c565b4210612b3d57876001600160a01b03601d54166001600160a01b03865116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af1801561059e57612b28575b5050612976565b81612b3291613641565b61198057875f612b21565b636b0ed46d60e01b8852600488fd5b5f198101908111611d6957906125c791612599565b636b3af2e560e01b8952600489fd5b801561257e565b63f706524f60e01b8852600488fd5b81612b9091613641565b61198057875f612541565b63098e23b360e41b8b5260048bfd5b5060ff601354166124a1565b8980fd5b503461029857604036600319011261029857612bd461357f565b6024356001600160a01b038116809103610a8e57601a549160f883901b6001600160f81b0319161561099d576001600160a01b031690816001600160601b0360a01b6008541617600855806001600160601b0360a01b8554161784556001600160601b0360a01b601d541617601d556001600160601b0360a01b601e541617601e5560ff1916601a5580f35b503461029857602036600319011261029857612c7a61357f565b6001600160a01b03600254163303611fde576001600160a01b03166001600160601b0360a01b60065416176006556201518042018042116104b95760075580f35b50346109575760603660031901126109575760043580151581036109575760243560443567ffffffffffffffff811161095757612cfc9036906004016135ba565b90926001600160a01b0360055416918233036132d15760405192612d1f846135f5565b8352602460208401955f875260206001600160a01b03601d541660405193848092630d9a602960e31b82523360048301525afa918215613281575f9261329b575b50612d6d91923691613663565b9082156130bf57612d876001600160a01b0385511661380d565b4210610ab15785511561307d575b5050846001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e57613068575b505081516001600160a01b03168552601c6020526040852054613012576001600160a01b03835b925b51168552601c60205260408520901561300a576001925b60405193612e3785613625565b845260208401908152604084019142835260608501938452805490600160401b821015612ff65790612e6e91600182018155613725565b949094612fe25751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911691602082602481865afa918215610962578492612fc1575b5081612fb7575b50612ed4575080f35b60405163280e32fb60e01b815290602082600481845afa91821561284e578392612f78575b50906020600492604051938480926309a69f5760e01b82525afa91821561284e578392612f44575b508160011b918083046002149015171561091a5790612f41913390613925565b80f35b9091506020813d602011612f70575b81612f6060209383613641565b810103126109575751905f612f21565b3d9150612f53565b91506020823d602011612faf575b81612f9360209383613641565b81010312610a8e576020612fa8600493613711565b9250612ef9565b3d9150612f86565b905051155f612ecb565b612fdb91925060203d602011610597576105898183613641565b905f612ec4565b634e487b7160e01b87526004879052602487fd5b634e487b7160e01b88526041600452602488fd5b600292612e2a565b6001600160a01b038251168552601c602052604085206001600160a01b038351168652601c6020526040862054905f198201918211610a6157846003610a536001600160a01b039461306394613725565b612e11565b8161307291613641565b610a8a57845f612dea565b6001600160a01b03845116856901138ccba11c9e8c000002906901138ccba11c9e8c000082048703611d695791888080936130b89695613ab1565b5f80612d95565b90866130d46001600160a01b038651166137c2565b86146131fd575b806131df575b5050506001600160a01b038251168552601c602052604085206001600160a01b038351168652601c6020526040862054905f198201918211610a615760036118ba61312d938793613725565b91600460206001600160a01b03601d54166040519283809263280e32fb60e01b82525afa908115611db25787916131a5575b506001600160a01b03825116856901138ccba11c9e8c000002916901138ccba11c9e8c000083048703611d6957916131a0916001600160a01b039493613925565b612e13565b90506020813d6020116131d7575b816131c060209383613641565b81010312611a7f576131d190613711565b5f61315f565b3d91506131b3565b6131f59281806001600160a01b03885116613987565b5f80866130e1565b506132116001600160a01b0385511661387c565b421061328c576001600160a01b03601d54166001600160a01b03855116813b15610957575f9160448392604051948593849263adb6233f60e01b845260048401528160248401525af180156132815761326c575b50866130db565b6132799197505f90613641565b5f955f613265565b6040513d5f823e3d90fd5b636b0ed46d60e01b5f5260045ffd5b91506020823d6020116132c9575b816132b660209383613641565b8101031261095757612d6d915191612d60565b3d91506132a9565b630d9974d560e11b5f5260045ffd5b34610957576020366003190112610957576001600160a01b0360025416330361332f57600435600f5562015180420180421161331b57601055005b634e487b7160e01b5f52601160045260245ffd5b636587b01b60e11b5f5260045ffd5b346109575760203660031901126109575761335761357f565b6001600160a01b0360025416330361332f576001600160a01b03166001600160601b0360a01b600954161760095562015180420180421161331b57600a55005b34610957575f366003190112610957576001600160a01b0360025416330361332f5760075442106133fa57600680546005805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b038416179091551690555f600755005b6384fa847560e01b5f5260045ffd5b34610957575f366003190112610957576001600160a01b0360025416330361332f5762015180420180421161331b57601455005b34610957575f3660031901126109575760206001600160a01b035f5416604051908152f35b34610957575f366003190112610957576001600160a01b0360025416330361332f5760125442106133fa5760115460ff80821615169060ff1916176011555f6012555f80f35b34610957575f36600319011261095757600460206001600160a01b03601d541660405192838092630be428a960e11b82525afa8015613281575f906134f3575b602090604051908152f35b506020813d60201161351e575b8161350d60209383613641565b8101031261095757602090516134e8565b3d9150613500565b346109575760203660031901126109575761353f61357f565b6001600160a01b0360025416330361332f576001600160a01b03166001600160601b0360a01b600354161760035562015180420180421161331b57600455005b600435906001600160a01b038216820361095757565b606435906001600160a01b038216820361095757565b60243590811515820361095757565b9181601f840112156109575782359167ffffffffffffffff8311610957576020838186019501011161095757565b9190820180921161331b57565b6040810190811067ffffffffffffffff82111761361157604052565b634e487b7160e01b5f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761361157604052565b90601f8019910116810190811067ffffffffffffffff82111761361157604052565b92919267ffffffffffffffff8211613611576040519161368d601f8201601f191660200184613641565b829481845281830111610957578281602093845f960137010152565b959293879592946001600160a01b036101009996818095168a5216602089015260408801521660608601526080850152600160a085015260e060c08501528160e0850152848401375f828201840152601f01601f1916010190565b9190820391821161331b57565b51906001600160a01b038216820361095757565b805482101561373e575f5260205f209060021b01905f90565b634e487b7160e01b5f52603260045260245ffd5b90816020910312610957575180151581036109575790565b5f19811461331b5760010190565b60405190613785826135f5565b5f6020838281520152565b9060405161379d81613625565b6060600382948054845260018101546020850152600281015460408501520154910152565b6001600160a01b0316805f52601c60205260405f2054908115613807575f52601c60205260405f205f19820191821161331b5760039161380191613725565b50015490565b50505f90565b6001600160a01b0316805f52601c60205260405f2054801561380757815f52601c60205260405f205f19820191821161331b5761384c82600392613725565b5001546138075761386d600291613879935f52601c60205260405f20613725565b500154600b54906135e8565b90565b6001600160a01b0316805f52601c60205260405f2054805b6138c157505f52601c60205260405f2080541561373e575f52613879600260205f200154600e54906135e8565b815f52601c60205260405f205f1982019082821161331b576138e582600392613725565b500154156138fd5750801561331b575f190180613894565b6002915061391990613879935f52601c60205260405f20613725565b500154600e54906135e8565b916001600160a01b03601d5416803b15610957575f92836064926001600160a01b039485604051988997889663c898a6e960e01b885216600487015216602485015260448401525af180156132815761397b5750565b5f61398591613641565b565b9294939091946001600160a01b03601d5416926040519463280e32fb60e01b8652602086600481885afa958615613281575f96613a75575b50843b156109575760205f976001600160a01b03999589958b80986101a4976040519e8f9d8e9c8d9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528b6101648b015216606489015289608489015260a48801523060c48801521660e48601526101048501521515610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af180156132815761397b5750565b9095506020813d602011613aa9575b81613a9160209383613641565b8101031261095757613aa290613711565b945f6139bf565b3d9150613a84565b9294909591936001600160a01b03601d5416956040519563280e32fb60e01b87526020876004818b5afa968715613281575f97613bad575b50873b1561095757604051988997889763487e5a7760e11b89526001600160a01b0316600489015230602489015260448801610160905261016488015f90526001600160a01b03166064880152608487015260a48601523060c48601526001600160a01b031660e485015261010484015215156101248301526101448201610180905280518091816101848501526020016101a484015e8082016101a4015f9052601f1990601f01168101036101a401815a5f948591f180156132815761397b5750565b9096506020813d602011613be1575b81613bc960209383613641565b8101031261095757613bda90613711565b955f613ae9565b3d9150613bbc56fea26469706673582212203f36372fc2fd7e757456018c2e018229202e994c8f254a0a196ce9dda08c4d5f64736f6c63430008210033",sourceMap:"2730:42031:68:-:0;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;5514:5;2730:42031;;;5514:5;2730:42031;;;;;;;;;;;;;5553:12;2730:42031;;;5553:12;2730:42031;5632:4;2730:42031;;5606:18;2730:42031;;;5606:18;2730:42031;;;5646:19;2730:42031;;5646:19;2730:42031;-1:-1:-1;5689:22:68;2730:42031;5774:6;5734:29;2730:42031;5632:4;2730:42031;;5791:35;2730:42031;;;5791:35;2730:42031;;;;;;;;;;;-1:-1:-1;2730:42031:68;;;;;;-1:-1:-1;2730:42031:68;;;;;-1:-1:-1;2730:42031:68;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::o",linkReferences:{}},deployedBytecode:{object:"0x60806040526004361015610011575f80fd5b5f5f3560e01c8063147bf6c41461352657806317c85152146134a85780631e9c210f146134625780632096b7681461343d57806327be05571461340957806334dd90d6146133975780633900738a1461333e5780633d8ff69a146132e0578063475c31ff14612cbb578063489c5ad414612c6057806355160ea614612bba57806358b71cb414612406578063602c4fb414612111578063610a0476146120d45780636254300b146120ad57806366d161aa14612086578063681f02ac1461202a5780636b2933a214611fed5780636c58f77b14611f685780636fa7ff1714611ef15780637068dc6514611ec75780637c25faef14611e995780637f8da59114611e72578063829c67d414611a8357806383e512ab14611362578063893d20e81461133b57806389a75af8146112e35780638f4b3f28146112975780639053a2581461120557806396ae4e451461116557806399b4c3ef14610f045780639cde1d3e14610ee05780639e41123314610ebc578063a06831ba14610e80578063a84e9f2314610e44578063b384c57414610e16578063b38c950a14610dda578063b996b6c414610db0578063be10034514610cca578063c130a71914610c78578063c9d2beb114610643578063cb0900b81461061e578063cd6b5460146105a9578063d0e3692d14610508578063d5bbacd5146104dc578063dfb2b3a414610483578063e6cbd0a61461045c578063e6f2ebe41461043e578063e7dc0756146103e2578063f5c1af1c146103c4578063fa6215f3146103a6578063fabd08e81461029b5763fc2feab214610261575f80fd5b346102985760203660031901126102985760406020916001600160a01b0361028761357f565b168152601c83522054604051908152f35b80fd5b5034610298576020366003190112610298576001600160a01b036102bd61357f565b168152601c60205260408120805467ffffffffffffffff811161039257604051906102ee60208260051b0183613641565b80825260208201809385526020852085915b83831061037457868587604051928392602084019060208552518091526040840192915b818110610332575050500390f35b9193509160206080826103666001948851606080918051845260208101516020850152604081015160408501520151910152565b019401910191849392610324565b6004602060019261038485613790565b815201920192019190610300565b634e487b7160e01b83526041600452602483fd5b50346102985780600319360112610298576020600154604051908152f35b50346102985780600319360112610298576020600e54604051908152f35b50346102985780600319360112610298576103fb613778565b505061043a60405161040c816135f5565b60115460ff161515808252601254602092830190815260408051928352905192820192909252918291820190565b0390f35b50346102985780600319360112610298576020600b54604051908152f35b503461029857806003193601126102985760206001600160a01b0360095416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576201518042018042116104b95760125580f35b634e487b7160e01b82526011600452602482fd5b636587b01b60e11b8152600490fd5b50346102985760203660031901126102985760206105006104fb61357f565b61387c565b604051908152f35b50346102985760403660031901126102985761052261357f565b60206001600160a01b03604481601d541693604051948593849263d0e3692d60e01b845216600483015260243560248301525afa90811561059e5760209291610571575b506040519015158152f35b6105919150823d8411610597575b6105898183613641565b810190613752565b5f610566565b503d61057f565b6040513d84823e3d90fd5b50346102985780600319360112610298576003546001600160a01b03811680330361060f576004544210610600576001600160601b0360a01b60025416176002556001600160601b0360a01b166003558060045580f35b6384fa847560e01b8352600483fd5b632dba366760e21b8352600483fd5b503461029857806003193601126102985760206040516901138ccba11c9e8c00008152f35b5034610298578060031936011261029857333b15610c6957601754806901138ccba11c9e8c000002906901138ccba11c9e8c00008204810361091a5761068b82601854613704565b6001600160a01b03601d5416906040519063280e32fb60e01b8252602082600481865afa918215610bea578692610c29575b5060405163d4fac45d60e01b81523360048201526001600160a01b03909216602483015260208280604481015b0381865afa918215610bea578692610bf5575b5014159081610af2575b50610ade576016544203610acf57336001600160a01b036015541603610ac05760405190610734826135f5565b3382526020820191600183526020936040516107508682613641565b868152426107676001600160a01b0385511661380d565b11610ab15786855115610a92575b9150506001600160a01b03601d54166001600160a01b03835116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e57610a75575b505080516001600160a01b03168552601c84526040852054610a04576001600160a01b0382915b51168552601c8452604085206040519261080a84613625565b60018452858401908152604084019142835260608501938452805490600160401b8210156109f0579061084291600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b03909116918382602481865afa9182156109d15785926109b2575b50816109a8575b506108a7578280f35b60405163280e32fb60e01b81528281600481855afa908115610962578390859261096d575b506040516309a69f5760e01b81529192829060049082905afa92831561096257849361092e575b50508160011b918083046002149015171561091a5790610914913390613925565b5f808280f35b634e487b7160e01b83526011600452602483fd5b9080929350813d831161095b575b6109468183613641565b810103126109575751905f806108f3565b5f80fd5b503d61093c565b6040513d86823e3d90fd5b809250813d83116109a1575b6109838183613641565b8101031261099d5782610997600492613711565b916108cc565b8380fd5b503d610979565b905051155f61089e565b6109ca919250843d8611610597576105898183613641565b905f610897565b6040513d87823e3d90fd5b634e487b7160e01b88526004889052602488fd5b634e487b7160e01b89526041600452602489fd5b6001600160a01b038151168552601c8452604085206001600160a01b038251168652601c85526040862054905f198201918211610a6157836003610a536001600160a01b0394610a5b94613725565b5001546135e8565b916107f1565b634e487b7160e01b87526011600452602487fd5b81610a7f91613641565b610a8a57845f6107ca565b8480fd5b8280fd5b808080610aa9956001600160a01b03885116613ab1565b5f8086610775565b632df062b560e21b8752600487fd5b634cd87fb560e01b8352600483fd5b635ac7600960e11b8352600483fd5b630387e0bb60e21b83526004829052602483fd5b9050610b00836019546135e8565b60405163280e32fb60e01b8152602081600481865afa908115610bea578691610ba4575b5060405163d4fac45d60e01b81523060048201526001600160a01b0390911660248201529160209083908180604481015b03915afa9182156109d1578592610b70575b5014155f610707565b9091506020813d602011610b9c575b81610b8c60209383613641565b810103126109575751905f610b67565b3d9150610b7f565b90506020813d602011610be2575b81610bbf60209383613641565b81010312610bde57610b5592610bd6602092613711565b915092610b24565b8580fd5b3d9150610bb2565b6040513d88823e3d90fd5b9091506020813d602011610c21575b81610c1160209383613641565b810103126109575751905f6106fd565b3d9150610c04565b91506020823d602011610c61575b81610c4460209383613641565b81010312610bde576020610c5a6106ea93613711565b92506106bd565b3d9150610c37565b634a340e9d60e01b8152600490fd5b5034610298576020366003190112610298576040906001826001600160a01b03610ca061357f565b1692838152601b60205260ff8282205416938152601b602052200154825191151582526020820152f35b50346102985760203660031901126102985760043567ffffffffffffffff8111610dac5736602382011215610dac5780600401359067ffffffffffffffff8211610a8e573660248360051b83010111610a8e576001600160a01b03600254163303610d9d57825b82811015610d995761032060015411610d8a5760248160051b83010135906001600160a01b038216809203610a8a576001918552601b602052604085208260ff19825416179055610d82825461376a565b825501610d31565b63d646f8c560e01b8452600484fd5b8380f35b636587b01b60e11b8352600483fd5b5080fd5b50346102985780600319360112610298576001600160a01b036002541633036104cd578060145580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b600354166003558060045580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5780600f558060105580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b600654166006558060075580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b6009541660095580600a5580f35b5034610298576020366003190112610298576020610500610edb61357f565b61380d565b5034610298576020366003190112610298576020610500610eff61357f565b6137c2565b503461029857602036600319011261029857600435333b15611156576001600160a01b03601d5416906040519063280e32fb60e01b8252602082600481865afa918215610962578492611116575b5060405163d4fac45d60e01b81523360048201526001600160a01b03909216602483015260208280604481015b0381865afa9182156109625784926110e2575b5060405163280e32fb60e01b8152602081600481875afa9081156109d15785916110a0575b5060405163d4fac45d60e01b81523060048201526001600160a01b0390911660248201529260209084908180604481015b03915afa92831561096257849361106c575b5060405160a0810181811067ffffffffffffffff8211176110585784916080916040523381524260208201528360408201528460608201520152336001600160601b0360a01b60155416176015554260165560175560185560195580f35b634e487b7160e01b86526041600452602486fd5b9092506020813d602011611098575b8161108860209383613641565b810103126109575751915f610ffa565b3d915061107b565b90506020813d6020116110da575b816110bb60209383613641565b81010312610a8a57610fe8936110d2602092613711565b915093610fb7565b3d91506110ae565b9091506020813d60201161110e575b816110fe60209383613641565b810103126109575751905f610f92565b3d91506110f1565b91506020823d60201161114e575b8161113160209383613641565b8101031261099d576020611147610f7f93613711565b9250610f52565b3d9150611124565b634a340e9d60e01b8252600482fd5b503461029857806003193601126102985760049060206001600160a01b03601d54166040519384809263280e32fb60e01b82525afa9081156111f95780916111bc575b6020826001600160a01b0360405191168152f35b90506020823d6020116111f1575b816111d760209383613641565b8101031261029857506111eb602091613711565b5f6111a8565b3d91506111ca565b604051903d90823e3d90fd5b50346102985760403660031901126102985761126a6112646080926001600160a01b0361123061357f565b82606060405161123f81613625565b8281528260208201528260408201520152168152601c60205260406024359120613725565b50613790565b6112956040518092606080918051845260208101516020850152604081015160408501520151910152565bf35b50346102985780600319360112610298576001600160a01b036002541633036104cd5760105442106112d457600f54600e5580600f558060105580f35b6384fa847560e01b8152600490fd5b50346102985780600319360112610298576112fc613778565b505061043a60405161130d816135f5565b60135460ff161515808252601454602092830190815260408051928352905192820192909252918291820190565b503461029857806003193601126102985760206001600160a01b0360025416604051908152f35b5034610298576101403660031901126102985761137d61357f565b6113856135ab565b604435611390613595565b92608435926001600160a01b0384168403610bde5760c43567ffffffffffffffff8111611a7f576113c59036906004016135ba565b60e435959161010435916101243567ffffffffffffffff8111611a7b576113f09036906004016135ba565b99909260ff6013541615611a6c57908b92916001600160a01b03601d5416604051602081019060608252600d60808201526c7075626c69635374616b696e6760981b60a08201528a151560408201528c606082015260a0815261145460c082613641565b519020813b15610bde578580946114898d978c96604051998a9889978896637d3d171560e11b885260a43593600489016136a9565b03925af1801561059e57611a57575b50506114c5906001600160a01b03604051966114b3886135f5565b16865260208601988a8a523691613663565b918315611843576114df6001600160a01b0386511661380d565b4210611834578751156117dc575b505050856001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e576117c7575b505081516001600160a01b03168652601c602052604086205461175d576001600160a01b03835b925b51168652601c602052604086209015611755576001925b6040519361159085613625565b845260208401908152604084019142835260608501938452805490600160401b8210156109f057906115c791600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911692602082602481875afa9182156109d1578592611734575b508161172a575b5061162d578280f35b60405163280e32fb60e01b815291602083600481845afa9283156109625784936116e9575b506020600491604051928380926309a69f5760e01b82525afa9081156109625784916116b7575b508060011b90808204600214901517156116a357610914929161169b916135e8565b903390613925565b634e487b7160e01b84526011600452602484fd5b90506020813d6020116116e1575b816116d260209383613641565b8101031261095757515f611679565b3d91506116c5565b9092506020813d602011611722575b8161170560209383613641565b8101031261099d57602061171a600492613711565b939150611652565b3d91506116f8565b905051155f611624565b61174e91925060203d602011610597576105898183613641565b905f61161d565b600292611583565b6001600160a01b038251168652601c602052604086206001600160a01b038351168752601c6020526040872054905f1982019182116117b357846003610a536001600160a01b03946117ae94613725565b61156a565b634e487b7160e01b88526011600452602488fd5b816117d191613641565b610bde57855f611543565b6001600160a01b03855116866901138ccba11c9e8c000002906901138ccba11c9e8c000082048803611820579188611818959492600194613ab1565b5f80806114ed565b634e487b7160e01b8b52601160045260248bfd5b632df062b560e21b8952600489fd5b6118596001600160a01b038694939451166137c2565b86146119c0575b861515806119b7575b611997575b5050506001600160a01b038251168652601c602052604086206001600160a01b038351168752601c6020526040872054905f1982019182116117b35760036118ba6118c2938793613725565b500154613704565b91600460206001600160a01b03601d54166040519283809263280e32fb60e01b82525afa90811561198c57889161194e575b506001600160a01b03825116856901138ccba11c9e8c000002916901138ccba11c9e8c00008304870361193a5791611935916001600160a01b039493613925565b61156c565b634e487b7160e01b8a52601160045260248afd5b90506020813d602011611984575b8161196960209383613641565b810103126119805761197a90613711565b5f6118f4565b8780fd5b3d915061195c565b6040513d8a823e3d90fd5b6119af92600191886001600160a01b03885116613987565b5f808061186e565b50875115611869565b6119d36001600160a01b0386511661387c565b4210611a4857886001600160a01b03601d54166001600160a01b03875116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af1801561059e57611a2f575b5050611860565b81611a3991613641565b611a4457885f611a28565b8880fd5b636b0ed46d60e01b8952600489fd5b81611a6191613641565b611a4457885f611498565b6333a374eb60e11b8c5260048cfd5b8a80fd5b8680fd5b503461029857602036600319011261029857600435333b1561115657604051611aab816135f5565b338152602081019160018352602091604051611ac78482613641565b85815285611ade6001600160a01b038451166137c2565b8414611ddb575b611dbd575b506001600160a01b038151168552601c8352604085206001600160a01b038251168652601c84526040862054905f198201918211610a615760036118ba611b32938693613725565b906004846001600160a01b03601d54166040519283809263280e32fb60e01b82525afa908115611db2578791611d7d575b506001600160a01b03825116846901138ccba11c9e8c000002916901138ccba11c9e8c000083048603611d695791611ba4916001600160a01b039493613925565b51168552601c8352604085208515611d61576001925b60405193611bc785613625565b8452848401908152604084019142835260608501938452805490600160401b8210156109f05790611bfd91600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b03909116928282602481875afa9182156109d1578592611d42575b5081611d38575b50611c62578280f35b60405163280e32fb60e01b8152918183600481845afa928315610962578493611cfd575b5081600491604051928380926309a69f5760e01b82525afa918215610962578492611ccf575b50508060011b908082046002149015171561091a579061169b83610914936135e8565b90809250813d8311611cf6575b611ce68183613641565b8101031261095757515f80611cac565b503d611cdc565b9092508181813d8311611d31575b611d158183613641565b8101031261099d5781611d29600492613711565b939150611c86565b503d611d0b565b905051155f611c59565b611d5a919250833d8511610597576105898183613641565b905f611c52565b600292611bba565b634e487b7160e01b89526011600452602489fd5b90508481813d8311611dab575b611d948183613641565b81010312611a7f57611da590613711565b5f611b63565b503d611d8a565b6040513d89823e3d90fd5b611dd590868080806001600160a01b03875116613987565b5f611aea565b50611def6001600160a01b0383511661387c565b4210611e6357856001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af190811561059e578291611e4e575b5050611ae5565b81611e5891613641565b61029857805f611e47565b636b0ed46d60e01b8652600486fd5b503461029857806003193601126102985760206001600160a01b0360055416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5780600c5580600d5580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd578060125580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd57600a5442106112d4576009546001600160a01b03811690816001600160601b0360a01b60085416176008556001600160601b0360a01b1660095581600a556001600160601b0360a01b601e541617601e5580f35b503461029857602036600319011261029857611f8261357f565b6001600160a01b03600254163303611fde5761032060015411611fcf576001600160a01b03168152601b60205260408120600160ff19825416179055611fc960015461376a565b60015580f35b63d646f8c560e01b8252600482fd5b636587b01b60e11b8252600482fd5b5034610298576020366003190112610298576001600160a01b036002541633036104cd57600435600c556201518042018042116104b957600d5580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5760145442106112d45760ff601354161581602060405161206c816135f5565b838152015260ff8019601354169116176013558060145580f35b503461029857806003193601126102985760206001600160a01b0360085416604051908152f35b503461029857806003193601126102985760206001600160a01b0360065416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd57600d5442106112d457600c54600b5580600c5580600d5580f35b50346102985760203660031901126102985761212b61357f565b90808092818291836001600160a01b038216808252601c602052604082205461217a575b5050506001600160a01b0360a095604051958652166020850152604084015260608301526080820152f35b94509450945050508160a06001600160a01b03601e541660246040518094819363f702720760e01b83528760048401525af19283156111f9578080948193829083926123ac575b50819581958095899a819a836121dc575b505050505061214f565b916121f08460029795936122319795613925565b828852601c6020526122058460408a20613725565b5055818752601c602052600161221e8460408a20613725565b5001558552601c60205260408520613725565b5001556001600160a01b03601d541690604051630a1ad2d160e21b8152336004820152602081602481865afa90811561059e57829161238d575b5061227c575b8080808080806121d2565b60405163280e32fb60e01b815290602082600481865afa91821561233d57819261234a575b506020600493604051948580926309a69f5760e01b82525afa92831561233d578193612309575b50828004600114831517156122f55750956122ef6001600160a01b039260a0983390613925565b95612271565b634e487b7160e01b81526011600452602490fd5b9092506020813d602011612335575b8161232560209383613641565b810103126109575751915f6122c8565b3d9150612318565b50604051903d90823e3d90fd5b9091506020813d602011612385575b8161236660209383613641565b81010312610dac5790602061237d60049493613711565b9293506122a1565b3d9150612359565b6123a6915060203d602011610597576105898183613641565b5f61226b565b9450505093505060a0813d60a0116123fe575b816123cc60a09383613641565b81010312610a8e578051926123e360208301613711565b9060408301519460806060850151940151909295935f6121c1565b3d91506123bf565b5034610298576101203660031901126102985761242161357f565b6124296135ab565b90604435916001600160a01b038316830361099d57612446613595565b9060a43567ffffffffffffffff8111610bde576124679036906004016135ba565b60c4359460e435916101043567ffffffffffffffff8111612bb6576124909036906004016135ba565b98909460ff60115416158015612baa575b612b9b57908a92916001600160a01b03601d5416604051602081019060608252600e60808201526d70726573616c655374616b696e6760901b60a08201528a151560408201526001606082015260a081526124fd60c082613641565b519020813b15610bde5785809461253289978e96604051998a9889978896637d3d171560e11b885260843593600489016136a9565b03925af1801561059e57612b86575b50506001600160a01b031691828852601b60205260ff60408920541615612b7757828852601b60205260408820600101548415612b705760028110155b612b61578415612b4c5760018101809111611d6957906125c7915b848a52601b602052600160408b200155604051936125b6856135f5565b845260208401978989523691613663565b908794845f14612956576125e46001600160a01b0385511661380d565b421061294757875115612915575b5050506001600160a01b03601d54166001600160a01b03825116813b15610a8a57849160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af180156109625784906128fe575b505080516001600160a01b03168352601c6020526040832054612889576001600160a01b0360015b915b51168352601c602052604083209115612881576001915b6040519261269784613625565b83526020830160018152604084019142835260608501938452805490600160401b82101561286d57906126cf91600182018155613725565b9490946128595751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911693602082602481885afa91821561284e57839261282d575b5081612823575b50612735578380f35b60405163280e32fb60e01b815292602084600481845afa93841561059e5782946127e0575b50906020600492604051938480926309a69f5760e01b82525afa91821561233d5781926127ac575b508160011b91808304600214901517156122f557506127a5929161169b916135e8565b5f80808380f35b9091506020813d6020116127d8575b816127c860209383613641565b810103126109575751905f612782565b3d91506127bb565b9093506020813d60201161281b575b816127fc60209383613641565b81010312610dac57906020612812600493613711565b9491925061275a565b3d91506127ef565b905051155f61272c565b61284791925060203d602011610597576105898183613641565b905f612725565b6040513d85823e3d90fd5b634e487b7160e01b86526004869052602486fd5b634e487b7160e01b87526041600452602487fd5b60029161268a565b6001600160a01b038151168352601c602052604083206001600160a01b038251168452601c6020526040842054905f1982019182116128ea576003916128ce91613725565b50015460018101809111610a61576001600160a01b0390612671565b634e487b7160e01b85526011600452602485fd5b61290791613641565b828612610a8e575f83612649565b83516001600160a01b031686610a615791600191886901138ccba11c9e8c000061293f9695613ab1565b5f80806125f2565b632df062b560e21b8652600486fd5b909293945061296e6001600160a01b038551166137c2565b600114612ab9575b85151580612ab0575b612a90575b5050506001600160a01b038151168552601c602052604085206001600160a01b038251168652601c6020526040862054905f198201918211610a61576003916129cc91613725565b5001545f198101908111612a7c57601d5460405163280e32fb60e01b8152939290602090859060049082906001600160a01b03165afa938415611db2578794612a38575b5080612a336901138ccba11c9e8c00006001600160a01b03809451168a97613925565b612673565b9093506020813d602011612a74575b81612a5460209383613641565b81010312611a7f57612a6d6001600160a01b0391613711565b9390612a10565b3d9150612a47565b634e487b7160e01b86526011600452602486fd5b612aa892600191876001600160a01b03875116613987565b5f8080612984565b5086511561297f565b612acc6001600160a01b0385511661387c565b4210612b3d57876001600160a01b03601d54166001600160a01b03865116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af1801561059e57612b28575b5050612976565b81612b3291613641565b61198057875f612b21565b636b0ed46d60e01b8852600488fd5b5f198101908111611d6957906125c791612599565b636b3af2e560e01b8952600489fd5b801561257e565b63f706524f60e01b8852600488fd5b81612b9091613641565b61198057875f612541565b63098e23b360e41b8b5260048bfd5b5060ff601354166124a1565b8980fd5b503461029857604036600319011261029857612bd461357f565b6024356001600160a01b038116809103610a8e57601a549160f883901b6001600160f81b0319161561099d576001600160a01b031690816001600160601b0360a01b6008541617600855806001600160601b0360a01b8554161784556001600160601b0360a01b601d541617601d556001600160601b0360a01b601e541617601e5560ff1916601a5580f35b503461029857602036600319011261029857612c7a61357f565b6001600160a01b03600254163303611fde576001600160a01b03166001600160601b0360a01b60065416176006556201518042018042116104b95760075580f35b50346109575760603660031901126109575760043580151581036109575760243560443567ffffffffffffffff811161095757612cfc9036906004016135ba565b90926001600160a01b0360055416918233036132d15760405192612d1f846135f5565b8352602460208401955f875260206001600160a01b03601d541660405193848092630d9a602960e31b82523360048301525afa918215613281575f9261329b575b50612d6d91923691613663565b9082156130bf57612d876001600160a01b0385511661380d565b4210610ab15785511561307d575b5050846001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e57613068575b505081516001600160a01b03168552601c6020526040852054613012576001600160a01b03835b925b51168552601c60205260408520901561300a576001925b60405193612e3785613625565b845260208401908152604084019142835260608501938452805490600160401b821015612ff65790612e6e91600182018155613725565b949094612fe25751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911691602082602481865afa918215610962578492612fc1575b5081612fb7575b50612ed4575080f35b60405163280e32fb60e01b815290602082600481845afa91821561284e578392612f78575b50906020600492604051938480926309a69f5760e01b82525afa91821561284e578392612f44575b508160011b918083046002149015171561091a5790612f41913390613925565b80f35b9091506020813d602011612f70575b81612f6060209383613641565b810103126109575751905f612f21565b3d9150612f53565b91506020823d602011612faf575b81612f9360209383613641565b81010312610a8e576020612fa8600493613711565b9250612ef9565b3d9150612f86565b905051155f612ecb565b612fdb91925060203d602011610597576105898183613641565b905f612ec4565b634e487b7160e01b87526004879052602487fd5b634e487b7160e01b88526041600452602488fd5b600292612e2a565b6001600160a01b038251168552601c602052604085206001600160a01b038351168652601c6020526040862054905f198201918211610a6157846003610a536001600160a01b039461306394613725565b612e11565b8161307291613641565b610a8a57845f612dea565b6001600160a01b03845116856901138ccba11c9e8c000002906901138ccba11c9e8c000082048703611d695791888080936130b89695613ab1565b5f80612d95565b90866130d46001600160a01b038651166137c2565b86146131fd575b806131df575b5050506001600160a01b038251168552601c602052604085206001600160a01b038351168652601c6020526040862054905f198201918211610a615760036118ba61312d938793613725565b91600460206001600160a01b03601d54166040519283809263280e32fb60e01b82525afa908115611db25787916131a5575b506001600160a01b03825116856901138ccba11c9e8c000002916901138ccba11c9e8c000083048703611d6957916131a0916001600160a01b039493613925565b612e13565b90506020813d6020116131d7575b816131c060209383613641565b81010312611a7f576131d190613711565b5f61315f565b3d91506131b3565b6131f59281806001600160a01b03885116613987565b5f80866130e1565b506132116001600160a01b0385511661387c565b421061328c576001600160a01b03601d54166001600160a01b03855116813b15610957575f9160448392604051948593849263adb6233f60e01b845260048401528160248401525af180156132815761326c575b50866130db565b6132799197505f90613641565b5f955f613265565b6040513d5f823e3d90fd5b636b0ed46d60e01b5f5260045ffd5b91506020823d6020116132c9575b816132b660209383613641565b8101031261095757612d6d915191612d60565b3d91506132a9565b630d9974d560e11b5f5260045ffd5b34610957576020366003190112610957576001600160a01b0360025416330361332f57600435600f5562015180420180421161331b57601055005b634e487b7160e01b5f52601160045260245ffd5b636587b01b60e11b5f5260045ffd5b346109575760203660031901126109575761335761357f565b6001600160a01b0360025416330361332f576001600160a01b03166001600160601b0360a01b600954161760095562015180420180421161331b57600a55005b34610957575f366003190112610957576001600160a01b0360025416330361332f5760075442106133fa57600680546005805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b038416179091551690555f600755005b6384fa847560e01b5f5260045ffd5b34610957575f366003190112610957576001600160a01b0360025416330361332f5762015180420180421161331b57601455005b34610957575f3660031901126109575760206001600160a01b035f5416604051908152f35b34610957575f366003190112610957576001600160a01b0360025416330361332f5760125442106133fa5760115460ff80821615169060ff1916176011555f6012555f80f35b34610957575f36600319011261095757600460206001600160a01b03601d541660405192838092630be428a960e11b82525afa8015613281575f906134f3575b602090604051908152f35b506020813d60201161351e575b8161350d60209383613641565b8101031261095757602090516134e8565b3d9150613500565b346109575760203660031901126109575761353f61357f565b6001600160a01b0360025416330361332f576001600160a01b03166001600160601b0360a01b600354161760035562015180420180421161331b57600455005b600435906001600160a01b038216820361095757565b606435906001600160a01b038216820361095757565b60243590811515820361095757565b9181601f840112156109575782359167ffffffffffffffff8311610957576020838186019501011161095757565b9190820180921161331b57565b6040810190811067ffffffffffffffff82111761361157604052565b634e487b7160e01b5f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761361157604052565b90601f8019910116810190811067ffffffffffffffff82111761361157604052565b92919267ffffffffffffffff8211613611576040519161368d601f8201601f191660200184613641565b829481845281830111610957578281602093845f960137010152565b959293879592946001600160a01b036101009996818095168a5216602089015260408801521660608601526080850152600160a085015260e060c08501528160e0850152848401375f828201840152601f01601f1916010190565b9190820391821161331b57565b51906001600160a01b038216820361095757565b805482101561373e575f5260205f209060021b01905f90565b634e487b7160e01b5f52603260045260245ffd5b90816020910312610957575180151581036109575790565b5f19811461331b5760010190565b60405190613785826135f5565b5f6020838281520152565b9060405161379d81613625565b6060600382948054845260018101546020850152600281015460408501520154910152565b6001600160a01b0316805f52601c60205260405f2054908115613807575f52601c60205260405f205f19820191821161331b5760039161380191613725565b50015490565b50505f90565b6001600160a01b0316805f52601c60205260405f2054801561380757815f52601c60205260405f205f19820191821161331b5761384c82600392613725565b5001546138075761386d600291613879935f52601c60205260405f20613725565b500154600b54906135e8565b90565b6001600160a01b0316805f52601c60205260405f2054805b6138c157505f52601c60205260405f2080541561373e575f52613879600260205f200154600e54906135e8565b815f52601c60205260405f205f1982019082821161331b576138e582600392613725565b500154156138fd5750801561331b575f190180613894565b6002915061391990613879935f52601c60205260405f20613725565b500154600e54906135e8565b916001600160a01b03601d5416803b15610957575f92836064926001600160a01b039485604051988997889663c898a6e960e01b885216600487015216602485015260448401525af180156132815761397b5750565b5f61398591613641565b565b9294939091946001600160a01b03601d5416926040519463280e32fb60e01b8652602086600481885afa958615613281575f96613a75575b50843b156109575760205f976001600160a01b03999589958b80986101a4976040519e8f9d8e9c8d9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528b6101648b015216606489015289608489015260a48801523060c48801521660e48601526101048501521515610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af180156132815761397b5750565b9095506020813d602011613aa9575b81613a9160209383613641565b8101031261095757613aa290613711565b945f6139bf565b3d9150613a84565b9294909591936001600160a01b03601d5416956040519563280e32fb60e01b87526020876004818b5afa968715613281575f97613bad575b50873b1561095757604051988997889763487e5a7760e11b89526001600160a01b0316600489015230602489015260448801610160905261016488015f90526001600160a01b03166064880152608487015260a48601523060c48601526001600160a01b031660e485015261010484015215156101248301526101448201610180905280518091816101848501526020016101a484015e8082016101a4015f9052601f1990601f01168101036101a401815a5f948591f180156132815761397b5750565b9096506020813d602011613be1575b81613bc960209383613641565b8101031261095757613bda90613711565b955f613ae9565b3d9150613bbc56fea26469706673582212203f36372fc2fd7e757456018c2e018229202e994c8f254a0a196ce9dda08c4d5f64736f6c63430008210033",sourceMap:"2730:42031:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;43617:16;2730:42031;43617:16;;;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;44423:31;2730:42031;44423:31;;;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;;;;36160:11;2730:42031;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;;;;35718:11;2730:42031;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;;;;;;;;;;;;;;;42441:18;2730:42031;;;;;;;;;;;;;;;;;;;;;39148:29;2730:42031;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;43309:19;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39547:22;2730:42031;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;42134:25:68;2730:42031;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;32551:15;2796:6;32551:15;;2796:6;;;32504:32;2796:6;2730:42031;;2796:6;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;;;;4786:64;-1:-1:-1;;;4826:24:68;;2730:42031;;4826:24;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;-1:-1:-1;;;;;44069:37:68;2730:42031;44069:4;2730:42031;;;;;;;;;;;;;44069:37;;2730:42031;;44069:37;;2730:42031;;;;;;;44069:37;;;;;;;2730:42031;44069:37;;;;2730:42031;;;;;;;;;;44069:37;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2730:42031;;;;;;;;;;;;;;;;;;;;;;26402:14;2730:42031;-1:-1:-1;;;;;2730:42031:68;;26388:10;;:28;26384:85;;2730:42031;;26505:15;-1:-1:-1;26480:99:68;;-1:-1:-1;;;;;2730:42031:68;;26402:5;2730:42031;;;26402:5;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;26402:14;2730:42031;2796:6;2730:42031;2796:6;2730:42031;;26480:99;-1:-1:-1;;;26541:38:68;;2730:42031;33248:38;26541;26384:85;-1:-1:-1;;;26437:32:68;;2730:42031;26437:32;;2730:42031;;;;;;;;;;;;;;;;3219:17;2730:42031;;;;;;;;;;;;;;;;5021:10;5042:132;5188:9;5184:50;;14165:34;2730:42031;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;14227:84;2730:42031;14227:45;2730:42031;14227:84;:::i;:::-;-1:-1:-1;;;;;14327:4:68;2730:42031;;;;;;;;;14355:31;;;;2730:42031;14355:31;;;;;;;;;;;;;2730:42031;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;14327:60:68;;5021:10;2730:42031;14327:60;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;14355:31;2730:42031;;;;;14327:60;;;;;;;;;;;;;;;2730:42031;14227:160;;;:339;;;;2730:42031;14210:485;;;14710:28;2730:42031;14742:15;14710:47;14706:107;;5021:10;-1:-1:-1;;;;;14165:18:68;2730:42031;;14828:40;14824:88;;2730:42031;;;;;;:::i;:::-;5021:10;2730:42031;;14355:31;14955:64;;2730:42031;14710:28;2730:42031;;;;;;;;;;:::i;:::-;;;;14742:15;17276:47;-1:-1:-1;;;;;2730:42031:68;;;17276:47;:::i;:::-;:81;17255:159;;2730:42031;;;;17429:337;;2730:42031;;;;-1:-1:-1;;;;;14327:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;17781:39;;;;;2730:42031;;17781:39;2730:42031;;;;;;;;;;;;17781:39;;2730:42031;17781:39;;2730:42031;;;;;;;;17781:39;;;;;;;;2730:42031;-1:-1:-1;;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;17853:11;2730:42031;;;;;;17853:230;;-1:-1:-1;;;;;17853:230:68;;;2730:42031;;;;17853:11;2730:42031;;;;;;;;;;;:::i;:::-;14710:28;2730:42031;;19227:298;;;2730:42031;;;;19227:298;;14742:15;;2730:42031;;19227:298;;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;14710:28;2730:42031;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;14710:28;2730:42031;;2796:6;2730:42031;;;;2796:6;2730:42031;;;;;2796:6;14327:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;5021:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;19550:32;2730:42031;;;;19550:32;;;;;;;;;;;17853:230;19550:55;;;;17853:230;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;;2730:42031;;;19648:31;;;;;;;;;;;;;;19546:249;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;19726:22:68;;2730:42031;;;;;;;;19726:22;;;;;;;;;;;19546:249;2730:42031;;;14710:28;2730:42031;;;;;;;;;;;;;19725:45;;;5021:10;19725:45;;:::i;:::-;19546:249;;2730:42031;;;;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;2730:42031;2796:6;;19726:22;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;2730:42031;-1:-1:-1;2730:42031:68;;19726:22;;;;;;2730:42031;;;;;;;;;19648:31;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;;;:::i;:::-;19648:31;;;2730:42031;;;;19648:31;;;;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;2730:42031;;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;2796:6;2730:42031;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;17853:230;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;;;;;;;;;;;;17946:107;:119;:107;-1:-1:-1;;;;;17946:107:68;:137;:107;;:::i;:::-;:119;;2730:42031;17946:137;:::i;:::-;17853:230;;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;2730:42031;2796:6;;17781:39;;;;;:::i;:::-;2730:42031;;17781:39;;;;2730:42031;;;;17781:39;2730:42031;;;17429:337;2730:42031;;;17736:12;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;17736:12;:::i;:::-;17429:337;;;;;17255:159;-1:-1:-1;;;17379:35:68;;2730:42031;17379:35;;14824:88;-1:-1:-1;;;14889:23:68;;2730:42031;14889:23;;14706:107;-1:-1:-1;;;14778:35:68;;2730:42031;14778:35;;14210:485;-1:-1:-1;;;14596:99:68;;2730:42031;;;;;14596:99;;14227:339;2730:42031;;14403:84;2730:42031;14403:45;2730:42031;14403:84;:::i;:::-;2730:42031;;-1:-1:-1;;;14534:31:68;;14355;2730:42031;;;14534:31;;;;;;;;;;;;14227:339;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;14503:63:68;;14527:4;2730:42031;14503:63;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;14355:31;;2730:42031;;;;;;;14503:63;;;;;;;;;;;;;;14227:339;14403:163;;;14227:339;;;14503:63;;;;14355:31;14503:63;;14355:31;14503:63;;;;;;2730:42031;14503:63;;;:::i;:::-;;;2730:42031;;;;;14503:63;;;;;;;-1:-1:-1;14503:63:68;;14534:31;;;14355;14534;;14355;14534;;;;;;14355;14534;;;:::i;:::-;;;2730:42031;;;;14503:63;2730:42031;;14355:31;2730:42031;;:::i;:::-;14534:31;;;;;2730:42031;;;;14534:31;;;-1:-1:-1;14534:31:68;;;2730:42031;;;;;;;;;14327:60;;;;14355:31;14327:60;;14355:31;14327:60;;;;;;2730:42031;14327:60;;;:::i;:::-;;;2730:42031;;;;;14327:60;;;;;;;-1:-1:-1;14327:60:68;;14355:31;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;14355:31;2730:42031;14327:60;2730:42031;;:::i;:::-;14355:31;;;;;;;-1:-1:-1;14355:31:68;;5184:50;-1:-1:-1;;;5206:28:68;;2730:42031;;5206:28;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;41431:41;2730:42031;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;;;;;;41382:17;2730:42031;;;;;;;;;;;41382:17;2730:42031;;;41431:41;2730:42031;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;25238:13;25274:3;25253:19;;;;;;2994:3;2730:42031;;25297:41;25293:105;;2730:42031;;;;;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;25413:17;2730:42031;;;;;;;;;;;;;;25472:20;2730:42031;;25472:20;:::i;:::-;2796:6;;2730:42031;25238:13;;25293:105;-1:-1:-1;;;25363:35:68;;2730:42031;24762:35;25363;25253:19;;2730:42031;;4786:64;-1:-1:-1;;;4826:24:68;;2730:42031;4826:24;;2730:42031;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;31655:31;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;;26098:14;2730:42031;;26098:14;2730:42031;2796:6;2730:42031;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;30349:38;2796:6;;30401:42;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;;27371:21;2730:42031;;27371:21;2730:42031;2796:6;27415:25;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;;34119:25;2730:42031;;34119:25;2730:42031;2796:6;34167:29;2796:6;2730:42031;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;5021:10;5042:132;5188:9;5184:50;;-1:-1:-1;;;;;12260:4:68;2730:42031;;;;;;;;;12321:31;;2730:42031;12321:31;2730:42031;12321:31;;;;;;;;;;;;;2730:42031;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;12260:106:68;;5021:10;2730:42031;12260:106;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;12260:106;;;;;;;;;;;;;;;2730:42031;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;12472:31:68;;2730:42031;;;;12472:31;;;;;;;;;;;;2730:42031;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;12408:109:68;;12449:4;2730:42031;12408:109;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;12408:109;;;;;;;;;;;;;;2730:42031;;;;;;;;;;;;;;;;;;12068:460;2730:42031;;;5021:10;2730:42031;;12157:15;2730:42031;12068:460;;2730:42031;12068:460;2730:42031;12068:460;;2730:42031;12068:460;;;;2730:42031;12068:460;2730:42031;5021:10;-1:-1:-1;;;;;2730:42031:68;;12047:481;2730:42031;;;12047:481;2730:42031;12157:15;2730:42031;2796:6;2730:42031;2796:6;2730:42031;2796:6;2730:42031;2796:6;2730:42031;;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;12408:109;;;;2730:42031;12408:109;;2730:42031;12408:109;;;;;;2730:42031;12408:109;;;:::i;:::-;;;2730:42031;;;;;12408:109;;;;;;;-1:-1:-1;12408:109:68;;12472:31;;;2730:42031;12472:31;;2730:42031;12472:31;;;;;;2730:42031;12472:31;;;:::i;:::-;;;2730:42031;;;;12408:109;2730:42031;;;;;:::i;:::-;12472:31;;;;;;;;-1:-1:-1;12472:31:68;;12260:106;;;;2730:42031;12260:106;;2730:42031;12260:106;;;;;;2730:42031;12260:106;;;:::i;:::-;;;2730:42031;;;;;12260:106;;;;;;;-1:-1:-1;12260:106:68;;12321:31;;;2730:42031;12321:31;;2730:42031;12321:31;;;;;;2730:42031;12321:31;;;:::i;:::-;;;2730:42031;;;;;;12260:106;2730:42031;;:::i;:::-;12321:31;;;;;;;-1:-1:-1;12321:31:68;;5184:50;-1:-1:-1;;;5206:28:68;;2730:42031;5206:28;;2730:42031;;;;;;;;;;;;;;;44423:31;-1:-1:-1;;;;;44423:4:68;2730:42031;;;;;;;;;;;44423:31;;;;;;;;;;;;;2730:42031;44423:31;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;44423:31;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;44423:31;2730:42031;;:::i;:::-;44423:31;;;;;;-1:-1:-1;44423:31:68;;;2730:42031;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;36724:29;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;36724:11;2730:42031;;;;;;;36724:29;:::i;:::-;2730:42031;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;30728:42;2730:42031;30773:15;-1:-1:-1;30724:123:68;;30898:51;2730:42031;30728:29;2796:6;;30898:51;2796:6;;30728:42;2796:6;2730:42031;;30724:123;-1:-1:-1;;;30809:38:68;;2730:42031;;30809:38;2730:42031;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;42874:18;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;44739:5:68;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;10012:18;2730:42031;;10011:24;10007:66;;2730:42031;;;;-1:-1:-1;;;;;10084:4:68;2730:42031;;;;;1624:55:103;;2730:42031:68;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;;;;1624:55:103;;;2730:42031:68;1624:55:103;;:::i;:::-;2730:42031:68;1614:66:103;;10084:241:68;;;;;2730:42031;;;10084:241;2730:42031;;;;;;;;;;;;;;;;10084:241;;2730:42031;;10084:241;2730:42031;10084:241;;;:::i;:::-;;;;;;;;;;;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::i;:::-;;;;;10368:59;;2730:42031;;;;;;;:::i;:::-;17192:23;17226:1944;;;;17276:47;-1:-1:-1;;;;;2730:42031:68;;;17276:47;:::i;:::-;17342:15;-1:-1:-1;17255:159:68;;2730:42031;;;17429:337;;17226:1944;2730:42031;;;;-1:-1:-1;;;;;10084:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;17781:39;;;;;2730:42031;;;;;;;;;;;;;;;17781:39;;2730:42031;17781:39;;2730:42031;;;;;;;;17781:39;;;;;;;;17226:1944;-1:-1:-1;;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;17853:11;2730:42031;;;;;;17853:230;;-1:-1:-1;;;;;17853:230:68;;17226:1944;;2730:42031;;;;19180:11;2730:42031;;;;;;19286:93;;;10288:4;19286:93;;2730:42031;;;;;;:::i;:::-;;;;19227:298;;2730:42031;;;;19227:298;;19449:15;;2730:42031;;;19227:298;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;10288:4;2730:42031;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;10288:4;2730:42031;;2796:6;2730:42031;;;;2796:6;2730:42031;;;;;2796:6;10084:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;19571:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;19550:32;2730:42031;;19550:32;;;;;;;;;;;19286:93;19550:55;;;;19286:93;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;2730:42031;;;;;;19648:31;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;19726:22;;;;;;;;;;;;;19546:249;2730:42031;;10288:4;2730:42031;;;;;;;;;;;;;19725:45;;;;;;:::i;:::-;19571:10;;19725:45;;:::i;2730:42031::-;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;19550:32;2796:6;;19726:22;;;2730:42031;19726:22;;2730:42031;19726:22;;;;;;2730:42031;19726:22;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;;-1:-1:-1;19726:22:68;;19648:31;;;;2730:42031;19648:31;;2730:42031;19648:31;;;;;;2730:42031;19648:31;;;:::i;:::-;;;2730:42031;;;;;;;;;:::i;:::-;19648:31;;;;;;;;-1:-1:-1;19648:31:68;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;2730:42031;19550:32;2730:42031;19550:32;;;;;;;:::i;:::-;;;;;19286:93;19376:1;19286:93;;;17853:230;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;;;;;;;;;;;;17946:107;:119;:107;-1:-1:-1;;;;;17946:107:68;:137;:107;;:::i;:137::-;17853:230;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;2730:42031;2796:6;;17781:39;;;;;:::i;:::-;2730:42031;;17781:39;;;;17429:337;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;17736:12;;;;;;10288:4;17736:12;;:::i;:::-;17429:337;;;;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;;;;17255:159;-1:-1:-1;;;17379:35:68;;2730:42031;17379:35;;17226:1944;18137:36;-1:-1:-1;;;;;2730:42031:68;;;;;;18137:36;:::i;:::-;18118:55;;18114:330;;17226:1944;18462:19;;;:42;;;17226:1944;18458:325;;17226:1944;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;;;;;;;;;;;;18832:119;:107;:153;:107;;;;:::i;:::-;:119;;2730:42031;18832:153;:::i;:::-;2730:42031;;;-1:-1:-1;;;;;10084:4:68;2730:42031;;;;;;;;;;;19027:31;;;;;;;;;;;;;17226:1944;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;19109:36;;;-1:-1:-1;;;;;19109:36:68;;;:::i;:::-;17226:1944;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;;;;19027:31;;;2730:42031;19027:31;;2730:42031;19027:31;;;;;;2730:42031;19027:31;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;19027:31;;;2730:42031;;;;19027:31;;;-1:-1:-1;19027:31:68;;;2730:42031;;;;;;;;;18458:325;18522:261;2730:42031;10288:4;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18522:261;:::i;:::-;18458:325;;;;;18462:42;2730:42031;;;;18462:42;;18114:330;18218:53;-1:-1:-1;;;;;2730:42031:68;;;18218:53;:::i;:::-;18294:15;-1:-1:-1;18193:178:68;;2730:42031;-1:-1:-1;;;;;10084:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18390:39;;;;;2730:42031;;;;;;;;;;;;;;;18390:39;;2730:42031;18390:39;;2730:42031;;;;;;18390:39;;;;;;;;18114:330;;;;;18390:39;;;;;:::i;:::-;2730:42031;;18390:39;;;;2730:42031;;;;18193:178;-1:-1:-1;;;18335:36:68;;2730:42031;18335:36;;10084:241;;;;;:::i;:::-;2730:42031;;10084:241;;;;10007:66;-1:-1:-1;;;10044:29:68;;2730:42031;10044:29;;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;5021:10;5042:132;5188:9;5184:50;;2730:42031;;;;;:::i;:::-;5021:10;2730:42031;;;15846:64;;2730:42031;;;;;;;;;;;;:::i;:::-;;;;;18137:36;-1:-1:-1;;;;;2730:42031:68;;;18137:36;:::i;:::-;18118:55;;18114:330;;2730:42031;18458:325;;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;;;;;;;;;;;;18832:119;:107;:153;:107;;;;:::i;:153::-;2730:42031;;;-1:-1:-1;;;;;19027:4:68;2730:42031;;;;;;;;;;;19027:31;;;;;;;;;;;;;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;19109:36;;;-1:-1:-1;;;;;19109:36:68;;;:::i;:::-;2730:42031;;;;18832:11;2730:42031;;;;;19286:93;;;;2730:42031;19286:93;;2730:42031;;;;;;:::i;:::-;;;19227:298;;;2730:42031;;;;19227:298;;19449:15;;2730:42031;;19227:298;;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;;;;2796:6;2730:42031;;;;2796:6;2730:42031;18832:119;2730:42031;;;2796:6;19027:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;5021:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;19550:32;2730:42031;19550:32;2730:42031;;19550:32;;;;;;;;;;;19286:93;19550:55;;;;19286:93;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;2730:42031;19648:31;2730:42031;;;;19648:31;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;19726:22;;;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;;;;19725:45;;;;;;:::i;19726:22::-;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;;;;;19648:31;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;;;:::i;:::-;19648:31;;;;;;;;;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;;;;;;;;;;;:::i;:::-;;;;;19286:93;19376:1;19286:93;;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;;;;19027:31;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;19027:31;;;;;;;;;2730:42031;;;;;;;;;18458:325;18522:261;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;18522:261;:::i;:::-;18458:325;;;18114:330;2730:42031;18218:53;-1:-1:-1;;;;;2730:42031:68;;;18218:53;:::i;:::-;18294:15;-1:-1:-1;18193:178:68;;2730:42031;-1:-1:-1;;;;;18390:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18390:39;;;;;2730:42031;;18390:39;2730:42031;;;;;;;;;;;;18390:39;;2730:42031;18390:39;;2730:42031;;;;;;18390:39;;;;;;;;;;;18114:330;;;;;18390:39;;;;;:::i;:::-;2730:42031;;18390:39;;;;18193:178;-1:-1:-1;;;18335:36:68;;2730:42031;18335:36;;2730:42031;;;;;;;;;;;;;;-1:-1:-1;;;;;40469:12:68;2730:42031;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;28804:31;2796:6;;28849:35;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;32845:32;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;34458:29;2730:42031;34490:15;-1:-1:-1;34454:110:68;;34602:25;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;-1:-1:-1;;;;;2730:42031:68;;34458:16;2730:42031;;;34458:16;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;34602:25;2730:42031;2796:6;34458:29;2796:6;-1:-1:-1;;;;;2730:42031:68;;34728:47;2730:42031;;;34728:47;2730:42031;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2994:3;24700:18;2730:42031;24700:41;24696:101;;-1:-1:-1;;;;;2730:42031:68;;;24808:17;2730:42031;;;;;24700:18;2730:42031;;;;;;;;24859:20;24700:18;2730:42031;24859:20;:::i;:::-;24700:18;2796:6;2730:42031;;24696:101;-1:-1:-1;;;24762:35:68;;2730:42031;24762:35;;4786:64;-1:-1:-1;;;4826:24:68;;2730:42031;4826:24;;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2730:42031;;28378:31;2796:6;;28495:15;2796:6;28495:15;;2796:6;;;28445:35;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;31983:31;2730:42031;32017:15;-1:-1:-1;31979:112:68;;2730:42031;31983:18;2730:42031;;32176:24;2730:42031;32123:117;2730:42031;;;;;:::i;:::-;;;;32123:117;2730:42031;;;;31983:18;2730:42031;;;;;31983:18;2730:42031;2796:6;31983:31;2796:6;2730:42031;;;;;;;;;;;;;;;;-1:-1:-1;;;;;41774:16:68;2730:42031;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;40822:21:68;2730:42031;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;29160:35;2730:42031;29198:15;-1:-1:-1;29156:116:68;;29316:31;2730:42031;29160:22;2796:6;;29316:31;2796:6;;29160:35;2796:6;2730:42031;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;20523:19;20556:25;20595:31;;20640:32;20686;;-1:-1:-1;;;;;2730:42031:68;;;;;20747:11;2730:42031;;;;;;20743:1056;;2730:42031;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;20743:1056;2730:42031;;;;;;;;;20997:30;-1:-1:-1;;;;;20997:9:68;2730:42031;;20997:30;2730:42031;;;;;;;;;20997:30;;;2730:42031;20997:30;;2730:42031;20997:30;;;;;;;;2730:42031;;;;;;;20997:30;;;20743:1056;20791:236;;;;;;;;;;21046:27;;21042:747;;20743:1056;;;;;;;;21042:747;21128:23;;;21398:74;21128:23;;;21398:43;21128:23;;;:::i;:::-;2730:42031;;;20747:11;2730:42031;;21171:43;2730:42031;;;;21171:43;:::i;:::-;2796:6;;2730:42031;;;20747:11;2730:42031;;21283:71;:43;2730:42031;;;;21283:43;:::i;:::-;:71;;2796:6;2730:42031;;20747:11;2730:42031;;;;;21398:43;:::i;:::-;:74;;2796:6;-1:-1:-1;;;;;21522:4:68;2730:42031;;;;;;;;21522:32;;21543:10;2730:42031;21522:32;;2730:42031;;21522:32;20997:30;21522:32;;;;;;;;;;;;;21042:747;21518:257;;;21042:747;;;;;;;;;21518:257;2730:42031;;-1:-1:-1;;;21613:31:68;;2730:42031;;;;;21613:31;;;;;;;;;;;;21518:257;2730:42031;;;;;;;;;;;;;21707:22;;;;;;;;;;;;;21518:257;2730:42031;;;;21283:71;2730:42031;;;;;;;21543:10;;21706:28;-1:-1:-1;;;;;21543:10:68;2730:42031;21543:10;;21706:28;;:::i;:::-;21518:257;;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;20997:30;;2796:6;21707:22;;;;2730:42031;21707:22;;2730:42031;21707:22;;;;;;2730:42031;21707:22;;;:::i;:::-;;;2730:42031;;;;;21707:22;;;;;;;-1:-1:-1;21707:22:68;;;2730:42031;;;;;;;;;;;21613:31;;;;2730:42031;21613:31;;2730:42031;21613:31;;;;;;2730:42031;21613:31;;;:::i;:::-;;;2730:42031;;;;;;;;;;;:::i;:::-;21613:31;;;;;;;;-1:-1:-1;21613:31:68;;21522:32;;;;2730:42031;21522:32;2730:42031;21522:32;;;;;;;:::i;:::-;;;;20997:30;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;20997:30;;;;;;;;;;-1:-1:-1;20997:30:68;;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8142:19;2730:42031;;8141:25;2730:42031;;8141:52;;2730:42031;8137:107;;2730:42031;;;;-1:-1:-1;;;;;8255:4:68;2730:42031;;;;;1005:56:103;;2730:42031:68;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;;;;1005:56:103;;;2730:42031:68;1005:56:103;;:::i;:::-;2730:42031:68;995:67:103;;8255:228:68;;;;;2730:42031;;;8255:228;2730:42031;;;;;;;;;;;;;;;;8255:228;;2730:42031;;8255:228;2730:42031;8255:228;;;:::i;:::-;;;;;;;;;;;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;;;8499:17;2730:42031;;;;;;;;8498:32;8494:87;;2730:42031;;;8499:17;2730:42031;;;;;;8610:37;2730:42031;8662:39;;;;8685:1;8674:12;;;8662:39;8658:102;;8811:61;;;;2730:42031;2796:6;;;;;;;8811:61;2730:42031;8811:61;;2730:42031;;;8499:17;2730:42031;;;;;;8771:37;2796:6;2730:42031;;;;;;:::i;:::-;;;;8915:59;;2730:42031;;;;;;;:::i;:::-;17192:23;;;17226:1944;;;;;17276:47;-1:-1:-1;;;;;2730:42031:68;;;17276:47;:::i;:::-;17342:15;-1:-1:-1;17255:159:68;;2730:42031;;;17429:337;;17226:1944;2730:42031;;;-1:-1:-1;;;;;8255:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;17781:39;;;;;2730:42031;;;;;;;;;;;;;;;17781:39;;2730:42031;17781:39;;2730:42031;;;;;;;;17781:39;;;;;;;;;;17226:1944;-1:-1:-1;;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;17853:11;2730:42031;;;;;;17853:230;;-1:-1:-1;;;;;2730:42031:68;17853:230;17226:1944;;2730:42031;;;;19180:11;2730:42031;;;;;;19286:93;;;2730:42031;19286:93;;2730:42031;;;;;;:::i;:::-;;;;19227:298;;2730:42031;;;;19227:298;;19449:15;;2730:42031;;;19227:298;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;;;;2796:6;2730:42031;;;;2796:6;2730:42031;;;;;2796:6;8255:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;19571:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;19550:32;;;;;;;;;;;19286:93;19550:55;;;;19286:93;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;2730:42031;;;;;;19648:31;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;19726:22;;;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;;;19725:45;;;;;;;:::i;:::-;19546:249;;;2730:42031;;;19726:22;;;;2730:42031;19726:22;;2730:42031;19726:22;;;;;;2730:42031;19726:22;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;;;-1:-1:-1;19726:22:68;;19648:31;;;;2730:42031;19648:31;;2730:42031;19648:31;;;;;;2730:42031;19648:31;;;:::i;:::-;;;2730:42031;;;;;;;;;;:::i;:::-;19648:31;;;;;;;;;-1:-1:-1;19648:31:68;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;2730:42031;19550:32;2730:42031;19550:32;;;;;;;:::i;:::-;;;;;;2730:42031;;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;2796:6;2730:42031;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;19286:93;19376:1;19286:93;;;17853:230;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;;;;;;;;;;;;17946:119;:107;;;;:::i;:::-;:119;;2730:42031;;2796:6;;;;;;;-1:-1:-1;;;;;17853:230:68;;;2730:42031;-1:-1:-1;;;2796:6:68;;8142:19;2730:42031;2796:6;2730:42031;2796:6;;17781:39;;;;:::i;:::-;2730:42031;;;;;17781:39;;;;17429:337;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;;17736:12;2730:42031;17736:12;;3219:17;17736:12;;;;:::i;:::-;17429:337;;;;;17255:159;-1:-1:-1;;;17379:35:68;;2730:42031;17379:35;;17226:1944;2730:42031;;;;;18137:36;-1:-1:-1;;;;;2730:42031:68;;;18137:36;:::i;:::-;2730:42031;18118:55;18114:330;;17226:1944;18462:19;;;:42;;;17226:1944;18458:325;;17226:1944;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;;;;;;;;;;;;18832:119;:107;;;;:::i;:::-;-1:-1:-1;18832:119:68;2730:42031;-1:-1:-1;;2730:42031:68;;;;;;;8255:4;2730:42031;;;-1:-1:-1;;;19027:31:68;;2730:42031;18798:187;;2730:42031;;;;;;;;-1:-1:-1;;;;;2730:42031:68;19027:31;;;;;;;;;;;17226:1944;2730:42031;;19109:36;3219:17;-1:-1:-1;;;;;2730:42031:68;;;;;19109:36;;:::i;:::-;17226:1944;;19027:31;;;;2730:42031;19027:31;;2730:42031;19027:31;;;;;;2730:42031;19027:31;;;:::i;:::-;;;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;19027:31;;;;;;;-1:-1:-1;19027:31:68;;2730:42031;-1:-1:-1;;;2796:6:68;;8142:19;2730:42031;2796:6;2730:42031;2796:6;;18458:325;18522:261;2730:42031;;;;-1:-1:-1;;;;;2730:42031:68;;;18522:261;:::i;:::-;18458:325;;;;;18462:42;2730:42031;;;;18462:42;;18114:330;18218:53;-1:-1:-1;;;;;2730:42031:68;;;18218:53;:::i;:::-;18294:15;-1:-1:-1;18193:178:68;;2730:42031;-1:-1:-1;;;;;8255:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18390:39;;;;;2730:42031;;;;;;;;;;;;;;;18390:39;;2730:42031;18390:39;;2730:42031;;;;;;18390:39;;;;;;;;18114:330;;;;;18390:39;;;;;:::i;:::-;2730:42031;;18390:39;;;;18193:178;-1:-1:-1;;;18335:36:68;;2730:42031;18335:36;;8811:61;-1:-1:-1;;2730:42031:68;;;;;;;8811:61;2730:42031;8811:61;;;8658:102;-1:-1:-1;;;8722:38:68;;2730:42031;8722:38;;8662:39;8689:12;;8662:39;;8494:87;-1:-1:-1;;;8551:30:68;;2730:42031;8551:30;;8255:228;;;;;:::i;:::-;2730:42031;;8255:228;;;;8137:107;-1:-1:-1;;;8214:30:68;;2730:42031;8214:30;;8141:52;2730:42031;;8170:18;2730:42031;;8141:52;;2730:42031;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;6164:28;2730:42031;;;;;;-1:-1:-1;;;;;;2730:42031:68;6164:36;6160:50;;-1:-1:-1;;;;;2730:42031:68;;;-1:-1:-1;;;;;2730:42031:68;;6221:16;2730:42031;;;6221:16;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;-1:-1:-1;;;;;2730:42031:68;;6299:18;2730:42031;;;6299:18;2730:42031;-1:-1:-1;;;;;2730:42031:68;;6327:33;2730:42031;;;6327:33;2730:42031;;;;6164:28;2730:42031;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;-1:-1:-1;;;;;2730:42031:68;;27024:21;2730:42031;;;27024:21;2730:42031;2796:6;27099:15;2796:6;27099:15;;2796:6;;;27071:25;2796:6;2730:42031;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6910:12:68;2730:42031;;6896:10;;;:34;6892:90;;2730:42031;;;;;;:::i;:::-;;;;;7025:121;;2730:42031;;;;;-1:-1:-1;;;;;7251:4:68;2730:42031;;;;;;;;;;;7251:40;;6896:10;2730:42031;7251:40;;2730:42031;7251:40;;;;;;;2730:42031;7251:40;;;2730:42031;;;;;;;;:::i;:::-;17192:23;17226:1944;;;;17276:47;-1:-1:-1;;;;;2730:42031:68;;;17276:47;:::i;:::-;17342:15;-1:-1:-1;17255:159:68;;2730:42031;;;17429:337;;17226:1944;2730:42031;;;-1:-1:-1;;;;;7251:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;17781:39;;;;;2730:42031;;;;;;;;;;;;;;;17781:39;;2730:42031;17781:39;;2730:42031;;;;;;;;17781:39;;;;;;;;17226:1944;-1:-1:-1;;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;17853:11;2730:42031;;;;;;17853:230;;-1:-1:-1;;;;;17853:230:68;;17226:1944;;2730:42031;;;;19180:11;2730:42031;;;;;;19286:93;;;19334:1;19286:93;;2730:42031;;;;;;:::i;:::-;;;;19227:298;;2730:42031;;;;19227:298;;19449:15;;2730:42031;;;19227:298;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;;;;2796:6;2730:42031;;;;2796:6;2730:42031;;;;;2796:6;7251:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;6896:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;19550:32;;;;;;;;;;;19286:93;19550:55;;;;19286:93;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;2730:42031;;;;;;19648:31;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;19726:22;;;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;;;19725:45;;;6896:10;19725:45;;:::i;:::-;2730:42031;;19726:22;;;;2730:42031;19726:22;;2730:42031;19726:22;;;;;;2730:42031;19726:22;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;;;-1:-1:-1;19726:22:68;;19648:31;;;2730:42031;19648:31;;2730:42031;19648:31;;;;;;2730:42031;19648:31;;;:::i;:::-;;;2730:42031;;;;;;;;;:::i;:::-;19648:31;;;;;;;-1:-1:-1;19648:31:68;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;2730:42031;19550:32;2730:42031;19550:32;;;;;;;:::i;:::-;;;;;2730:42031;-1:-1:-1;;;2730:42031:68;;;;;;;2796:6;2730:42031;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;19286:93;19376:1;19286:93;;;17853:230;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;;;;;;;;;;;;17946:107;:119;:107;-1:-1:-1;;;;;17946:107:68;:137;:107;;:::i;:137::-;17853:230;;17781:39;;;;;:::i;:::-;2730:42031;;17781:39;;;;17429:337;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;17736:12;;;;;;;;;:::i;:::-;17429:337;;;;17226:1944;2730:42031;;18137:36;-1:-1:-1;;;;;2730:42031:68;;;18137:36;:::i;:::-;18118:55;;18114:330;;17226:1944;18458:325;;;17226:1944;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;;;;;;;;;;;;18832:119;:107;:153;:107;;;;:::i;:153::-;2730:42031;;;-1:-1:-1;;;;;7251:4:68;2730:42031;;;;;;;;;;;19027:31;;;;;;;;;;;;;17226:1944;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;19109:36;;;-1:-1:-1;;;;;19109:36:68;;;:::i;:::-;17226:1944;;19027:31;;;2730:42031;19027:31;;2730:42031;19027:31;;;;;;2730:42031;19027:31;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;19027:31;;;;;;-1:-1:-1;19027:31:68;;18458:325;18522:261;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;18522:261;:::i;:::-;18458:325;;;;;18114:330;2730:42031;18218:53;-1:-1:-1;;;;;2730:42031:68;;;18218:53;:::i;:::-;18294:15;-1:-1:-1;18193:178:68;;-1:-1:-1;;;;;7251:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18390:39;;;;;2730:42031;;;;;;;;;;;;;;;18390:39;;2730:42031;18390:39;;2730:42031;;;;;;18390:39;;;;;;;;18114:330;;;;;18390:39;;;;;2730:42031;18390:39;;:::i;:::-;2730:42031;18390:39;;;;;2730:42031;;;;;;;;;18193:178;18335:36;;;2730:42031;18335:36;2730:42031;;18335:36;7251:40;;;2730:42031;7251:40;;2730:42031;7251:40;;;;;;2730:42031;7251:40;;;:::i;:::-;;;2730:42031;;;;;;;7251:40;;;;;;-1:-1:-1;7251:40:68;;6892:90;6951:31;;;2730:42031;6951:31;2730:42031;;6951:31;2730:42031;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2730:42031;;29903:38;2796:6;;30041:15;2796:6;30041:15;;2796:6;;;29984:42;2796:6;2730:42031;2796:6;;;;2730:42031;2796:6;;2730:42031;2796:6;;2730:42031;2796:6;4786:64;4826:24;;;2730:42031;4826:24;2730:42031;;4826:24;2730:42031;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;-1:-1:-1;;;;;2730:42031:68;;33736:25;2730:42031;;;33736:25;2730:42031;2796:6;33828:15;2796:6;33828:15;;2796:6;;;33784:29;2796:6;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;27700:25;2730:42031;27728:15;-1:-1:-1;27696:106:68;;27836:21;2730:42031;;27700:12;2730:42031;;-1:-1:-1;;2730:42031:68;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;-1:-1:-1;27700:25:68;2796:6;2730:42031;27696:106;33248:38;;;2730:42031;27764:38;2730:42031;;27764:38;2730:42031;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;31364:15;2796:6;31364:15;;2796:6;;;31318:31;2796:6;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;33177:32;2730:42031;33212:15;-1:-1:-1;33173:113:68;;33177:19;2730:42031;;;;;33324:25;2730:42031;;;;;;33177:19;2730:42031;;33177:32;2796:6;2730:42031;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;43617:16;-1:-1:-1;;;;;43617:4:68;2730:42031;;;;;;;;;;;43617:16;;;;;;;;2730:42031;43617:16;;;2730:42031;43617:16;2730:42031;;;;;;;43617:16;;;;;;;;;;;;2730:42031;43617:16;;;:::i;:::-;;;2730:42031;;;;43617:16;2730:42031;;43617:16;;;;;-1:-1:-1;43617:16:68;;2730:42031;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;-1:-1:-1;;;;;2730:42031:68;;25798:14;2730:42031;;;25798:14;2730:42031;2796:6;25855:15;2796:6;25855:15;;2796:6;;;2730:42031;2796:6;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2796:6::-;;;;;;;;;;:::o;2730:42031::-;;;;;;;;;;;;;;;:::o;:::-;2796:6;;;-1:-1:-1;2730:42031:68;;;;;-1:-1:-1;2730:42031:68;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2730:42031:68;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;8383:1;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;2730:42031:68;;-1:-1:-1;2730:42031:68;;;;;;-1:-1:-1;2730:42031:68;:::o;:::-;2796:6;;;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2994:3::-;-1:-1:-1;;2994:3:68;;;;;;;:::o;2730:42031::-;;;;;;;:::i;:::-;-1:-1:-1;2730:42031:68;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;39898:303::-;-1:-1:-1;;;;;2730:42031:68;;;;40025:11;2730:42031;;;;;;40068:20;;;40064:59;;2730:42031;;40025:11;2730:42031;;;;;;;;;;;;;;40140:54;:42;;;;:::i;:::-;:54;;2730:42031;39898:303;:::o;40064:59::-;40104:8;;2730:42031;40104:8;:::o;38304:504::-;-1:-1:-1;;;;;2730:42031:68;;;;38442:11;2730:42031;;;;;;38485:20;;38481:59;;2730:42031;;;38442:11;2730:42031;;;;;;;;;;;;;;38553:42;;:54;:42;;:::i;:::-;-1:-1:-1;38553:54:68;2730:42031;38553:54;;38651:42;:52;2730:42031;38651:101;2730:42031;;;38442:11;2730:42031;;;;;38651:42;:::i;:::-;:52;;2730:42031;38722:22;2730:42031;38651:101;;:::i;:::-;38628:124;:::o;37443:532::-;-1:-1:-1;;;;;2730:42031:68;;;;37578:11;2730:42031;;;;;;37561:292;37608:5;;;2730:42031;;;37578:11;2730:42031;;;;;;;;;;;;37882:86;2730:42031;;;;37882:34;2730:42031;37931:29;2730:42031;37882:86;;:::i;37615:3::-;2730:42031;;;37578:11;2730:42031;;;;;;;;;;;;;;;37638:28;;:40;:28;;:::i;:::-;:40;;2730:42031;37638:45;37634:209;;37615:3;2730:42031;;;;-1:-1:-1;;2730:42031:68;;37566:40;;37634:209;37730:38;2730:42031;;37730:28;2730:42031;37730:98;2730:42031;;;37578:11;2730:42031;;;;;37730:28;:::i;:::-;:38;;2730:42031;37791:29;2730:42031;37730:98;;:::i;23700:165::-;;-1:-1:-1;;;;;23820:4:68;2730:42031;;23820:38;;;;;-1:-1:-1;2730:42031:68;;23820:38;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;23820:38;;2730:42031;23820:38;;;2730:42031;;;;;;;;;;23820:38;;;;;;;;23700:165;:::o;23820:38::-;-1:-1:-1;23820:38:68;;;:::i;:::-;23700:165::o;22836:531::-;;;;;;;-1:-1:-1;;;;;23069:4:68;2730:42031;;;;;;;;;23152:31;;;;;;;;;;;;;;-1:-1:-1;23152:31:68;;;22836:531;23069:291;;;;;;23152:31;-1:-1:-1;2730:42031:68;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;23069:291;;2730:42031;23152:31;23069:291;;2730:42031;23117:4;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;23117:4;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;23069:291;;;;;;;;;;;22836:531;:::o;23152:31::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;23152:31;;;;;;;-1:-1:-1;23152:31:68;;22836:531;;;;;;;-1:-1:-1;;;;;23069:4:68;2730:42031;;;;;;;;;23152:31;;;;;;;;;;;;;;-1:-1:-1;23152:31:68;;;22836:531;23069:291;;;;;;2730:42031;;;;;;;;;;23069:291;;-1:-1:-1;;;;;2730:42031:68;23152:31;23069:291;;2730:42031;23117:4;2730:42031;;;;;;;;;;;;;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;23117:4;2730:42031;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23152:31;2730:42031;;;;;;;;;;-1:-1:-1;2730:42031:68;;;;;;;;;;23069:291;2730:42031;23069:291;;;-1:-1:-1;23069:291:68;;;;;;;;;;22836:531;:::o;23152:31::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;23152:31;;;;;;;-1:-1:-1;23152:31:68;",linkReferences:{}},methodIdentifiers:{"acceptNewAdmin()":"cd6b5460","acceptNewEstimator()":"6fa7ff17","acceptNewGoldenFisher()":"34dd90d6","acceptSetSecondsToUnlockStaking()":"610a0476","addPresaleStaker(address)":"6c58f77b","addPresaleStakers(address[])":"be100345","cancelChangeAllowPresaleStaking()":"7068dc65","cancelChangeAllowPublicStaking()":"b996b6c4","cancelSetSecondsToUnllockFullUnstaking()":"b384c574","confirmChangeAllowPresaleStaking()":"1e9c210f","confirmChangeAllowPublicStaking()":"681f02ac","confirmServiceStaking()":"c9d2beb1","confirmSetSecondsToUnllockFullUnstaking()":"8f4b3f28","getAddressHistory(address)":"fabd08e8","getAddressHistoryByIndex(address,uint256)":"9053a258","getAllowPresaleStaking()":"e7dc0756","getAllowPublicStaking()":"89a75af8","getCoreAddress()":"2096b768","getEstimatorAddress()":"66d161aa","getEstimatorProposal()":"e6cbd0a6","getEvvmID()":"17c85152","getGoldenFisher()":"7f8da591","getGoldenFisherProposal()":"6254300b","getIfUsedAsyncNonce(address,uint256)":"d0e3692d","getMateAddress()":"96ae4e45","getOwner()":"893d20e8","getPresaleStaker(address)":"c130a719","getPresaleStakerCount()":"fa6215f3","getSecondsToUnlockFullUnstaking()":"f5c1af1c","getSecondsToUnlockStaking()":"e6f2ebe4","getSizeOfAddressHistory(address)":"fc2feab2","getTimeToUserUnlockFullUnstakingTime(address)":"d5bbacd5","getTimeToUserUnlockStakingTime(address)":"9e411233","getUserAmountStaked(address)":"9cde1d3e","gimmeYiel(address)":"602c4fb4","goldenStaking(bool,uint256,bytes)":"475c31ff","initializeSystemContracts(address,address)":"55160ea6","prepareChangeAllowPresaleStaking()":"dfb2b3a4","prepareChangeAllowPublicStaking()":"27be0557","prepareServiceStaking(uint256)":"99b4c3ef","prepareSetSecondsToUnllockFullUnstaking(uint256)":"3d8ff69a","presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":"58b71cb4","priceOfStaking()":"cb0900b8","proposeAdmin(address)":"147bf6c4","proposeEstimator(address)":"3900738a","proposeGoldenFisher(address)":"489c5ad4","proposeSetSecondsToUnlockStaking(uint256)":"6b2933a2","publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"83e512ab","rejectProposalAdmin()":"b38c950a","rejectProposalEstimator()":"a06831ba","rejectProposalGoldenFisher()":"a84e9f23","rejectProposalSetSecondsToUnlockStaking()":"7c25faef","serviceUnstaking(uint256)":"829c67d4"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"initialAdmin","type":"address"},{"internalType":"address","name":"initialGoldenFisher","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AddressIsNotAService","type":"error"},{"inputs":[],"name":"AddressMismatch","type":"error"},{"inputs":[],"name":"AddressMustWaitToFullUnstake","type":"error"},{"inputs":[],"name":"AddressMustWaitToStakeAgain","type":"error"},{"inputs":[],"name":"LimitPresaleStakersExceeded","type":"error"},{"inputs":[],"name":"PresaleStakingDisabled","type":"error"},{"inputs":[],"name":"PublicStakingDisabled","type":"error"},{"inputs":[],"name":"SenderIsNotAdmin","type":"error"},{"inputs":[],"name":"SenderIsNotGoldenFisher","type":"error"},{"inputs":[],"name":"SenderIsNotProposedAdmin","type":"error"},{"inputs":[{"internalType":"uint256","name":"requiredAmount","type":"uint256"}],"name":"ServiceDoesNotFulfillCorrectStakingAmount","type":"error"},{"inputs":[],"name":"ServiceDoesNotStakeInSameTx","type":"error"},{"inputs":[],"name":"TimeToAcceptProposalNotReached","type":"error"},{"inputs":[],"name":"UserIsNotPresaleStaker","type":"error"},{"inputs":[],"name":"UserPresaleStakerLimitExceeded","type":"error"},{"inputs":[],"name":"acceptNewAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptNewEstimator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptNewGoldenFisher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptSetSecondsToUnlockStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_staker","type":"address"}],"name":"addPresaleStaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_stakers","type":"address[]"}],"name":"addPresaleStakers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelChangeAllowPresaleStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelChangeAllowPublicStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelSetSecondsToUnllockFullUnstaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmChangeAllowPresaleStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmChangeAllowPublicStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmServiceStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmSetSecondsToUnllockFullUnstaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getAddressHistory","outputs":[{"components":[{"internalType":"bytes32","name":"transactionType","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"}],"internalType":"struct StakingStructs.HistoryMetadata[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getAddressHistoryByIndex","outputs":[{"components":[{"internalType":"bytes32","name":"transactionType","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"}],"internalType":"struct StakingStructs.HistoryMetadata","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllowPresaleStaking","outputs":[{"components":[{"internalType":"bool","name":"flag","type":"bool"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.BoolTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllowPublicStaking","outputs":[{"components":[{"internalType":"bool","name":"flag","type":"bool"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.BoolTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCoreAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEstimatorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEstimatorProposal","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGoldenFisher","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGoldenFisherProposal","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"getIfUsedAsyncNonce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMateAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getPresaleStaker","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPresaleStakerCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSecondsToUnlockFullUnstaking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSecondsToUnlockStaking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getSizeOfAddressHistory","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getTimeToUserUnlockFullUnstakingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getTimeToUserUnlockStakingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getUserAmountStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"gimmeYiel","outputs":[{"internalType":"bytes32","name":"epochAnswer","type":"bytes32"},{"internalType":"address","name":"tokenToBeRewarded","type":"address"},{"internalType":"uint256","name":"amountTotalToBeRewarded","type":"uint256"},{"internalType":"uint256","name":"idToOverwriteUserHistory","type":"uint256"},{"internalType":"uint256","name":"timestampToBeOverwritten","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isStaking","type":"bool"},{"internalType":"uint256","name":"amountOfStaking","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"goldenStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_estimator","type":"address"},{"internalType":"address","name":"_core","type":"address"}],"name":"initializeSystemContracts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"prepareChangeAllowPresaleStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"prepareChangeAllowPublicStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOfStaking","type":"uint256"}],"name":"prepareServiceStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_secondsToUnllockFullUnstaking","type":"uint256"}],"name":"prepareSetSecondsToUnllockFullUnstaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"isStaking","type":"bool"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"presaleStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"priceOfStaking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"proposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_estimator","type":"address"}],"name":"proposeEstimator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_goldenFisher","type":"address"}],"name":"proposeGoldenFisher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_secondsToUnlockStaking","type":"uint256"}],"name":"proposeSetSecondsToUnlockStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"isStaking","type":"bool"},{"internalType":"uint256","name":"amountOfStaking","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"publicStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalEstimator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalGoldenFisher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalSetSecondsToUnlockStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOfStaking","type":"uint256"}],"name":"serviceUnstaking","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Mate labs","details":"Manages staking, unstaking, and yield distribution via the Estimator contract. Supports presale and public staking phases with time-locked security and nonce-based replay protection.","errors":{"AddressIsNotAService()":[{"details":"Thrown when EOA calls service-only function (onlyCA checks code size)"}],"AddressMismatch()":[{"details":"Thrown when confirmServiceStaking caller != prepareServiceStaking caller"}],"AddressMustWaitToFullUnstake()":[{"details":"Thrown when full unstake attempted before lock period (secondsToUnllockFullUnstaking.current = 5 days)"}],"AddressMustWaitToStakeAgain()":[{"details":"Thrown when re-staking before cooldown expires (secondsToUnlockStaking.current)"}],"LimitPresaleStakersExceeded()":[{"details":"Thrown when adding presale staker beyond 800 limit (LIMIT_PRESALE_STAKER)"}],"PresaleStakingDisabled()":[{"details":"Thrown when presale staking attempted while disabled (allowPresaleStaking.flag == false)"}],"PublicStakingDisabled()":[{"details":"Thrown when public staking attempted while disabled (allowPublicStaking.flag == false). Uses Core.sol async nonces."}],"SenderIsNotAdmin()":[{"details":"Thrown when non-admin calls admin-only function (onlyOwner)"}],"SenderIsNotGoldenFisher()":[{"details":"Thrown when non-goldenFisher attempts goldenStaking (sync nonces with Core.sol)"}],"SenderIsNotProposedAdmin()":[{"details":"Thrown when non-proposed admin attempts acceptNewAdmin (1d delay)"}],"ServiceDoesNotFulfillCorrectStakingAmount(uint256)":[{"details":"Thrown when Principal Token transfer != PRICE_OF_STAKING * amountOfStaking (via Evvm.caPay)","params":{"requiredAmount":"Exact Principal Tokens needed"}}],"ServiceDoesNotStakeInSameTx()":[{"details":"Thrown when confirm timestamp != prepare timestamp (atomic 3-step process required)"}],"TimeToAcceptProposalNotReached()":[{"details":"Thrown when accepting governance proposal before 1-day delay (TIME_TO_ACCEPT_PROPOSAL)"}],"UserIsNotPresaleStaker()":[{"details":"Thrown when non-whitelisted user attempts presaleStaking (max 800 presale stakers)"}],"UserPresaleStakerLimitExceeded()":[{"details":"Thrown when presale user tries to stake beyond 2-token cap"}]},"kind":"dev","methods":{"acceptNewAdmin()":{"details":"Can only be called by the proposed admin after the time delay has passed"},"acceptNewEstimator()":{"details":"Can only be called by the current admin after the 1-day time delay"},"acceptNewGoldenFisher()":{"details":"Can only be called by the current admin after the 1-day time delay"},"acceptSetSecondsToUnlockStaking()":{"details":"Can only be called by the current admin after the 1-day time delay"},"addPresaleStaker(address)":{"details":"Only admin can call this function, limited to 800 presale stakers total","params":{"_staker":"Address to be added to the presale staker list"}},"addPresaleStakers(address[])":{"details":"Only admin can call this function, limited to 800 presale stakers total","params":{"_stakers":"Array of addresses to be added to the presale staker list"}},"cancelChangeAllowPresaleStaking()":{"details":"Only current admin can cancel the pending presale staking toggle"},"cancelChangeAllowPublicStaking()":{"details":"Only current admin can cancel the pending public staking toggle"},"cancelSetSecondsToUnllockFullUnstaking()":{"details":"Only current admin can cancel the pending full unstaking time proposal"},"confirmChangeAllowPresaleStaking()":{"details":"Toggles between enabled/disabled state for presale staking after 1-day delay"},"confirmChangeAllowPublicStaking()":{"details":"Toggles between enabled/disabled state for public staking after 1-day delay"},"confirmServiceStaking()":{"details":"Validates payment and completes atomic staking Validation Checks: 1. Timestamp: Must equal prepareServiceStaking tx - Ensures atomicity (same transaction) - serviceStakingData.timestamp == block.timestamp 2. Caller: Must match prepareServiceStaking caller - serviceStakingData.service == msg.sender - Prevents staking hijacking 3. Payment Amount: Validates exact transfer - Service balance decreased by exact amount - Staking balance increased by exact amount - totalStakingRequired = PRICE_OF_STAKING * amountOfStaking Core.sol Integration: - Validates caPay occurred between steps 1 and 3 - Checks balance deltas via Evvm.getBalance - Token: core.getPrincipalTokenAddress() - Must be exact amount (no overpayment/underpayment) Completion: - Calls stakingBaseProcess on success - Records history with transaction type 0x01 - Updates userHistory with staking event - Service becomes staker (isAddressStaker = true) Error Cases: - ServiceDoesNotStakeInSameTx: timestamp mismatch - AddressMismatch: caller mismatch - ServiceDoesNotFulfillCorrectStakingAmount: payment incorrect Access Control: - onlyCA modifier: Only contracts allowed"},"confirmSetSecondsToUnllockFullUnstaking()":{"details":"Can only be called by the current admin after the 1-day time delay"},"constructor":{"params":{"initialAdmin":"System administrator.","initialGoldenFisher":"Authorized Golden Fisher address."}},"getAddressHistory(address)":{"details":"Returns an array of all staking transactions and rewards for the user","params":{"_account":"Address to query the history for"},"returns":{"_0":"Array of Structs.HistoryMetadata containing all transactions"}},"getAddressHistoryByIndex(address,uint256)":{"details":"Allows accessing individual transactions by index","params":{"_account":"Address to query the history for","_index":"Index of the transaction to retrieve (0-based)"},"returns":{"_0":"Structs.HistoryMetadata of the transaction at the specified index"}},"getAllowPresaleStaking()":{"details":"Includes current flag state and any pending changes with timestamps","returns":{"_0":"ProposalStructs.BoolTypeProposal struct containing flag and timeToAccept"}},"getAllowPublicStaking()":{"details":"Includes current flag state and any pending changes with timestamps","returns":{"_0":"ProposalStructs.BoolTypeProposal struct containing flag and timeToAccept"}},"getCoreAddress()":{"details":"The EVVM contract handles payments and staker registration","returns":{"_0":"Address of the EVVM core contract"}},"getEstimatorAddress()":{"details":"The estimator calculates staking rewards and yields","returns":{"_0":"Address of the current estimator contract"}},"getEstimatorProposal()":{"details":"Shows pending estimator changes in the governance system","returns":{"_0":"Address of the proposed estimator contract (zero address if none)"}},"getEvvmID()":{"details":"Returns the EvvmID used for distinguishing different EVVM deployments","returns":{"_0":"Unique EvvmID string"}},"getGoldenFisher()":{"details":"The golden fisher has special staking privileges","returns":{"_0":"Address of the current golden fisher"}},"getGoldenFisherProposal()":{"details":"Shows pending golden fisher changes in the governance system","returns":{"_0":"Address of the proposed golden fisher (zero address if none)"}},"getMateAddress()":{"details":"This is a constant address used to represent the principal token","returns":{"_0":"Address representing the Principal Token (0x...0001)"}},"getOwner()":{"details":"The admin has full control over contract parameters and governance","returns":{"_0":"Address of the current contract admin"}},"getPresaleStaker(address)":{"details":"Shows if an address is allowed for presale and how many tokens they\'ve staked","params":{"_account":"Address to check presale status for"},"returns":{"_0":"isAllow True if the address is allowed for presale staking","_1":"stakingAmount Number of staking tokens currently staked in presale (max 2)"}},"getPresaleStakerCount()":{"details":"Maximum allowed is 800 presale stakers","returns":{"_0":"Current count of presale stakers"}},"getSecondsToUnlockFullUnstaking()":{"details":"Full unstaking requires waiting this many seconds (default: 21 days)","returns":{"_0":"Number of seconds required to wait for full unstaking"}},"getSecondsToUnlockStaking()":{"details":"Users must wait this many seconds after unstaking before they can stake again","returns":{"_0":"Number of seconds required to wait between unstaking and staking"}},"getSizeOfAddressHistory(address)":{"details":"Useful for pagination or checking if an address has any staking history","params":{"_account":"Address to query the history size for"},"returns":{"_0":"Number of transactions in the history"}},"getTimeToUserUnlockFullUnstakingTime(address)":{"details":"Full unstaking requires waiting 21 days after the last time their balance reached 0","params":{"_account":"Address to check the unlock time for"},"returns":{"_0":"Timestamp when full unstaking will be allowed"}},"getTimeToUserUnlockStakingTime(address)":{"details":"Users must wait a configurable period after unstaking before they can stake again","params":{"_account":"Address to check the unlock time for"},"returns":{"_0":"Timestamp when staking will be allowed again (0 if already allowed)"}},"getUserAmountStaked(address)":{"details":"Returns the total staked amount from the user\'s most recent transaction","params":{"_account":"Address to check the staked amount for"},"returns":{"_0":"Amount of staking tokens currently staked by the user"}},"gimmeYiel(address)":{"details":"Interacts with the Estimator contract to calculate and distribute rewards","params":{"user":"Address of the user claiming rewards"},"returns":{"amountTotalToBeRewarded":"Total amount of rewards to be distributed","epochAnswer":"Epoch identifier for the reward calculation","idToOverwriteUserHistory":"Index in user history to update with reward info","timestampToBeOverwritten":"Timestamp to record for the reward transaction","tokenToBeRewarded":"Address of the token being rewarded"}},"goldenStaking(bool,uint256,bytes)":{"details":"Uses sync nonces for coordination with Core operations.","params":{"amountOfStaking":"Number of staking tokens.","isStaking":"True to stake, false to unstake.","signaturePay":"Authorization signature for Core payment."}},"initializeSystemContracts(address,address)":{"params":{"_core":"EVVM Core contract address (payments).","_estimator":"Estimator contract address (yield calculations)."}},"prepareChangeAllowPresaleStaking()":{"details":"Initiates the time-delayed process to enable/disable presale staking"},"prepareChangeAllowPublicStaking()":{"details":"Initiates the time-delayed process to enable/disable public staking"},"prepareServiceStaking(uint256)":{"details":"Records pre-staking state for atomic validation Service Staking Process (ATOMIC - Same TX): 1. prepareServiceStaking: Record balances 2. Evvm.caPay: Transfer Principal Tokens 3. confirmServiceStaking: Validate and complete CRITICAL WARNING: - All 3 steps MUST occur in single transaction - If incomplete, tokens permanently locked - No recovery mechanism for failed process - Service loses tokens if not atomic Metadata Recorded: - service: msg.sender (contract address) - timestamp: block.timestamp (atomicity check) - amountOfStaking: Requested staking tokens - amountServiceBeforeStaking: Service PT balance - amountStakingBeforeStaking: Staking PT balance Core.sol Payment (Step 2): - Service must call Evvm.caPay after this - Transfer: PRICE_OF_STAKING * amountOfStaking - Recipient: address(this) (Staking contract) - Token: Principal Token from Core.sol Access Control: - onlyCA modifier: Only contracts allowed - Checks code size via assembly - EOAs rejected (size == 0)","params":{"amountOfStaking":"Number of staking tokens to acquire"}},"prepareSetSecondsToUnllockFullUnstaking(uint256)":{"details":"Part of the time-delayed governance system for full unstaking time changes","params":{"_secondsToUnllockFullUnstaking":"New number of seconds users must wait for full unstaking (default: 21 days)"}},"presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":{"params":{"isStaking":"True to stake, false to unstake.","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment.","priorityFeePay":"Optional priority fee.","signature":"Participant\'s authorization signature.","signaturePay":"Signature for the Core payment.","user":"Participant address."}},"priceOfStaking()":{"details":"Returns the constant price of 5083 Principal Tokens per staking","returns":{"_0":"Price of one staking token in Principal Tokens (with 18 decimals)"}},"proposeAdmin(address)":{"details":"Part of the time-delayed governance system for admin changes","params":{"_newAdmin":"Address of the proposed new admin"}},"proposeEstimator(address)":{"details":"Part of the time-delayed governance system for estimator contract changes","params":{"_estimator":"Address of the proposed new estimator contract"}},"proposeGoldenFisher(address)":{"details":"Part of the time-delayed governance system for golden fisher changes","params":{"_goldenFisher":"Address of the proposed new golden fisher"}},"proposeSetSecondsToUnlockStaking(uint256)":{"details":"Part of the time-delayed governance system for staking unlock time changes","params":{"_secondsToUnlockStaking":"New number of seconds users must wait after unstaking before staking again"}},"publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"params":{"amountOfStaking":"Number of tokens.","isStaking":"True to stake, false to unstake.","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment.","priorityFeePay":"Optional priority fee.","signature":"Participant\'s authorization signature.","signaturePay":"Signature for the Core payment.","user":"Participant address."}},"rejectProposalAdmin()":{"details":"Only current admin can reject the pending proposal"},"rejectProposalEstimator()":{"details":"Only current admin can reject the pending estimator contract proposal"},"rejectProposalGoldenFisher()":{"details":"Only current admin can reject the pending golden fisher proposal"},"rejectProposalSetSecondsToUnlockStaking()":{"details":"Only current admin can reject the pending staking unlock time proposal"},"serviceUnstaking(uint256)":{"details":"Simplified unstaking process for services - no signature or payment required, just direct unstakingThe service will receive Principal Tokens equal to: amountOfStaking * PRICE_OF_STAKINGSubject to the same time locks as regular unstaking (21 days for full unstake)Only callable by contract accounts (services), not EOAs","params":{"amountOfStaking":"Amount of staking tokens to unstake"}}},"stateVariables":{"EVVM_ADDRESS":{"details":"Address of the EVVM core contract"},"LIMIT_PRESALE_STAKER":{"details":"Maximum number of presale stakers allowed"},"PRICE_OF_STAKING":{"details":"Price of one staking main token (5083 main token = 1 staking)"},"admin":{"details":"Admin address management with proposal system"},"allowPresaleStaking":{"details":"Flag to enable/disable presale staking"},"allowPublicStaking":{"details":"Flag to enable/disable public staking"},"breakerSetupEstimatorAndEvvm":{"details":"One-time setup breaker for estimator and EVVM addresses"},"estimatorAddress":{"details":"Estimator contract address management with proposal system"},"goldenFisher":{"details":"Golden Fisher address management with proposal system"},"presaleStakerCount":{"details":"Current count of registered presale stakers"},"secondsToUnllockFullUnstaking":{"details":"Time delay for full unstaking (21 days default)"},"secondsToUnlockStaking":{"details":"Time delay for regular staking after unstaking"},"serviceStakingData":{"details":"Variable to store service staking metadata"},"userHistory":{"details":"Mapping to store complete staking history for each user"},"userPresaleStaker":{"details":"Mapping to store presale staker metadata"}},"title":"EVVM Staking","version":1},"userdoc":{"kind":"user","methods":{"acceptNewAdmin()":{"notice":"Accepts the admin proposal and becomes the new admin"},"acceptNewEstimator()":{"notice":"Accepts the estimator contract proposal after the time delay has passed"},"acceptNewGoldenFisher()":{"notice":"Accepts the golden fisher proposal after the time delay has passed"},"acceptSetSecondsToUnlockStaking()":{"notice":"Accepts the staking unlock time proposal after the time delay has passed"},"addPresaleStaker(address)":{"notice":"Adds a single address to the presale staker list"},"addPresaleStakers(address[])":{"notice":"Adds multiple addresses to the presale staker list in batch"},"cancelChangeAllowPresaleStaking()":{"notice":"Cancels the pending presale staking flag change"},"cancelChangeAllowPublicStaking()":{"notice":"Cancels the pending public staking flag change"},"cancelSetSecondsToUnllockFullUnstaking()":{"notice":"Cancels the current full unstaking time proposal"},"confirmChangeAllowPresaleStaking()":{"notice":"Confirms and executes the presale staking flag toggle after the time delay has passed"},"confirmChangeAllowPublicStaking()":{"notice":"Confirms and executes the public staking flag toggle after the time delay has passed"},"confirmServiceStaking()":{"notice":"Step 3: Confirm service staking after payment"},"confirmSetSecondsToUnllockFullUnstaking()":{"notice":"Confirms the full unstaking time proposal after the time delay has passed"},"constructor":{"notice":"Initializes the staking contract."},"getAddressHistory(address)":{"notice":"Returns the complete staking history for an address"},"getAddressHistoryByIndex(address,uint256)":{"notice":"Returns a specific transaction from an address\'s staking history"},"getAllowPresaleStaking()":{"notice":"Returns the complete presale staking configuration and status"},"getAllowPublicStaking()":{"notice":"Returns the complete public staking configuration and status"},"getCoreAddress()":{"notice":"Returns the address of the EVVM core contract"},"getEstimatorAddress()":{"notice":"Returns the current estimator contract address"},"getEstimatorProposal()":{"notice":"Returns the proposed new estimator contract address (if any)"},"getEvvmID()":{"notice":"Gets the unique identifier string for this EVVM instance"},"getGoldenFisher()":{"notice":"Returns the current golden fisher address"},"getGoldenFisherProposal()":{"notice":"Returns the proposed new golden fisher address (if any)"},"getMateAddress()":{"notice":"Returns the address representing the Principal Token"},"getOwner()":{"notice":"Returns the current admin/owner address"},"getPresaleStaker(address)":{"notice":"Returns presale staker information for a given address"},"getPresaleStakerCount()":{"notice":"Returns the current number of registered presale stakers"},"getSecondsToUnlockFullUnstaking()":{"notice":"Returns the current time delay for full unstaking operations"},"getSecondsToUnlockStaking()":{"notice":"Returns the current time delay for regular staking operations"},"getSizeOfAddressHistory(address)":{"notice":"Returns the number of transactions in an address\'s staking history"},"getTimeToUserUnlockFullUnstakingTime(address)":{"notice":"Calculates when a user can perform full unstaking (withdraw all tokens)"},"getTimeToUserUnlockStakingTime(address)":{"notice":"Calculates when a user can stake again after unstaking"},"getUserAmountStaked(address)":{"notice":"Returns the current amount of staking tokens staked by a user"},"gimmeYiel(address)":{"notice":"Allows users to claim their staking rewards (yield)"},"goldenStaking(bool,uint256,bytes)":{"notice":"Unlimited staking/unstaking for the Golden Fisher."},"initializeSystemContracts(address,address)":{"notice":"Configures system contract integrations once."},"prepareChangeAllowPresaleStaking()":{"notice":"Prepares to toggle the presale staking flag with 1-day time delay"},"prepareChangeAllowPublicStaking()":{"notice":"Prepares to toggle the public staking flag with 1-day time delay"},"prepareServiceStaking(uint256)":{"notice":"Step 1: Prepare service (contract) staking"},"prepareSetSecondsToUnllockFullUnstaking(uint256)":{"notice":"Proposes a new time delay for full unstaking operations with 1-day time delay"},"presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"White-listed presale staking (max 2 tokens per user)."},"priceOfStaking()":{"notice":"Returns the fixed price of one staking token in Principal Tokens"},"proposeAdmin(address)":{"notice":"Proposes a new admin address with 1-day time delay"},"proposeEstimator(address)":{"notice":"Proposes a new estimator contract address with 1-day time delay"},"proposeGoldenFisher(address)":{"notice":"Proposes a new golden fisher address with 1-day time delay"},"proposeSetSecondsToUnlockStaking(uint256)":{"notice":"Proposes a new time delay for staking after unstaking with 1-day time delay"},"publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Public staking open to any user when enabled."},"rejectProposalAdmin()":{"notice":"Rejects the current admin proposal"},"rejectProposalEstimator()":{"notice":"Rejects the current estimator contract proposal"},"rejectProposalGoldenFisher()":{"notice":"Rejects the current golden fisher proposal"},"rejectProposalSetSecondsToUnlockStaking()":{"notice":"Rejects the current staking unlock time proposal"},"serviceUnstaking(uint256)":{"notice":"Allows a service/contract account to unstake their staking tokens"}},"notice":"/$$$$$$ /$$ /$$ /$$ /$$__ $$| $$ | $$ |__/ | $$ \\\\__/$$$$$$ /$$$$$$| $$ /$$/$$/$$$$$$$ /$$$$$$ | $$$$$|_ $$_/ |____ $| $$ /$$| $| $$__ $$/$$__ $$ \\\\____ $$| $$ /$$$$$$| $$$$$$/| $| $$ \\\\ $| $$ \\\\ $$ /$$ \\\\ $$| $$ /$$/$$__ $| $$_ $$| $| $$ | $| $$ | $$ | $$$$$$/| $$$$| $$$$$$| $$ \\\\ $| $| $$ | $| $$$$$$$ \\\\______/ \\\\___/ \\\\_______|__/ \\\\__|__|__/ |__/\\\\____ $$ /$$ \\\\ $$ | $$$$$$/ \\\\______/ \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u255a\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u255a\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d Validator staking mechanism for the EVVM ecosystem.","version":1}},"settings":{"compilationTarget":{"src/contracts/staking/Staking.sol":"Staking"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/contracts/staking/Estimator.sol":{"keccak256":"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"]},"src/contracts/staking/Staking.sol":{"keccak256":"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/errors/StakingError.sol":{"keccak256":"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/structs/StakingStructs.sol":{"keccak256":"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]},"src/library/utils/signature/StakingHashUtils.sol":{"keccak256":"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"initialAdmin",type:"address"},{internalType:"address",name:"initialGoldenFisher",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],type:"error",name:"AddressIsNotAService"},{inputs:[],type:"error",name:"AddressMismatch"},{inputs:[],type:"error",name:"AddressMustWaitToFullUnstake"},{inputs:[],type:"error",name:"AddressMustWaitToStakeAgain"},{inputs:[],type:"error",name:"LimitPresaleStakersExceeded"},{inputs:[],type:"error",name:"PresaleStakingDisabled"},{inputs:[],type:"error",name:"PublicStakingDisabled"},{inputs:[],type:"error",name:"SenderIsNotAdmin"},{inputs:[],type:"error",name:"SenderIsNotGoldenFisher"},{inputs:[],type:"error",name:"SenderIsNotProposedAdmin"},{inputs:[{internalType:"uint256",name:"requiredAmount",type:"uint256"}],type:"error",name:"ServiceDoesNotFulfillCorrectStakingAmount"},{inputs:[],type:"error",name:"ServiceDoesNotStakeInSameTx"},{inputs:[],type:"error",name:"TimeToAcceptProposalNotReached"},{inputs:[],type:"error",name:"UserIsNotPresaleStaker"},{inputs:[],type:"error",name:"UserPresaleStakerLimitExceeded"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptNewAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptNewEstimator"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptNewGoldenFisher"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptSetSecondsToUnlockStaking"},{inputs:[{internalType:"address",name:"_staker",type:"address"}],stateMutability:"nonpayable",type:"function",name:"addPresaleStaker"},{inputs:[{internalType:"address[]",name:"_stakers",type:"address[]"}],stateMutability:"nonpayable",type:"function",name:"addPresaleStakers"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelChangeAllowPresaleStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelChangeAllowPublicStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelSetSecondsToUnllockFullUnstaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"confirmChangeAllowPresaleStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"confirmChangeAllowPublicStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"confirmServiceStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"confirmSetSecondsToUnllockFullUnstaking"},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getAddressHistory",outputs:[{internalType:"struct StakingStructs.HistoryMetadata[]",name:"",type:"tuple[]",components:[{internalType:"bytes32",name:"transactionType",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"timestamp",type:"uint256"},{internalType:"uint256",name:"totalStaked",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"_account",type:"address"},{internalType:"uint256",name:"_index",type:"uint256"}],stateMutability:"view",type:"function",name:"getAddressHistoryByIndex",outputs:[{internalType:"struct StakingStructs.HistoryMetadata",name:"",type:"tuple",components:[{internalType:"bytes32",name:"transactionType",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"timestamp",type:"uint256"},{internalType:"uint256",name:"totalStaked",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getAllowPresaleStaking",outputs:[{internalType:"struct ProposalStructs.BoolTypeProposal",name:"",type:"tuple",components:[{internalType:"bool",name:"flag",type:"bool"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getAllowPublicStaking",outputs:[{internalType:"struct ProposalStructs.BoolTypeProposal",name:"",type:"tuple",components:[{internalType:"bool",name:"flag",type:"bool"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getCoreAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEstimatorAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEstimatorProposal",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmID",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getGoldenFisher",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getGoldenFisherProposal",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"getIfUsedAsyncNonce",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"view",type:"function",name:"getMateAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getOwner",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getPresaleStaker",outputs:[{internalType:"bool",name:"",type:"bool"},{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPresaleStakerCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getSecondsToUnlockFullUnstaking",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getSecondsToUnlockStaking",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getSizeOfAddressHistory",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getTimeToUserUnlockFullUnstakingTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getTimeToUserUnlockStakingTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getUserAmountStaked",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"nonpayable",type:"function",name:"gimmeYiel",outputs:[{internalType:"bytes32",name:"epochAnswer",type:"bytes32"},{internalType:"address",name:"tokenToBeRewarded",type:"address"},{internalType:"uint256",name:"amountTotalToBeRewarded",type:"uint256"},{internalType:"uint256",name:"idToOverwriteUserHistory",type:"uint256"},{internalType:"uint256",name:"timestampToBeOverwritten",type:"uint256"}]},{inputs:[{internalType:"bool",name:"isStaking",type:"bool"},{internalType:"uint256",name:"amountOfStaking",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"goldenStaking"},{inputs:[{internalType:"address",name:"_estimator",type:"address"},{internalType:"address",name:"_core",type:"address"}],stateMutability:"nonpayable",type:"function",name:"initializeSystemContracts"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"prepareChangeAllowPresaleStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"prepareChangeAllowPublicStaking"},{inputs:[{internalType:"uint256",name:"amountOfStaking",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"prepareServiceStaking"},{inputs:[{internalType:"uint256",name:"_secondsToUnllockFullUnstaking",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"prepareSetSecondsToUnllockFullUnstaking"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"isStaking",type:"bool"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"presaleStaking"},{inputs:[],stateMutability:"pure",type:"function",name:"priceOfStaking",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_newAdmin",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeAdmin"},{inputs:[{internalType:"address",name:"_estimator",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeEstimator"},{inputs:[{internalType:"address",name:"_goldenFisher",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeGoldenFisher"},{inputs:[{internalType:"uint256",name:"_secondsToUnlockStaking",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeSetSecondsToUnlockStaking"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"isStaking",type:"bool"},{internalType:"uint256",name:"amountOfStaking",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"publicStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalEstimator"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalGoldenFisher"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalSetSecondsToUnlockStaking"},{inputs:[{internalType:"uint256",name:"amountOfStaking",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"serviceUnstaking"}],devdoc:{kind:"dev",methods:{"acceptNewAdmin()":{details:"Can only be called by the proposed admin after the time delay has passed"},"acceptNewEstimator()":{details:"Can only be called by the current admin after the 1-day time delay"},"acceptNewGoldenFisher()":{details:"Can only be called by the current admin after the 1-day time delay"},"acceptSetSecondsToUnlockStaking()":{details:"Can only be called by the current admin after the 1-day time delay"},"addPresaleStaker(address)":{details:"Only admin can call this function, limited to 800 presale stakers total",params:{_staker:"Address to be added to the presale staker list"}},"addPresaleStakers(address[])":{details:"Only admin can call this function, limited to 800 presale stakers total",params:{_stakers:"Array of addresses to be added to the presale staker list"}},"cancelChangeAllowPresaleStaking()":{details:"Only current admin can cancel the pending presale staking toggle"},"cancelChangeAllowPublicStaking()":{details:"Only current admin can cancel the pending public staking toggle"},"cancelSetSecondsToUnllockFullUnstaking()":{details:"Only current admin can cancel the pending full unstaking time proposal"},"confirmChangeAllowPresaleStaking()":{details:"Toggles between enabled/disabled state for presale staking after 1-day delay"},"confirmChangeAllowPublicStaking()":{details:"Toggles between enabled/disabled state for public staking after 1-day delay"},"confirmServiceStaking()":{details:"Validates payment and completes atomic staking Validation Checks: 1. Timestamp: Must equal prepareServiceStaking tx - Ensures atomicity (same transaction) - serviceStakingData.timestamp == block.timestamp 2. Caller: Must match prepareServiceStaking caller - serviceStakingData.service == msg.sender - Prevents staking hijacking 3. Payment Amount: Validates exact transfer - Service balance decreased by exact amount - Staking balance increased by exact amount - totalStakingRequired = PRICE_OF_STAKING * amountOfStaking Core.sol Integration: - Validates caPay occurred between steps 1 and 3 - Checks balance deltas via Evvm.getBalance - Token: core.getPrincipalTokenAddress() - Must be exact amount (no overpayment/underpayment) Completion: - Calls stakingBaseProcess on success - Records history with transaction type 0x01 - Updates userHistory with staking event - Service becomes staker (isAddressStaker = true) Error Cases: - ServiceDoesNotStakeInSameTx: timestamp mismatch - AddressMismatch: caller mismatch - ServiceDoesNotFulfillCorrectStakingAmount: payment incorrect Access Control: - onlyCA modifier: Only contracts allowed"},"confirmSetSecondsToUnllockFullUnstaking()":{details:"Can only be called by the current admin after the 1-day time delay"},constructor:{params:{initialAdmin:"System administrator.",initialGoldenFisher:"Authorized Golden Fisher address."}},"getAddressHistory(address)":{details:"Returns an array of all staking transactions and rewards for the user",params:{_account:"Address to query the history for"},returns:{_0:"Array of Structs.HistoryMetadata containing all transactions"}},"getAddressHistoryByIndex(address,uint256)":{details:"Allows accessing individual transactions by index",params:{_account:"Address to query the history for",_index:"Index of the transaction to retrieve (0-based)"},returns:{_0:"Structs.HistoryMetadata of the transaction at the specified index"}},"getAllowPresaleStaking()":{details:"Includes current flag state and any pending changes with timestamps",returns:{_0:"ProposalStructs.BoolTypeProposal struct containing flag and timeToAccept"}},"getAllowPublicStaking()":{details:"Includes current flag state and any pending changes with timestamps",returns:{_0:"ProposalStructs.BoolTypeProposal struct containing flag and timeToAccept"}},"getCoreAddress()":{details:"The EVVM contract handles payments and staker registration",returns:{_0:"Address of the EVVM core contract"}},"getEstimatorAddress()":{details:"The estimator calculates staking rewards and yields",returns:{_0:"Address of the current estimator contract"}},"getEstimatorProposal()":{details:"Shows pending estimator changes in the governance system",returns:{_0:"Address of the proposed estimator contract (zero address if none)"}},"getEvvmID()":{details:"Returns the EvvmID used for distinguishing different EVVM deployments",returns:{_0:"Unique EvvmID string"}},"getGoldenFisher()":{details:"The golden fisher has special staking privileges",returns:{_0:"Address of the current golden fisher"}},"getGoldenFisherProposal()":{details:"Shows pending golden fisher changes in the governance system",returns:{_0:"Address of the proposed golden fisher (zero address if none)"}},"getMateAddress()":{details:"This is a constant address used to represent the principal token",returns:{_0:"Address representing the Principal Token (0x...0001)"}},"getOwner()":{details:"The admin has full control over contract parameters and governance",returns:{_0:"Address of the current contract admin"}},"getPresaleStaker(address)":{details:"Shows if an address is allowed for presale and how many tokens they've staked",params:{_account:"Address to check presale status for"},returns:{_0:"isAllow True if the address is allowed for presale staking",_1:"stakingAmount Number of staking tokens currently staked in presale (max 2)"}},"getPresaleStakerCount()":{details:"Maximum allowed is 800 presale stakers",returns:{_0:"Current count of presale stakers"}},"getSecondsToUnlockFullUnstaking()":{details:"Full unstaking requires waiting this many seconds (default: 21 days)",returns:{_0:"Number of seconds required to wait for full unstaking"}},"getSecondsToUnlockStaking()":{details:"Users must wait this many seconds after unstaking before they can stake again",returns:{_0:"Number of seconds required to wait between unstaking and staking"}},"getSizeOfAddressHistory(address)":{details:"Useful for pagination or checking if an address has any staking history",params:{_account:"Address to query the history size for"},returns:{_0:"Number of transactions in the history"}},"getTimeToUserUnlockFullUnstakingTime(address)":{details:"Full unstaking requires waiting 21 days after the last time their balance reached 0",params:{_account:"Address to check the unlock time for"},returns:{_0:"Timestamp when full unstaking will be allowed"}},"getTimeToUserUnlockStakingTime(address)":{details:"Users must wait a configurable period after unstaking before they can stake again",params:{_account:"Address to check the unlock time for"},returns:{_0:"Timestamp when staking will be allowed again (0 if already allowed)"}},"getUserAmountStaked(address)":{details:"Returns the total staked amount from the user's most recent transaction",params:{_account:"Address to check the staked amount for"},returns:{_0:"Amount of staking tokens currently staked by the user"}},"gimmeYiel(address)":{details:"Interacts with the Estimator contract to calculate and distribute rewards",params:{user:"Address of the user claiming rewards"},returns:{amountTotalToBeRewarded:"Total amount of rewards to be distributed",epochAnswer:"Epoch identifier for the reward calculation",idToOverwriteUserHistory:"Index in user history to update with reward info",timestampToBeOverwritten:"Timestamp to record for the reward transaction",tokenToBeRewarded:"Address of the token being rewarded"}},"goldenStaking(bool,uint256,bytes)":{details:"Uses sync nonces for coordination with Core operations.",params:{amountOfStaking:"Number of staking tokens.",isStaking:"True to stake, false to unstake.",signaturePay:"Authorization signature for Core payment."}},"initializeSystemContracts(address,address)":{params:{_core:"EVVM Core contract address (payments).",_estimator:"Estimator contract address (yield calculations)."}},"prepareChangeAllowPresaleStaking()":{details:"Initiates the time-delayed process to enable/disable presale staking"},"prepareChangeAllowPublicStaking()":{details:"Initiates the time-delayed process to enable/disable public staking"},"prepareServiceStaking(uint256)":{details:"Records pre-staking state for atomic validation Service Staking Process (ATOMIC - Same TX): 1. prepareServiceStaking: Record balances 2. Evvm.caPay: Transfer Principal Tokens 3. confirmServiceStaking: Validate and complete CRITICAL WARNING: - All 3 steps MUST occur in single transaction - If incomplete, tokens permanently locked - No recovery mechanism for failed process - Service loses tokens if not atomic Metadata Recorded: - service: msg.sender (contract address) - timestamp: block.timestamp (atomicity check) - amountOfStaking: Requested staking tokens - amountServiceBeforeStaking: Service PT balance - amountStakingBeforeStaking: Staking PT balance Core.sol Payment (Step 2): - Service must call Evvm.caPay after this - Transfer: PRICE_OF_STAKING * amountOfStaking - Recipient: address(this) (Staking contract) - Token: Principal Token from Core.sol Access Control: - onlyCA modifier: Only contracts allowed - Checks code size via assembly - EOAs rejected (size == 0)",params:{amountOfStaking:"Number of staking tokens to acquire"}},"prepareSetSecondsToUnllockFullUnstaking(uint256)":{details:"Part of the time-delayed governance system for full unstaking time changes",params:{_secondsToUnllockFullUnstaking:"New number of seconds users must wait for full unstaking (default: 21 days)"}},"presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":{params:{isStaking:"True to stake, false to unstake.",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment.",priorityFeePay:"Optional priority fee.",signature:"Participant's authorization signature.",signaturePay:"Signature for the Core payment.",user:"Participant address."}},"priceOfStaking()":{details:"Returns the constant price of 5083 Principal Tokens per staking",returns:{_0:"Price of one staking token in Principal Tokens (with 18 decimals)"}},"proposeAdmin(address)":{details:"Part of the time-delayed governance system for admin changes",params:{_newAdmin:"Address of the proposed new admin"}},"proposeEstimator(address)":{details:"Part of the time-delayed governance system for estimator contract changes",params:{_estimator:"Address of the proposed new estimator contract"}},"proposeGoldenFisher(address)":{details:"Part of the time-delayed governance system for golden fisher changes",params:{_goldenFisher:"Address of the proposed new golden fisher"}},"proposeSetSecondsToUnlockStaking(uint256)":{details:"Part of the time-delayed governance system for staking unlock time changes",params:{_secondsToUnlockStaking:"New number of seconds users must wait after unstaking before staking again"}},"publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{params:{amountOfStaking:"Number of tokens.",isStaking:"True to stake, false to unstake.",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment.",priorityFeePay:"Optional priority fee.",signature:"Participant's authorization signature.",signaturePay:"Signature for the Core payment.",user:"Participant address."}},"rejectProposalAdmin()":{details:"Only current admin can reject the pending proposal"},"rejectProposalEstimator()":{details:"Only current admin can reject the pending estimator contract proposal"},"rejectProposalGoldenFisher()":{details:"Only current admin can reject the pending golden fisher proposal"},"rejectProposalSetSecondsToUnlockStaking()":{details:"Only current admin can reject the pending staking unlock time proposal"},"serviceUnstaking(uint256)":{details:"Simplified unstaking process for services - no signature or payment required, just direct unstakingThe service will receive Principal Tokens equal to: amountOfStaking * PRICE_OF_STAKINGSubject to the same time locks as regular unstaking (21 days for full unstake)Only callable by contract accounts (services), not EOAs",params:{amountOfStaking:"Amount of staking tokens to unstake"}}},version:1},userdoc:{kind:"user",methods:{"acceptNewAdmin()":{notice:"Accepts the admin proposal and becomes the new admin"},"acceptNewEstimator()":{notice:"Accepts the estimator contract proposal after the time delay has passed"},"acceptNewGoldenFisher()":{notice:"Accepts the golden fisher proposal after the time delay has passed"},"acceptSetSecondsToUnlockStaking()":{notice:"Accepts the staking unlock time proposal after the time delay has passed"},"addPresaleStaker(address)":{notice:"Adds a single address to the presale staker list"},"addPresaleStakers(address[])":{notice:"Adds multiple addresses to the presale staker list in batch"},"cancelChangeAllowPresaleStaking()":{notice:"Cancels the pending presale staking flag change"},"cancelChangeAllowPublicStaking()":{notice:"Cancels the pending public staking flag change"},"cancelSetSecondsToUnllockFullUnstaking()":{notice:"Cancels the current full unstaking time proposal"},"confirmChangeAllowPresaleStaking()":{notice:"Confirms and executes the presale staking flag toggle after the time delay has passed"},"confirmChangeAllowPublicStaking()":{notice:"Confirms and executes the public staking flag toggle after the time delay has passed"},"confirmServiceStaking()":{notice:"Step 3: Confirm service staking after payment"},"confirmSetSecondsToUnllockFullUnstaking()":{notice:"Confirms the full unstaking time proposal after the time delay has passed"},constructor:{notice:"Initializes the staking contract."},"getAddressHistory(address)":{notice:"Returns the complete staking history for an address"},"getAddressHistoryByIndex(address,uint256)":{notice:"Returns a specific transaction from an address's staking history"},"getAllowPresaleStaking()":{notice:"Returns the complete presale staking configuration and status"},"getAllowPublicStaking()":{notice:"Returns the complete public staking configuration and status"},"getCoreAddress()":{notice:"Returns the address of the EVVM core contract"},"getEstimatorAddress()":{notice:"Returns the current estimator contract address"},"getEstimatorProposal()":{notice:"Returns the proposed new estimator contract address (if any)"},"getEvvmID()":{notice:"Gets the unique identifier string for this EVVM instance"},"getGoldenFisher()":{notice:"Returns the current golden fisher address"},"getGoldenFisherProposal()":{notice:"Returns the proposed new golden fisher address (if any)"},"getMateAddress()":{notice:"Returns the address representing the Principal Token"},"getOwner()":{notice:"Returns the current admin/owner address"},"getPresaleStaker(address)":{notice:"Returns presale staker information for a given address"},"getPresaleStakerCount()":{notice:"Returns the current number of registered presale stakers"},"getSecondsToUnlockFullUnstaking()":{notice:"Returns the current time delay for full unstaking operations"},"getSecondsToUnlockStaking()":{notice:"Returns the current time delay for regular staking operations"},"getSizeOfAddressHistory(address)":{notice:"Returns the number of transactions in an address's staking history"},"getTimeToUserUnlockFullUnstakingTime(address)":{notice:"Calculates when a user can perform full unstaking (withdraw all tokens)"},"getTimeToUserUnlockStakingTime(address)":{notice:"Calculates when a user can stake again after unstaking"},"getUserAmountStaked(address)":{notice:"Returns the current amount of staking tokens staked by a user"},"gimmeYiel(address)":{notice:"Allows users to claim their staking rewards (yield)"},"goldenStaking(bool,uint256,bytes)":{notice:"Unlimited staking/unstaking for the Golden Fisher."},"initializeSystemContracts(address,address)":{notice:"Configures system contract integrations once."},"prepareChangeAllowPresaleStaking()":{notice:"Prepares to toggle the presale staking flag with 1-day time delay"},"prepareChangeAllowPublicStaking()":{notice:"Prepares to toggle the public staking flag with 1-day time delay"},"prepareServiceStaking(uint256)":{notice:"Step 1: Prepare service (contract) staking"},"prepareSetSecondsToUnllockFullUnstaking(uint256)":{notice:"Proposes a new time delay for full unstaking operations with 1-day time delay"},"presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"White-listed presale staking (max 2 tokens per user)."},"priceOfStaking()":{notice:"Returns the fixed price of one staking token in Principal Tokens"},"proposeAdmin(address)":{notice:"Proposes a new admin address with 1-day time delay"},"proposeEstimator(address)":{notice:"Proposes a new estimator contract address with 1-day time delay"},"proposeGoldenFisher(address)":{notice:"Proposes a new golden fisher address with 1-day time delay"},"proposeSetSecondsToUnlockStaking(uint256)":{notice:"Proposes a new time delay for staking after unstaking with 1-day time delay"},"publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Public staking open to any user when enabled."},"rejectProposalAdmin()":{notice:"Rejects the current admin proposal"},"rejectProposalEstimator()":{notice:"Rejects the current estimator contract proposal"},"rejectProposalGoldenFisher()":{notice:"Rejects the current golden fisher proposal"},"rejectProposalSetSecondsToUnlockStaking()":{notice:"Rejects the current staking unlock time proposal"},"serviceUnstaking(uint256)":{notice:"Allows a service/contract account to unstake their staking tokens"}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/staking/Staking.sol":"Staking"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Estimator.sol":{keccak256:"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057",urls:["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Staking.sol":{keccak256:"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a",urls:["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/StakingError.sol":{keccak256:"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2",urls:["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/StakingStructs.sol":{keccak256:"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf",urls:["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/StakingHashUtils.sol":{keccak256:"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65",urls:["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:68},og=rF.abi,aF=sF.abi,eF=iF.abi,QP=tF.abi,JP=nF.abi;class qG extends dG{constructor(Q){super({...Q,abi:aF})}async getNextCurrentSyncNonce(){return this.view("getNextCurrentSyncNonce",[this.signer.address])}async getIfUsedAsyncNonce(Q){return this.view("getIfUsedAsyncNonce",[this.signer.address,Q])}async getBalance(Q,J){return this.view("getBalance",[Q,J])}async pay({toAddress:Q=K0,toIdentity:J="",tokenAddress:X,amount:G,priorityFee:Y,senderExecutor:q=K0,originExecutor:$=K0,nonce:W,isAsyncExec:j}){let K=await this.getEvvmID(),z="pay";if(Q!=K0&&J!="")throw Error("Can't call Core.pay with both toAddress and toIdentity");let N=this.buildHashPayload("pay",{to_address:Q,to_identity:J,token:X,amount:G,priorityFee:Y}),U=this.buildMessageToSign(K,q,N,$,W,j),M=await this.signer.signMessage(U);return new u0(this,K,"pay",{from:this.signer.address,to_address:Q,to_identity:J,token:X,amount:G,priorityFee:Y,senderExecutor:q,originExecutor:$,nonce:W,isAsyncExec:j,signature:M})}async dispersePay({toData:Q,tokenAddress:J,amount:X,priorityFee:G,senderExecutor:Y=K0,originExecutor:q=K0,nonce:$,isAsyncExec:W}){let j=await this.getEvvmID(),K="dispersePay",z=this.buildHashPayload("dispersePay",{toData:Q.map((M,D)=>{if(M.toAddress&&M.toIdentity)throw Error(`Error, cannot provide both toAddress and toIdentity (toData at index ${D})`);return[M.amount,M.toAddress?M.toAddress:K0,M.toIdentity?M.toIdentity:""]}),token:J,amount:X,priorityFee:G}),N=this.buildMessageToSign(j,Y,z,q,$,W),U=await this.signer.signMessage(N);return new u0(this,j,"dispersePay",{from:this.signer.address,toData:Q.map(({amount:M,toAddress:D,toIdentity:O})=>({amount:M,to_address:D?D:K0,to_identity:O?O:""})),token:J,amount:X,priorityFee:G,senderExecutor:Y,originExecutor:q,nonce:$,isAsyncExec:W,signature:U})}}s0([i0],qG.prototype,"pay",null),s0([i0],qG.prototype,"dispersePay",null);class r8 extends dG{constructor(Q){super({...Q,abi:eF})}async makeOffer({username:Q,expirationDate:J,amount:X,senderExecutor:G=K0,originExecutor:Y=K0,nonce:q,evvmSignedAction:$}){let W=await this.getEvvmID(),j="makeOffer",K=this.buildHashPayload("makeOffer",{username:Q,amount:X,expirationDate:J}),z=this.buildMessageToSign(W,G,K,Y,q,!0),N=await this.signer.signMessage(z);return new u0(this,W,"makeOffer",{user:this.signer.address,username:Q,expirationDate:J,amount:X,senderExecutor:G,originExecutor:Y,nonce:q,signature:N,priorityFeePay:$?.data.priorityFee,noncePay:$?.data.nonce,signaturePay:$?.data.signature})}async withdrawOffer({username:Q,offerID:J,senderExecutor:X=K0,originExecutor:G=K0,nonce:Y,evvmSignedAction:q}){let $=await this.getEvvmID(),W=this.buildHashPayload("withdrawOffer",{username:Q,offerID:J}),j=this.buildMessageToSign($,X,W,G,Y,!0),K=await this.signer.signMessage(j);return new u0(this,$,"withdrawOffer",{user:this.signer.address,username:Q,offerID:J,senderExecutor:X,originExecutor:G,nonce:Y,signature:K,priorityFeePay:q?.data.priorityFee,noncePay:q?.data.nonce,signaturePay:q?.data.signature})}async acceptOffer({username:Q,offerID:J,senderExecutor:X=K0,originExecutor:G=K0,nonce:Y,evvmSignedAction:q}){let $=await this.getEvvmID(),W=this.buildHashPayload("acceptOffer",{username:Q,offerID:J}),j=this.buildMessageToSign($,X,W,G,Y,!0),K=await this.signer.signMessage(j);return new u0(this,$,"acceptOffer",{user:this.signer.address,username:Q,offerID:J,senderExecutor:X,originExecutor:G,nonce:Y,signature:K,priorityFeePay:q?.data.priorityFee,noncePay:q?.data.nonce,signaturePay:q?.data.signature})}async preRegistrationUsername({hashPreRegisteredUsername:Q,senderExecutor:J=K0,originExecutor:X=K0,nonce:G,evvmSignedAction:Y}){let q=await this.getEvvmID(),$=this.buildHashPayload("preRegistrationUsername",{hashPreRegisteredUsername:Q}),W=this.buildMessageToSign(q,J,$,X,G,!0),j=await this.signer.signMessage(W);return new u0(this,q,"preRegistrationUsername",{user:this.signer.address,hashPreRegisteredUsername:Q,senderExecutor:J,originExecutor:X,nonce:G,signature:j,priorityFeePay:Y?.data.priorityFee,noncePay:Y?.data.nonce,signaturePay:Y?.data.signature})}async registrationUsername({username:Q,lockNumber:J,senderExecutor:X=K0,originExecutor:G=K0,nonce:Y,evvmSignedAction:q}){let $=await this.getEvvmID(),W=this.buildHashPayload("registrationUsername",{username:Q,lockNumber:J}),j=this.buildMessageToSign($,X,W,G,Y,!0),K=await this.signer.signMessage(j);return new u0(this,$,"registrationUsername",{user:this.signer.address,username:Q,lockNumber:J,senderExecutor:X,originExecutor:G,nonce:Y,signature:K,priorityFeePay:q?.data.priorityFee,noncePay:q?.data.nonce,signaturePay:q?.data.signature})}async addCustomMetadata({identity:Q,value:J,senderExecutor:X=K0,originExecutor:G=K0,nonce:Y,evvmSignedAction:q}){let $=await this.getEvvmID(),W=this.buildHashPayload("addCustomMetadata",{identity:Q,value:J}),j=this.buildMessageToSign($,X,W,G,Y,!0),K=await this.signer.signMessage(j);return new u0(this,$,"addCustomMetadata",{user:this.signer.address,identity:Q,value:J,senderExecutor:X,originExecutor:G,nonce:Y,signature:K,priorityFeePay:q?.data.priorityFee,noncePay:q?.data.nonce,signaturePay:q?.data.signature})}async removeCustomMetadata({identity:Q,key:J,senderExecutor:X=K0,originExecutor:G=K0,nonce:Y,evvmSignedAction:q}){let $=await this.getEvvmID(),W=this.buildHashPayload("removeCustomMetadata",{identity:Q,key:J}),j=this.buildMessageToSign($,X,W,G,Y,!0),K=await this.signer.signMessage(j);return new u0(this,$,"removeCustomMetadata",{user:this.signer.address,identity:Q,key:J,senderExecutor:X,originExecutor:G,nonce:Y,signature:K,priorityFeePay:q?.data.priorityFee,noncePay:q?.data.nonce,signaturePay:q?.data.signature})}async flushCustomMetadata({identity:Q,senderExecutor:J=K0,originExecutor:X=K0,nonce:G,evvmSignedAction:Y}){let q=await this.getEvvmID(),$=this.buildHashPayload("flushCustomMetadata",{identity:Q}),W=this.buildMessageToSign(q,J,$,X,G,!0),j=await this.signer.signMessage(W);return new u0(this,q,"flushCustomMetadata",{user:this.signer.address,identity:Q,senderExecutor:J,originExecutor:X,nonce:G,signature:j,priorityFeePay:Y?.data.priorityFee,noncePay:Y?.data.nonce,signaturePay:Y?.data.signature})}async flushUsername({username:Q,senderExecutor:J=K0,originExecutor:X=K0,nonce:G,evvmSignedAction:Y}){let q=await this.getEvvmID(),$=this.buildHashPayload("flushUsername",{username:Q}),W=this.buildMessageToSign(q,J,$,X,G,!0),j=await this.signer.signMessage(W);return new u0(this,q,"flushUsername",{user:this.signer.address,username:Q,senderExecutor:J,originExecutor:X,nonce:G,signature:j,priorityFeePay:Y?.data.priorityFee,noncePay:Y?.data.nonce,signaturePay:Y?.data.signature})}async renewUsername({username:Q,senderExecutor:J=K0,originExecutor:X=K0,nonce:G,evvmSignedAction:Y}){let q=await this.getEvvmID(),$=this.buildHashPayload("renewUsername",{username:Q}),W=this.buildMessageToSign(q,J,$,X,G,!0),j=await this.signer.signMessage(W);return new u0(this,q,"renewUsername",{user:this.signer.address,username:Q,senderExecutor:J,originExecutor:X,nonce:G,signature:j,priorityFeePay:Y?.data.priorityFee,noncePay:Y?.data.nonce,signaturePay:Y?.data.signature})}}s0([i0],r8.prototype,"makeOffer",null),s0([i0],r8.prototype,"withdrawOffer",null),s0([i0],r8.prototype,"acceptOffer",null),s0([i0],r8.prototype,"preRegistrationUsername",null),s0([i0],r8.prototype,"registrationUsername",null),s0([i0],r8.prototype,"addCustomMetadata",null),s0([i0],r8.prototype,"removeCustomMetadata",null),s0([i0],r8.prototype,"flushCustomMetadata",null),s0([i0],r8.prototype,"flushUsername",null),s0([i0],r8.prototype,"renewUsername",null);class yq extends dG{constructor(Q){super({...Q,abi:JP})}async presaleStaking({isStaking:Q,senderExecutor:J=K0,originExecutor:X=K0,nonce:G,evvmSignedAction:Y}){let q=await this.getEvvmID(),$="presaleStaking",W=this.buildHashPayload("presaleStaking",{isStaking:Q,amountOfStaking:1n},{customAbiParams:[{name:"amountOfStaking",type:"uint256",insertAfter:"isStaking"}]}),j=this.buildMessageToSign(q,J,W,X,G,!0),K=await this.signer.signMessage(j);return new u0(this,q,"presaleStaking",{user:this.signer.address,isStaking:Q,senderExecutor:J,originExecutor:X,nonce:G,signature:K,priorityFeePay:Y?.data.priorityFee,noncePay:Y?.data.nonce,signaturePay:Y?.data.signature})}async publicStaking({isStaking:Q,amountOfStaking:J,senderExecutor:X=K0,originExecutor:G=K0,nonce:Y,evvmSignedAction:q}){let $=await this.getEvvmID(),W="publicStaking",j=this.buildHashPayload("publicStaking",{isStaking:Q,amountOfStaking:J}),K=this.buildMessageToSign($,X,j,G,Y,!0),z=await this.signer.signMessage(K);return new u0(this,$,"publicStaking",{user:this.signer.address,isStaking:Q,amountOfStaking:J,senderExecutor:X,originExecutor:G,nonce:Y,signature:z,priorityFeePay:q?.data.priorityFee,noncePay:q?.data.nonce,signaturePay:q?.data.signature})}async goldenStaking({isStaking:Q,amountOfStaking:J,evvmSignedAction:X}){let G=await this.getEvvmID(),Y=X?.data.signature;return new u0(this,G,"goldenStaking",{isStaking:Q,amountOfStaking:J,signaturePay:Y})}}s0([i0],yq.prototype,"presaleStaking",null),s0([i0],yq.prototype,"publicStaking",null),s0([i0],yq.prototype,"goldenStaking",null);class pY extends dG{constructor(Q){super({...Q,abi:QP})}async makeOrder({nonce:Q,tokenA:J,tokenB:X,amountA:G,amountB:Y,senderExecutor:q=K0,originExecutor:$=K0,evvmSignedAction:W}){let j=await this.getEvvmID(),K="makeOrder",z=this.buildHashPayload("makeOrder",{tokenA:J,tokenB:X,amountA:G,amountB:Y}),N=this.buildMessageToSign(j,q,z,$,Q,!0),U=await this.signer.signMessage(N);return new u0(this,j,"makeOrder",{user:this.signer.address,tokenA:J,tokenB:X,amountA:G,amountB:Y,senderExecutor:q,originExecutor:$,nonce:Q,signature:U,priorityFeePay:W.data.priorityFee,noncePay:W.data.nonce,signaturePay:W.data.signature})}async cancelOrder({nonce:Q,tokenA:J,tokenB:X,orderId:G,senderExecutor:Y=K0,originExecutor:q=K0,evvmSignedAction:$}){let W=await this.getEvvmID(),j="cancelOrder",K=this.buildHashPayload("cancelOrder",{tokenA:J,tokenB:X,orderId:G}),z=this.buildMessageToSign(W,Y,K,q,Q,!0),N=await this.signer.signMessage(z);return new u0(this,W,"cancelOrder",{user:this.signer.address,tokenA:J,tokenB:X,orderId:G,senderExecutor:Y,originExecutor:q,nonce:Q,signature:N,priorityFeePay:$?.data.priorityFee,noncePay:$?.data.nonce,signaturePay:$?.data.signature})}async dispatchOrder_fillPropotionalFee({nonce:Q,tokenA:J,tokenB:X,orderId:G,amountOfTokenBToFill:Y,senderExecutor:q=K0,originExecutor:$=K0,evvmSignedAction:W}){let j=await this.getEvvmID(),K="dispatchOrder_fillPropotionalFee",z=this.buildHashPayload("dispatchOrder_fillPropotionalFee",{tokenA:J,tokenB:X,orderId:G}),N=this.buildMessageToSign(j,q,z,$,Q,!0),U=await this.signer.signMessage(N);return new u0(this,j,"dispatchOrder_fillPropotionalFee",{user:this.signer.address,tokenA:J,tokenB:X,orderId:G,amountOfTokenBToFill:Y,senderExecutor:q,originExecutor:$,nonce:Q,signature:U,priorityFeePay:W.data.priorityFee,noncePay:W.data.nonce,signaturePay:W.data.signature})}async dispatchOrder_fillFixedFee({nonce:Q,tokenA:J,tokenB:X,orderId:G,amountOfTokenBToFill:Y,maxFillFixedFee:q,senderExecutor:$=K0,originExecutor:W=K0,evvmSignedAction:j}){let K=await this.getEvvmID(),z="dispatchOrder_fillFixedFee",N=this.buildHashPayload("dispatchOrder_fillFixedFee",{tokenA:J,tokenB:X,orderId:G}),U=this.buildMessageToSign(K,$,N,W,Q,!0),M=await this.signer.signMessage(U);return new u0(this,K,"dispatchOrder_fillFixedFee",{user:this.signer.address,tokenA:J,tokenB:X,orderId:G,amountOfTokenBToFill:Y,senderExecutor:$,originExecutor:W,nonce:Q,signature:M,maxFillFixedFee:q,priorityFeePay:j.data.priorityFee,noncePay:j.data.nonce,signaturePay:j.data.signature})}}s0([i0],pY.prototype,"makeOrder",null),s0([i0],pY.prototype,"cancelOrder",null),s0([i0],pY.prototype,"dispatchOrder_fillPropotionalFee",null),s0([i0],pY.prototype,"dispatchOrder_fillFixedFee",null);a4();e4();Z8();e0();t5();n5();AA();ZD();var XP="6.16.0";function YP(Q,J,X){let G=J.split("|").map((q)=>q.trim());for(let q=0;q<G.length;q++)switch(J){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof Q===J)return}let Y=Error(`invalid value for type ${J}`);throw Y.code="INVALID_ARGUMENT",Y.argument=`value.${X}`,Y.value=Q,Y}async function N8(Q){let J=Object.keys(Q);return(await Promise.all(J.map((X)=>Promise.resolve(Q[X])))).reduce((X,G,Y)=>{return X[J[Y]]=G,X},{})}function e(Q,J,X){for(let G in J){let Y=J[G],q=X?X[G]:null;if(q)YP(Y,q,G);Object.defineProperty(Q,G,{enumerable:!0,value:Y,writable:!1})}}function kX(Q,J){if(Q==null)return"null";if(J==null)J=new Set;if(typeof Q==="object"){if(J.has(Q))return"[Circular]";J.add(Q)}if(Array.isArray(Q))return"[ "+Q.map((X)=>kX(X,J)).join(", ")+" ]";if(Q instanceof Uint8Array){let X="0x";for(let G=0;G<Q.length;G++)X+="0123456789abcdef"[Q[G]>>4],X+="0123456789abcdef"[Q[G]&15];return X}if(typeof Q==="object"&&typeof Q.toJSON==="function")return kX(Q.toJSON(),J);switch(typeof Q){case"boolean":case"number":case"symbol":return Q.toString();case"bigint":return BigInt(Q).toString();case"string":return JSON.stringify(Q);case"object":{let X=Object.keys(Q);return X.sort(),"{ "+X.map((G)=>`${kX(G,J)}: ${kX(Q[G],J)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function J8(Q,J){return Q&&Q.code===J}function Qz(Q){return J8(Q,"CALL_EXCEPTION")}function T0(Q,J,X){let G=Q;{let q=[];if(X){if("message"in X||"code"in X||"name"in X)throw Error(`value will overwrite populated values: ${kX(X)}`);for(let $ in X){if($==="shortMessage")continue;let W=X[$];q.push($+"="+kX(W))}}if(q.push(`code=${J}`),q.push(`version=${XP}`),q.length)Q+=" ("+q.join(", ")+")"}let Y;switch(J){case"INVALID_ARGUMENT":Y=TypeError(Q);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":Y=RangeError(Q);break;default:Y=Error(Q)}if(e(Y,{code:J}),X)Object.assign(Y,X);if(Y.shortMessage==null)e(Y,{shortMessage:G});return Y}function _(Q,J,X,G){if(!Q)throw T0(J,X,G)}function B(Q,J,X,G){_(Q,J,"INVALID_ARGUMENT",{argument:X,value:G})}function wL(Q,J,X){if(X==null)X="";if(X)X=": "+X;_(Q>=J,"missing argument"+X,"MISSING_ARGUMENT",{count:Q,expectedCount:J}),_(Q<=J,"too many arguments"+X,"UNEXPECTED_ARGUMENT",{count:Q,expectedCount:J})}var GP=["NFD","NFC","NFKD","NFKC"].reduce((Q,J)=>{try{if("test".normalize(J)!=="test")throw Error("bad");if(J==="NFD"){let X=String.fromCharCode(233).normalize("NFD"),G=String.fromCharCode(101,769);if(X!==G)throw Error("broken")}Q.push(J)}catch(X){}return Q},[]);function qP(Q){_(GP.indexOf(Q)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:Q}})}function V9(Q,J,X){if(X==null)X="";if(Q!==J){let G=X,Y="new";if(X)G+=".",Y+=" "+X;_(!1,`private constructor; use ${G}from* methods`,"UNSUPPORTED_OPERATION",{operation:Y})}}function CL(Q,J,X){if(Q instanceof Uint8Array){if(X)return new Uint8Array(Q);return Q}if(typeof Q==="string"&&Q.length%2===0&&Q.match(/^0x[0-9a-f]*$/i)){let G=new Uint8Array((Q.length-2)/2),Y=2;for(let q=0;q<G.length;q++)G[q]=parseInt(Q.substring(Y,Y+2),16),Y+=2;return G}B(!1,"invalid BytesLike value",J||"value",Q)}function z0(Q,J){return CL(Q,J,!1)}function U8(Q,J){return CL(Q,J,!0)}function _0(Q,J){if(typeof Q!=="string"||!Q.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof J==="number"&&Q.length!==2+2*J)return!1;if(J===!0&&Q.length%2!==0)return!1;return!0}function Jz(Q){return _0(Q,!0)||Q instanceof Uint8Array}var vU="0123456789abcdef";function l(Q){let J=z0(Q),X="0x";for(let G=0;G<J.length;G++){let Y=J[G];X+=vU[(Y&240)>>4]+vU[Y&15]}return X}function P0(Q){return"0x"+Q.map((J)=>l(J).substring(2)).join("")}function xX(Q){if(_0(Q,!0))return(Q.length-2)/2;return z0(Q).length}function h0(Q,J,X){let G=z0(Q);if(X!=null&&X>G.length)_(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:G,length:G.length,offset:X});return l(G.slice(J==null?0:J,X==null?G.length:X))}function AL(Q,J,X){let G=z0(Q);_(J>=G.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(G),length:J,offset:J+1});let Y=new Uint8Array(J);if(Y.fill(0),X)Y.set(G,J-G.length);else Y.set(G,0);return l(Y)}function cQ(Q,J){return AL(Q,J,!0)}function $P(Q,J){return AL(Q,J,!1)}var rG=BigInt(0),a8=BigInt(1),ZX=9007199254740991;function WP(Q,J){let X=L9(Q,"value"),G=BigInt(W0(J,"width"));if(_(X>>G===rG,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:Q}),X>>G-a8){let Y=(a8<<G)-a8;return-((~X&Y)+a8)}return X}function IL(Q,J){let X=d(Q,"value"),G=BigInt(W0(J,"width")),Y=a8<<G-a8;if(X<rG){X=-X,_(X<=Y,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:Q});let q=(a8<<G)-a8;return(~X&q)+a8}else _(X<Y,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:Q});return X}function bY(Q,J){let X=L9(Q,"value"),G=BigInt(W0(J,"bits"));return X&(a8<<G)-a8}function d(Q,J){switch(typeof Q){case"bigint":return Q;case"number":return B(Number.isInteger(Q),"underflow",J||"value",Q),B(Q>=-ZX&&Q<=ZX,"overflow",J||"value",Q),BigInt(Q);case"string":try{if(Q==="")throw Error("empty string");if(Q[0]==="-"&&Q[1]!=="-")return-BigInt(Q.substring(1));return BigInt(Q)}catch(X){B(!1,`invalid BigNumberish string: ${X.message}`,J||"value",Q)}}B(!1,"invalid BigNumberish value",J||"value",Q)}function L9(Q,J){let X=d(Q,J);return _(X>=rG,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:Q}),X}var _U="0123456789abcdef";function Xz(Q){if(Q instanceof Uint8Array){let J="0x0";for(let X of Q)J+=_U[X>>4],J+=_U[X&15];return BigInt(J)}return d(Q)}function W0(Q,J){switch(typeof Q){case"bigint":return B(Q>=-ZX&&Q<=ZX,"overflow",J||"value",Q),Number(Q);case"number":return B(Number.isInteger(Q),"underflow",J||"value",Q),B(Q>=-ZX&&Q<=ZX,"overflow",J||"value",Q),Q;case"string":try{if(Q==="")throw Error("empty string");return W0(BigInt(Q),J)}catch(X){B(!1,`invalid numeric string: ${X.message}`,J||"value",Q)}}B(!1,"invalid numeric value",J||"value",Q)}function jP(Q){return W0(Xz(Q))}function RJ(Q,J){let X=L9(Q,"value"),G=X.toString(16);if(J==null){if(G.length%2)G="0"+G}else{let Y=W0(J,"width");if(Y===0&&X===rG)return"0x";_(Y*2>=G.length,`value exceeds width (${Y} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:Q});while(G.length<Y*2)G="0"+G}return"0x"+G}function o0(Q,J){let X=L9(Q,"value");if(X===rG){let q=J!=null?W0(J,"width"):0;return new Uint8Array(q)}let G=X.toString(16);if(G.length%2)G="0"+G;if(J!=null){let q=W0(J,"width");while(G.length<q*2)G="00"+G;_(q*2===G.length,`value exceeds width (${q} bytes)`,"NUMERIC_FAULT",{operation:"toBeArray",fault:"overflow",value:Q})}let Y=new Uint8Array(G.length/2);for(let q=0;q<Y.length;q++){let $=q*2;Y[q]=parseInt(G.substring($,$+2),16)}return Y}function t8(Q){let J=l(Jz(Q)?Q:o0(Q)).substring(2);while(J.startsWith("0"))J=J.substring(1);if(J==="")J="0";return"0x"+J}var FU="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",dg=BigInt(0),PU=BigInt(58);function KP(Q){let J=z0(Q),X=Xz(J),G="";while(X)G=FU[Number(X%PU)]+G,X/=PU;for(let Y=0;Y<J.length;Y++){if(J[Y])break;G=FU[0]+G}return G}function zP(Q){Q=atob(Q);let J=new Uint8Array(Q.length);for(let X=0;X<Q.length;X++)J[X]=Q.charCodeAt(X);return z0(J)}function NP(Q){let J=z0(Q),X="";for(let G=0;G<J.length;G++)X+=String.fromCharCode(J[G]);return btoa(X)}class Yz{filter;emitter;#Q;constructor(Q,J,X){this.#Q=J,e(this,{emitter:Q,filter:X})}async removeListener(){if(this.#Q==null)return;await this.emitter.off(this.filter,this.#Q)}}function UP(Q,J,X,G,Y){B(!1,`invalid codepoint at offset ${J}; ${Q}`,"bytes",X)}function SL(Q,J,X,G,Y){if(Q==="BAD_PREFIX"||Q==="UNEXPECTED_CONTINUE"){let q=0;for(let $=J+1;$<X.length;$++){if(X[$]>>6!==2)break;q++}return q}if(Q==="OVERRUN")return X.length-J-1;return 0}function MP(Q,J,X,G,Y){if(Q==="OVERLONG")return B(typeof Y==="number","invalid bad code point for replacement","badCodepoint",Y),G.push(Y),0;return G.push(65533),SL(Q,J,X,G,Y)}var DP=Object.freeze({error:UP,ignore:SL,replace:MP});function OP(Q,J){if(J==null)J=DP.error;let X=z0(Q,"bytes"),G=[],Y=0;while(Y<X.length){let q=X[Y++];if(q>>7===0){G.push(q);continue}let $=null,W=null;if((q&224)===192)$=1,W=127;else if((q&240)===224)$=2,W=2047;else if((q&248)===240)$=3,W=65535;else{if((q&192)===128)Y+=J("UNEXPECTED_CONTINUE",Y-1,X,G);else Y+=J("BAD_PREFIX",Y-1,X,G);continue}if(Y-1+$>=X.length){Y+=J("OVERRUN",Y-1,X,G);continue}let j=q&(1<<8-$-1)-1;for(let K=0;K<$;K++){let z=X[Y];if((z&192)!=128){Y+=J("MISSING_CONTINUE",Y,X,G),j=null;break}j=j<<6|z&63,Y++}if(j===null)continue;if(j>1114111){Y+=J("OUT_OF_RANGE",Y-1-$,X,G,j);continue}if(j>=55296&&j<=57343){Y+=J("UTF16_SURROGATE",Y-1-$,X,G,j);continue}if(j<=W){Y+=J("OVERLONG",Y-1-$,X,G,j);continue}G.push(j)}return G}function fQ(Q,J){if(B(typeof Q==="string","invalid string value","str",Q),J!=null)qP(J),Q=Q.normalize(J);let X=[];for(let G=0;G<Q.length;G++){let Y=Q.charCodeAt(G);if(Y<128)X.push(Y);else if(Y<2048)X.push(Y>>6|192),X.push(Y&63|128);else if((Y&64512)==55296){G++;let q=Q.charCodeAt(G);B(G<Q.length&&(q&64512)===56320,"invalid surrogate pair","str",Q);let $=65536+((Y&1023)<<10)+(q&1023);X.push($>>18|240),X.push($>>12&63|128),X.push($>>6&63|128),X.push($&63|128)}else X.push(Y>>12|224),X.push(Y>>6&63|128),X.push(Y&63|128)}return new Uint8Array(X)}function BP(Q){return Q.map((J)=>{if(J<=65535)return String.fromCharCode(J);return J-=65536,String.fromCharCode((J>>10&1023)+55296,(J&1023)+56320)}).join("")}function M$(Q,J){return BP(OP(Q,J))}function Gz(Q){async function J(X,G){_(G==null||!G.cancelled,"request cancelled before sending","CANCELLED");let Y=X.url.split(":")[0].toLowerCase();_(Y==="http"||Y==="https",`unsupported protocol ${Y}`,"UNSUPPORTED_OPERATION",{info:{protocol:Y},operation:"request"}),_(Y==="https"||!X.credentials||X.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let q=null,$=new AbortController,W=setTimeout(()=>{q=T0("request timeout","TIMEOUT"),$.abort()},X.timeout);if(G)G.addListener(()=>{q=T0("request cancelled","CANCELLED"),$.abort()});let j=Object.assign({},Q,{method:X.method,headers:new Headers(Array.from(X)),body:X.body||void 0,signal:$.signal}),K;try{K=await fetch(X.url,j)}catch(M){if(clearTimeout(W),q)throw q;throw M}clearTimeout(W);let z={};K.headers.forEach((M,D)=>{z[D.toLowerCase()]=M});let N=await K.arrayBuffer(),U=N==null?null:new Uint8Array(N);return{statusCode:K.status,statusMessage:K.statusText,headers:z,body:U}}return J}var rg=Gz({}),RP=12,HP=250,kU=Gz(),VP=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),LP=new RegExp("^ipfs://(ipfs/)?(.*)$","i"),NW=!1;async function vL(Q,J){try{let X=Q.match(VP);if(!X)throw Error("invalid data");return new UJ(200,"OK",{"content-type":X[1]||"text/plain"},X[2]?zP(X[3]):EP(X[3]))}catch(X){return new UJ(599,"BAD REQUEST (invalid data: URI)",{},null,new OQ(Q))}}function _L(Q){async function J(X,G){try{let Y=X.match(LP);if(!Y)throw Error("invalid link");return new OQ(`${Q}${Y[2]}`)}catch(Y){return new UJ(599,"BAD REQUEST (invalid IPFS URI)",{},null,new OQ(X))}}return J}var vq={data:vL,ipfs:_L("https://gateway.ipfs.io/ipfs/")},FL=new WeakMap;class PL{#Q;#J;constructor(Q){this.#Q=[],this.#J=!1,FL.set(Q,()=>{if(this.#J)return;this.#J=!0;for(let J of this.#Q)setTimeout(()=>{J()},0);this.#Q=[]})}addListener(Q){_(!this.#J,"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),this.#Q.push(Q)}get cancelled(){return this.#J}checkSignal(){_(!this.cancelled,"cancelled","CANCELLED",{})}}function _q(Q){if(Q==null)throw Error("missing signal; should not happen");return Q.checkSignal(),Q}class OQ{#Q;#J;#X;#Y;#G;#$;#q;#W;#M;#K;#D;#O;#j;#z;#N;get url(){return this.#$}set url(Q){this.#$=String(Q)}get body(){if(this.#q==null)return null;return new Uint8Array(this.#q)}set body(Q){if(Q==null)this.#q=void 0,this.#W=void 0;else if(typeof Q==="string")this.#q=fQ(Q),this.#W="text/plain";else if(Q instanceof Uint8Array)this.#q=Q,this.#W="application/octet-stream";else if(typeof Q==="object")this.#q=fQ(JSON.stringify(Q)),this.#W="application/json";else throw Error("invalid body")}hasBody(){return this.#q!=null}get method(){if(this.#Y)return this.#Y;if(this.hasBody())return"POST";return"GET"}set method(Q){if(Q==null)Q="";this.#Y=String(Q).toUpperCase()}get headers(){let Q=Object.assign({},this.#X);if(this.#M)Q.authorization=`Basic ${NP(fQ(this.#M))}`;if(this.allowGzip)Q["accept-encoding"]="gzip";if(Q["content-type"]==null&&this.#W)Q["content-type"]=this.#W;if(this.body)Q["content-length"]=String(this.body.length);return Q}getHeader(Q){return this.headers[Q.toLowerCase()]}setHeader(Q,J){this.#X[String(Q).toLowerCase()]=String(J)}clearHeaders(){this.#X={}}[Symbol.iterator](){let Q=this.headers,J=Object.keys(Q),X=0;return{next:()=>{if(X<J.length){let G=J[X++];return{value:[G,Q[G]],done:!1}}return{value:void 0,done:!0}}}}get credentials(){return this.#M||null}setCredentials(Q,J){B(!Q.match(/:/),"invalid basic authentication username","username","[REDACTED]"),this.#M=`${Q}:${J}`}get allowGzip(){return this.#J}set allowGzip(Q){this.#J=!!Q}get allowInsecureAuthentication(){return!!this.#Q}set allowInsecureAuthentication(Q){this.#Q=!!Q}get timeout(){return this.#G}set timeout(Q){B(Q>=0,"timeout must be non-zero","timeout",Q),this.#G=Q}get preflightFunc(){return this.#K||null}set preflightFunc(Q){this.#K=Q}get processFunc(){return this.#D||null}set processFunc(Q){this.#D=Q}get retryFunc(){return this.#O||null}set retryFunc(Q){this.#O=Q}get getUrlFunc(){return this.#N||kU}set getUrlFunc(Q){this.#N=Q}constructor(Q){this.#$=String(Q),this.#Q=!1,this.#J=!0,this.#X={},this.#Y="",this.#G=300000,this.#z={slotInterval:HP,maxAttempts:RP},this.#N=null}toString(){return`<FetchRequest method=${JSON.stringify(this.method)} url=${JSON.stringify(this.url)} headers=${JSON.stringify(this.headers)} body=${this.#q?l(this.#q):"null"}>`}setThrottleParams(Q){if(Q.slotInterval!=null)this.#z.slotInterval=Q.slotInterval;if(Q.maxAttempts!=null)this.#z.maxAttempts=Q.maxAttempts}async#U(Q,J,X,G,Y){if(Q>=this.#z.maxAttempts)return Y.makeServerError("exceeded maximum retry limit");if(_(ZU()<=J,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:G}),X>0)await wP(X);let q=this.clone(),$=(q.url.split(":")[0]||"").toLowerCase();if($ in vq){let K=await vq[$](q.url,_q(G.#j));if(K instanceof UJ){let z=K;if(this.processFunc){_q(G.#j);try{z=await this.processFunc(q,z)}catch(N){if(N.throttle==null||typeof N.stall!=="number")z.makeServerError("error in post-processing function",N).assertOk()}}return z}q=K}if(this.preflightFunc)q=await this.preflightFunc(q);let W=await this.getUrlFunc(q,_q(G.#j)),j=new UJ(W.statusCode,W.statusMessage,W.headers,W.body,G);if(j.statusCode===301||j.statusCode===302){try{let K=j.headers.location||"";return q.redirect(K).#U(Q+1,J,0,G,j)}catch(K){}return j}else if(j.statusCode===429){if(this.retryFunc==null||await this.retryFunc(q,j,Q)){let K=j.headers["retry-after"],z=this.#z.slotInterval*Math.trunc(Math.random()*Math.pow(2,Q));if(typeof K==="string"&&K.match(/^[1-9][0-9]*$/))z=parseInt(K);return q.clone().#U(Q+1,J,z,G,j)}}if(this.processFunc){_q(G.#j);try{j=await this.processFunc(q,j)}catch(K){if(K.throttle==null||typeof K.stall!=="number")j.makeServerError("error in post-processing function",K).assertOk();let z=this.#z.slotInterval*Math.trunc(Math.random()*Math.pow(2,Q));if(K.stall>=0)z=K.stall;return q.clone().#U(Q+1,J,z,G,j)}}return j}send(){return _(this.#j==null,"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),this.#j=new PL(this),this.#U(0,ZU()+this.timeout,0,this,new UJ(0,"",{},null,this))}cancel(){_(this.#j!=null,"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});let Q=FL.get(this);if(!Q)throw Error("missing signal; should not happen");Q()}redirect(Q){let J=this.url.split(":")[0].toLowerCase(),X=Q.split(":")[0].toLowerCase();_(this.method==="GET"&&(J!=="https"||X!=="http")&&Q.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(Q)})`});let G=new OQ(Q);if(G.method="GET",G.allowGzip=this.allowGzip,G.timeout=this.timeout,G.#X=Object.assign({},this.#X),this.#q)G.#q=new Uint8Array(this.#q);return G.#W=this.#W,G}clone(){let Q=new OQ(this.url);if(Q.#Y=this.#Y,this.#q)Q.#q=this.#q;if(Q.#W=this.#W,Q.#X=Object.assign({},this.#X),Q.#M=this.#M,this.allowGzip)Q.allowGzip=!0;if(Q.timeout=this.timeout,this.allowInsecureAuthentication)Q.allowInsecureAuthentication=!0;return Q.#K=this.#K,Q.#D=this.#D,Q.#O=this.#O,Q.#z=Object.assign({},this.#z),Q.#N=this.#N,Q}static lockConfig(){NW=!0}static getGateway(Q){return vq[Q.toLowerCase()]||null}static registerGateway(Q,J){if(Q=Q.toLowerCase(),Q==="http"||Q==="https")throw Error(`cannot intercept ${Q}; use registerGetUrl`);if(NW)throw Error("gateways locked");vq[Q]=J}static registerGetUrl(Q){if(NW)throw Error("gateways locked");kU=Q}static createGetUrlFunc(Q){return Gz(Q)}static createDataGateway(){return vL}static createIpfsGatewayFunc(Q){return _L(Q)}}class UJ{#Q;#J;#X;#Y;#G;#$;toString(){return`<FetchResponse status=${this.statusCode} body=${this.#Y?l(this.#Y):"null"}>`}get statusCode(){return this.#Q}get statusMessage(){return this.#J}get headers(){return Object.assign({},this.#X)}get body(){return this.#Y==null?null:new Uint8Array(this.#Y)}get bodyText(){try{return this.#Y==null?"":M$(this.#Y)}catch(Q){_(!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(Q){_(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){let Q=this.headers,J=Object.keys(Q),X=0;return{next:()=>{if(X<J.length){let G=J[X++];return{value:[G,Q[G]],done:!1}}return{value:void 0,done:!0}}}}constructor(Q,J,X,G,Y){this.#Q=Q,this.#J=J,this.#X=Object.keys(X).reduce((q,$)=>{return q[$.toLowerCase()]=String(X[$]),q},{}),this.#Y=G==null?null:new Uint8Array(G),this.#G=Y||null,this.#$={message:""}}makeServerError(Q,J){let X;if(!Q)Q=`${this.statusCode} ${this.statusMessage}`,X=`CLIENT ESCALATED SERVER ERROR (${Q})`;else X=`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${Q})`;let G=new UJ(599,X,this.headers,this.body,this.#G||void 0);return G.#$={message:Q,error:J},G}throwThrottleError(Q,J){if(J==null)J=-1;else B(Number.isInteger(J)&&J>=0,"invalid stall timeout","stall",J);let X=Error(Q||"throttling requests");throw e(X,{stall:J,throttle:!0}),X}getHeader(Q){return this.headers[Q.toLowerCase()]}hasBody(){return this.#Y!=null}get request(){return this.#G}ok(){return this.#$.message===""&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:Q,error:J}=this.#$;if(Q==="")Q=`server response ${this.statusCode} ${this.statusMessage}`;let X=null;if(this.request)X=this.request.url;let G=null;try{if(this.#Y)G=M$(this.#Y)}catch(Y){}_(!1,Q,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:J,info:{requestUrl:X,responseBody:G,responseStatus:`${this.statusCode} ${this.statusMessage}`}})}}function ZU(){return new Date().getTime()}function EP(Q){return fQ(Q.replace(/%([0-9a-f][0-9a-f])/gi,(J,X)=>{return String.fromCharCode(parseInt(X,16))}))}function wP(Q){return new Promise((J)=>setTimeout(J,Q))}function CP(Q){let J=Q.toString(16);while(J.length<2)J="0"+J;return"0x"+J}function TU(Q,J,X){let G=0;for(let Y=0;Y<X;Y++)G=G*256+Q[J+Y];return G}function xU(Q,J,X,G){let Y=[];while(X<J+1+G){let q=kL(Q,X);Y.push(q.result),X+=q.consumed,_(X<=J+1+G,"child data too short","BUFFER_OVERRUN",{buffer:Q,length:G,offset:J})}return{consumed:1+G,result:Y}}function kL(Q,J){_(Q.length!==0,"data too short","BUFFER_OVERRUN",{buffer:Q,length:0,offset:1});let X=(G)=>{_(G<=Q.length,"data short segment too short","BUFFER_OVERRUN",{buffer:Q,length:Q.length,offset:G})};if(Q[J]>=248){let G=Q[J]-247;X(J+1+G);let Y=TU(Q,J+1,G);return X(J+1+G+Y),xU(Q,J,J+1+G,G+Y)}else if(Q[J]>=192){let G=Q[J]-192;return X(J+1+G),xU(Q,J,J+1,G)}else if(Q[J]>=184){let G=Q[J]-183;X(J+1+G);let Y=TU(Q,J+1,G);X(J+1+G+Y);let q=l(Q.slice(J+1+G,J+1+G+Y));return{consumed:1+G+Y,result:q}}else if(Q[J]>=128){let G=Q[J]-128;X(J+1+G);let Y=l(Q.slice(J+1,J+1+G));return{consumed:1+G,result:Y}}return{consumed:1,result:CP(Q[J])}}function sG(Q){let J=z0(Q,"data"),X=kL(J,0);return B(X.consumed===J.length,"unexpected junk after rlp payload","data",Q),X.result}function gU(Q){let J=[];while(Q)J.unshift(Q&255),Q>>=8;return J}function ZL(Q){if(Array.isArray(Q)){let G=[];if(Q.forEach(function(q){G=G.concat(ZL(q))}),G.length<=55)return G.unshift(192+G.length),G;let Y=gU(G.length);return Y.unshift(247+Y.length),Y.concat(G)}let J=Array.prototype.slice.call(z0(Q,"object"));if(J.length===1&&J[0]<=127)return J;else if(J.length<=55)return J.unshift(128+J.length),J;let X=gU(J.length);return X.unshift(183+X.length),X.concat(J)}var fU="0123456789abcdef";function hQ(Q){let J="0x";for(let X of ZL(Q))J+=fU[X>>4],J+=fU[X&15];return J}var M8=32,sW=new Uint8Array(M8),AP=["then"],Fq={},TL=new WeakMap;function hJ(Q){return TL.get(Q)}function hU(Q,J){TL.set(Q,J)}function yY(Q,J){let X=Error(`deferred error during ABI decoding triggered accessing ${Q}`);throw X.error=J,X}function iW(Q,J,X){if(Q.indexOf(null)>=0)return J.map((G,Y)=>{if(G instanceof TQ)return iW(hJ(G),G,X);return G});return Q.reduce((G,Y,q)=>{let $=J.getValue(Y);if(!(Y in G)){if(X&&$ instanceof TQ)$=iW(hJ($),$,X);G[Y]=$}return G},{})}class TQ extends Array{#Q;constructor(...Q){let J=Q[0],X=Q[1],G=(Q[2]||[]).slice(),Y=!0;if(J!==Fq)X=Q,G=[],Y=!1;super(X.length);X.forEach((W,j)=>{this[j]=W});let q=G.reduce((W,j)=>{if(typeof j==="string")W.set(j,(W.get(j)||0)+1);return W},new Map);if(hU(this,Object.freeze(X.map((W,j)=>{let K=G[j];if(K!=null&&q.get(K)===1)return K;return null}))),this.#Q=[],this.#Q==null)this.#Q;if(!Y)return;Object.freeze(this);let $=new Proxy(this,{get:(W,j,K)=>{if(typeof j==="string"){if(j.match(/^[0-9]+$/)){let N=W0(j,"%index");if(N<0||N>=this.length)throw RangeError("out of result range");let U=W[N];if(U instanceof Error)yY(`index ${N}`,U);return U}if(AP.indexOf(j)>=0)return Reflect.get(W,j,K);let z=W[j];if(z instanceof Function)return function(...N){return z.apply(this===K?W:this,N)};else if(!(j in W))return W.getValue.apply(this===K?W:this,[j])}return Reflect.get(W,j,K)}});return hU($,hJ(this)),$}toArray(Q){let J=[];return this.forEach((X,G)=>{if(X instanceof Error)yY(`index ${G}`,X);if(Q&&X instanceof TQ)X=X.toArray(Q);J.push(X)}),J}toObject(Q){let J=hJ(this);return J.reduce((X,G,Y)=>{return _(G!=null,`value at index ${Y} unnamed`,"UNSUPPORTED_OPERATION",{operation:"toObject()"}),iW(J,this,Q)},{})}slice(Q,J){if(Q==null)Q=0;if(Q<0){if(Q+=this.length,Q<0)Q=0}if(J==null)J=this.length;if(J<0){if(J+=this.length,J<0)J=0}if(J>this.length)J=this.length;let X=hJ(this),G=[],Y=[];for(let q=Q;q<J;q++)G.push(this[q]),Y.push(X[q]);return new TQ(Fq,G,Y)}filter(Q,J){let X=hJ(this),G=[],Y=[];for(let q=0;q<this.length;q++){let $=this[q];if($ instanceof Error)yY(`index ${q}`,$);if(Q.call(J,$,q,this))G.push($),Y.push(X[q])}return new TQ(Fq,G,Y)}map(Q,J){let X=[];for(let G=0;G<this.length;G++){let Y=this[G];if(Y instanceof Error)yY(`index ${G}`,Y);X.push(Q.call(J,Y,G,this))}return X}getValue(Q){let J=hJ(this).indexOf(Q);if(J===-1)return;let X=this[J];if(X instanceof Error)yY(`property ${JSON.stringify(Q)}`,X.error);return X}static fromItems(Q,J){return new TQ(Fq,Q,J)}}function mU(Q){let J=o0(Q);if(_(J.length<=M8,"value out-of-bounds","BUFFER_OVERRUN",{buffer:J,length:M8,offset:J.length}),J.length!==M8)J=U8(P0([sW.slice(J.length%M8),J]));return J}class RQ{name;type;localName;dynamic;constructor(Q,J,X,G){e(this,{name:Q,type:J,localName:X,dynamic:G},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(Q,J){B(!1,Q,this.localName,J)}}class D${#Q;#J;constructor(){this.#Q=[],this.#J=0}get data(){return P0(this.#Q)}get length(){return this.#J}#X(Q){return this.#Q.push(Q),this.#J+=Q.length,Q.length}appendWriter(Q){return this.#X(U8(Q.data))}writeBytes(Q){let J=U8(Q),X=J.length%M8;if(X)J=U8(P0([J,sW.slice(X)]));return this.#X(J)}writeValue(Q){return this.#X(mU(Q))}writeUpdatableValue(){let Q=this.#Q.length;return this.#Q.push(sW),this.#J+=M8,(J)=>{this.#Q[Q]=mU(J)}}}class qz{allowLoose;#Q;#J;#X;#Y;#G;constructor(Q,J,X){e(this,{allowLoose:!!J}),this.#Q=U8(Q),this.#X=0,this.#Y=null,this.#G=X!=null?X:1024,this.#J=0}get data(){return l(this.#Q)}get dataLength(){return this.#Q.length}get consumed(){return this.#J}get bytes(){return new Uint8Array(this.#Q)}#$(Q){if(this.#Y)return this.#Y.#$(Q);this.#X+=Q,_(this.#G<1||this.#X<=this.#G*this.dataLength,`compressed ABI data exceeds inflation ratio of ${this.#G} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`,"BUFFER_OVERRUN",{buffer:U8(this.#Q),offset:this.#J,length:Q,info:{bytesRead:this.#X,dataLength:this.dataLength}})}#q(Q,J,X){let G=Math.ceil(J/M8)*M8;if(this.#J+G>this.#Q.length)if(this.allowLoose&&X&&this.#J+J<=this.#Q.length)G=J;else _(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:U8(this.#Q),length:this.#Q.length,offset:this.#J+G});return this.#Q.slice(this.#J,this.#J+G)}subReader(Q){let J=new qz(this.#Q.slice(this.#J+Q),this.allowLoose,this.#G);return J.#Y=this,J}readBytes(Q,J){let X=this.#q(0,Q,!!J);return this.#$(Q),this.#J+=X.length,X.slice(0,Q)}readValue(){return Xz(this.readBytes(M8))}readIndex(){return jP(this.readBytes(M8))}}function O$(Q){if(!Number.isSafeInteger(Q)||Q<0)throw Error(`Wrong positive integer: ${Q}`)}function $z(Q,...J){if(!(Q instanceof Uint8Array))throw Error("Expected Uint8Array");if(J.length>0&&!J.includes(Q.length))throw Error(`Expected Uint8Array of length ${J}, not of length=${Q.length}`)}function IP(Q){if(typeof Q!=="function"||typeof Q.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");O$(Q.outputLen),O$(Q.blockLen)}function sX(Q,J=!0){if(Q.destroyed)throw Error("Hash instance has been destroyed");if(J&&Q.finished)throw Error("Hash#digest() has already been called")}function xL(Q,J){$z(Q);let X=J.outputLen;if(Q.length<X)throw Error(`digestInto() expects output buffer of length at least ${X}`)}var UW=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var gL=(Q)=>Q instanceof Uint8Array,SP=(Q)=>new Uint32Array(Q.buffer,Q.byteOffset,Math.floor(Q.byteLength/4)),MW=(Q)=>new DataView(Q.buffer,Q.byteOffset,Q.byteLength),zQ=(Q,J)=>Q<<32-J|Q>>>J,vP=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!vP)throw Error("Non little-endian hardware is not supported");function _P(Q){if(typeof Q!=="string")throw Error(`utf8ToBytes expected string, got ${typeof Q}`);return new Uint8Array(new TextEncoder().encode(Q))}function E9(Q){if(typeof Q==="string")Q=_P(Q);if(!gL(Q))throw Error(`expected Uint8Array, got ${typeof Q}`);return Q}function FP(...Q){let J=new Uint8Array(Q.reduce((G,Y)=>G+Y.length,0)),X=0;return Q.forEach((G)=>{if(!gL(G))throw Error("Uint8Array expected");J.set(G,X),X+=G.length}),J}class w9{clone(){return this._cloneInto()}}var sg={}.toString;function Wz(Q){let J=(G)=>Q().update(E9(G)).digest(),X=Q();return J.outputLen=X.outputLen,J.blockLen=X.blockLen,J.create=()=>Q(),J}function PP(Q=32){if(UW&&typeof UW.getRandomValues==="function")return UW.getRandomValues(new Uint8Array(Q));throw Error("crypto.getRandomValues must be defined")}class jz extends w9{constructor(Q,J){super();this.finished=!1,this.destroyed=!1,IP(Q);let X=E9(J);if(this.iHash=Q.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let G=this.blockLen,Y=new Uint8Array(G);Y.set(X.length>G?Q.create().update(X).digest():X);for(let q=0;q<Y.length;q++)Y[q]^=54;this.iHash.update(Y),this.oHash=Q.create();for(let q=0;q<Y.length;q++)Y[q]^=106;this.oHash.update(Y),Y.fill(0)}update(Q){return sX(this),this.iHash.update(Q),this}digestInto(Q){sX(this),$z(Q,this.outputLen),this.finished=!0,this.iHash.digestInto(Q),this.oHash.update(Q),this.oHash.digestInto(Q),this.destroy()}digest(){let Q=new Uint8Array(this.oHash.outputLen);return this.digestInto(Q),Q}_cloneInto(Q){Q||(Q=Object.create(Object.getPrototypeOf(this),{}));let{oHash:J,iHash:X,finished:G,destroyed:Y,blockLen:q,outputLen:$}=this;return Q=Q,Q.finished=G,Q.destroyed=Y,Q.blockLen=q,Q.outputLen=$,Q.oHash=J._cloneInto(Q.oHash),Q.iHash=X._cloneInto(Q.iHash),Q}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var fL=(Q,J,X)=>new jz(Q,J).update(X).digest();fL.create=(Q,J)=>new jz(Q,J);function kP(Q,J,X,G){if(typeof Q.setBigUint64==="function")return Q.setBigUint64(J,X,G);let Y=BigInt(32),q=BigInt(4294967295),$=Number(X>>Y&q),W=Number(X&q),j=G?4:0,K=G?0:4;Q.setUint32(J+j,$,G),Q.setUint32(J+K,W,G)}class Kz extends w9{constructor(Q,J,X,G){super();this.blockLen=Q,this.outputLen=J,this.padOffset=X,this.isLE=G,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(Q),this.view=MW(this.buffer)}update(Q){sX(this);let{view:J,buffer:X,blockLen:G}=this;Q=E9(Q);let Y=Q.length;for(let q=0;q<Y;){let $=Math.min(G-this.pos,Y-q);if($===G){let W=MW(Q);for(;G<=Y-q;q+=G)this.process(W,q);continue}if(X.set(Q.subarray(q,q+$),this.pos),this.pos+=$,q+=$,this.pos===G)this.process(J,0),this.pos=0}return this.length+=Q.length,this.roundClean(),this}digestInto(Q){sX(this),xL(Q,this),this.finished=!0;let{buffer:J,view:X,blockLen:G,isLE:Y}=this,{pos:q}=this;if(J[q++]=128,this.buffer.subarray(q).fill(0),this.padOffset>G-q)this.process(X,0),q=0;for(let z=q;z<G;z++)J[z]=0;kP(X,G-8,BigInt(this.length*8),Y),this.process(X,0);let $=MW(Q),W=this.outputLen;if(W%4)throw Error("_sha2: outputLen should be aligned to 32bit");let j=W/4,K=this.get();if(j>K.length)throw Error("_sha2: outputLen bigger than state");for(let z=0;z<j;z++)$.setUint32(4*z,K[z],Y)}digest(){let{buffer:Q,outputLen:J}=this;this.digestInto(Q);let X=Q.slice(0,J);return this.destroy(),X}_cloneInto(Q){Q||(Q=new this.constructor),Q.set(...this.get());let{blockLen:J,buffer:X,length:G,finished:Y,destroyed:q,pos:$}=this;if(Q.length=G,Q.pos=$,Q.finished=Y,Q.destroyed=q,G%J)Q.buffer.set(X);return Q}}var ZP=(Q,J,X)=>Q&J^~Q&X,TP=(Q,J,X)=>Q&J^Q&X^J&X,xP=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]),qJ=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),$J=new Uint32Array(64);class hL extends Kz{constructor(){super(64,32,8,!1);this.A=qJ[0]|0,this.B=qJ[1]|0,this.C=qJ[2]|0,this.D=qJ[3]|0,this.E=qJ[4]|0,this.F=qJ[5]|0,this.G=qJ[6]|0,this.H=qJ[7]|0}get(){let{A:Q,B:J,C:X,D:G,E:Y,F:q,G:$,H:W}=this;return[Q,J,X,G,Y,q,$,W]}set(Q,J,X,G,Y,q,$,W){this.A=Q|0,this.B=J|0,this.C=X|0,this.D=G|0,this.E=Y|0,this.F=q|0,this.G=$|0,this.H=W|0}process(Q,J){for(let z=0;z<16;z++,J+=4)$J[z]=Q.getUint32(J,!1);for(let z=16;z<64;z++){let N=$J[z-15],U=$J[z-2],M=zQ(N,7)^zQ(N,18)^N>>>3,D=zQ(U,17)^zQ(U,19)^U>>>10;$J[z]=D+$J[z-7]+M+$J[z-16]|0}let{A:X,B:G,C:Y,D:q,E:$,F:W,G:j,H:K}=this;for(let z=0;z<64;z++){let N=zQ($,6)^zQ($,11)^zQ($,25),U=K+N+ZP($,W,j)+xP[z]+$J[z]|0,M=(zQ(X,2)^zQ(X,13)^zQ(X,22))+TP(X,G,Y)|0;K=j,j=W,W=$,$=q+U|0,q=Y,Y=G,G=X,X=U+M|0}X=X+this.A|0,G=G+this.B|0,Y=Y+this.C|0,q=q+this.D|0,$=$+this.E|0,W=W+this.F|0,j=j+this.G|0,K=K+this.H|0,this.set(X,G,Y,q,$,W,j,K)}roundClean(){$J.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var mL=Wz(()=>new hL),Pq=BigInt(4294967295),tW=BigInt(32);function yL(Q,J=!1){if(J)return{h:Number(Q&Pq),l:Number(Q>>tW&Pq)};return{h:Number(Q>>tW&Pq)|0,l:Number(Q&Pq)|0}}function lL(Q,J=!1){let X=new Uint32Array(Q.length),G=new Uint32Array(Q.length);for(let Y=0;Y<Q.length;Y++){let{h:q,l:$}=yL(Q[Y],J);[X[Y],G[Y]]=[q,$]}return[X,G]}var gP=(Q,J)=>BigInt(Q>>>0)<<tW|BigInt(J>>>0),fP=(Q,J,X)=>Q>>>X,hP=(Q,J,X)=>Q<<32-X|J>>>X,mP=(Q,J,X)=>Q>>>X|J<<32-X,yP=(Q,J,X)=>Q<<32-X|J>>>X,lP=(Q,J,X)=>Q<<64-X|J>>>X-32,uP=(Q,J,X)=>Q>>>X-32|J<<64-X,cP=(Q,J)=>J,pP=(Q,J)=>Q,uL=(Q,J,X)=>Q<<X|J>>>32-X,cL=(Q,J,X)=>J<<X|Q>>>32-X,pL=(Q,J,X)=>J<<X-32|Q>>>64-X,bL=(Q,J,X)=>Q<<X-32|J>>>64-X;function bP(Q,J,X,G){let Y=(J>>>0)+(G>>>0);return{h:Q+X+(Y/4294967296|0)|0,l:Y|0}}var oP=(Q,J,X)=>(Q>>>0)+(J>>>0)+(X>>>0),dP=(Q,J,X,G)=>J+X+G+(Q/4294967296|0)|0,rP=(Q,J,X,G)=>(Q>>>0)+(J>>>0)+(X>>>0)+(G>>>0),sP=(Q,J,X,G,Y)=>J+X+G+Y+(Q/4294967296|0)|0,iP=(Q,J,X,G,Y)=>(Q>>>0)+(J>>>0)+(X>>>0)+(G>>>0)+(Y>>>0),tP=(Q,J,X,G,Y,q)=>J+X+G+Y+q+(Q/4294967296|0)|0,nP={fromBig:yL,split:lL,toBig:gP,shrSH:fP,shrSL:hP,rotrSH:mP,rotrSL:yP,rotrBH:lP,rotrBL:uP,rotr32H:cP,rotr32L:pP,rotlSH:uL,rotlSL:cL,rotlBH:pL,rotlBL:bL,add:bP,add3L:oP,add3H:dP,add4L:rP,add4H:sP,add5H:tP,add5L:iP},j0=nP,[aP,eP]=(()=>j0.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((Q)=>BigInt(Q))))(),WJ=new Uint32Array(80),jJ=new Uint32Array(80);class oL extends Kz{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(){let{Ah:Q,Al:J,Bh:X,Bl:G,Ch:Y,Cl:q,Dh:$,Dl:W,Eh:j,El:K,Fh:z,Fl:N,Gh:U,Gl:M,Hh:D,Hl:O}=this;return[Q,J,X,G,Y,q,$,W,j,K,z,N,U,M,D,O]}set(Q,J,X,G,Y,q,$,W,j,K,z,N,U,M,D,O){this.Ah=Q|0,this.Al=J|0,this.Bh=X|0,this.Bl=G|0,this.Ch=Y|0,this.Cl=q|0,this.Dh=$|0,this.Dl=W|0,this.Eh=j|0,this.El=K|0,this.Fh=z|0,this.Fl=N|0,this.Gh=U|0,this.Gl=M|0,this.Hh=D|0,this.Hl=O|0}process(Q,J){for(let I=0;I<16;I++,J+=4)WJ[I]=Q.getUint32(J),jJ[I]=Q.getUint32(J+=4);for(let I=16;I<80;I++){let H=WJ[I-15]|0,E=jJ[I-15]|0,A=j0.rotrSH(H,E,1)^j0.rotrSH(H,E,8)^j0.shrSH(H,E,7),v=j0.rotrSL(H,E,1)^j0.rotrSL(H,E,8)^j0.shrSL(H,E,7),P=WJ[I-2]|0,c=jJ[I-2]|0,h=j0.rotrSH(P,c,19)^j0.rotrBH(P,c,61)^j0.shrSH(P,c,6),g=j0.rotrSL(P,c,19)^j0.rotrBL(P,c,61)^j0.shrSL(P,c,6),s=j0.add4L(v,g,jJ[I-7],jJ[I-16]),i=j0.add4H(s,A,h,WJ[I-7],WJ[I-16]);WJ[I]=i|0,jJ[I]=s|0}let{Ah:X,Al:G,Bh:Y,Bl:q,Ch:$,Cl:W,Dh:j,Dl:K,Eh:z,El:N,Fh:U,Fl:M,Gh:D,Gl:O,Hh:w,Hl:C}=this;for(let I=0;I<80;I++){let H=j0.rotrSH(z,N,14)^j0.rotrSH(z,N,18)^j0.rotrBH(z,N,41),E=j0.rotrSL(z,N,14)^j0.rotrSL(z,N,18)^j0.rotrBL(z,N,41),A=z&U^~z&D,v=N&M^~N&O,P=j0.add5L(C,E,v,eP[I],jJ[I]),c=j0.add5H(P,w,H,A,aP[I],WJ[I]),h=P|0,g=j0.rotrSH(X,G,28)^j0.rotrBH(X,G,34)^j0.rotrBH(X,G,39),s=j0.rotrSL(X,G,28)^j0.rotrBL(X,G,34)^j0.rotrBL(X,G,39),i=X&Y^X&$^Y&$,H0=G&q^G&W^q&W;w=D|0,C=O|0,D=U|0,O=M|0,U=z|0,M=N|0,{h:z,l:N}=j0.add(j|0,K|0,c|0,h|0),j=$|0,K=W|0,$=Y|0,W=q|0,Y=X|0,q=G|0;let a=j0.add3L(h,s,H0);X=j0.add3H(a,c,g,i),G=a|0}({h:X,l:G}=j0.add(this.Ah|0,this.Al|0,X|0,G|0)),{h:Y,l:q}=j0.add(this.Bh|0,this.Bl|0,Y|0,q|0),{h:$,l:W}=j0.add(this.Ch|0,this.Cl|0,$|0,W|0),{h:j,l:K}=j0.add(this.Dh|0,this.Dl|0,j|0,K|0),{h:z,l:N}=j0.add(this.Eh|0,this.El|0,z|0,N|0),{h:U,l:M}=j0.add(this.Fh|0,this.Fl|0,U|0,M|0),{h:D,l:O}=j0.add(this.Gh|0,this.Gl|0,D|0,O|0),{h:w,l:C}=j0.add(this.Hh|0,this.Hl|0,w|0,C|0),this.set(X,G,Y,q,$,W,j,K,z,N,U,M,D,O,w,C)}roundClean(){WJ.fill(0),jJ.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)}}var Qk=Wz(()=>new oL);function Jk(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw Error("unable to locate global object")}var yU=Jk(),ig=yU.crypto||yU.msCrypto;function dL(Q){switch(Q){case"sha256":return mL.create();case"sha512":return Qk.create()}B(!1,"invalid hashing algorithm name","algorithm",Q)}var[rL,sL,iL]=[[],[],[]],Xk=BigInt(0),lY=BigInt(1),Yk=BigInt(2),Gk=BigInt(7),qk=BigInt(256),$k=BigInt(113);for(let Q=0,J=lY,X=1,G=0;Q<24;Q++){[X,G]=[G,(2*X+3*G)%5],rL.push(2*(5*G+X)),sL.push((Q+1)*(Q+2)/2%64);let Y=Xk;for(let q=0;q<7;q++)if(J=(J<<lY^(J>>Gk)*$k)%qk,J&Yk)Y^=lY<<(lY<<BigInt(q))-lY;iL.push(Y)}var[Wk,jk]=lL(iL,!0),lU=(Q,J,X)=>X>32?pL(Q,J,X):uL(Q,J,X),uU=(Q,J,X)=>X>32?bL(Q,J,X):cL(Q,J,X);function Kk(Q,J=24){let X=new Uint32Array(10);for(let G=24-J;G<24;G++){for(let $=0;$<10;$++)X[$]=Q[$]^Q[$+10]^Q[$+20]^Q[$+30]^Q[$+40];for(let $=0;$<10;$+=2){let W=($+8)%10,j=($+2)%10,K=X[j],z=X[j+1],N=lU(K,z,1)^X[W],U=uU(K,z,1)^X[W+1];for(let M=0;M<50;M+=10)Q[$+M]^=N,Q[$+M+1]^=U}let Y=Q[2],q=Q[3];for(let $=0;$<24;$++){let W=sL[$],j=lU(Y,q,W),K=uU(Y,q,W),z=rL[$];Y=Q[z],q=Q[z+1],Q[z]=j,Q[z+1]=K}for(let $=0;$<50;$+=10){for(let W=0;W<10;W++)X[W]=Q[$+W];for(let W=0;W<10;W++)Q[$+W]^=~X[(W+2)%10]&X[(W+4)%10]}Q[0]^=Wk[G],Q[1]^=jk[G]}X.fill(0)}class zz extends w9{constructor(Q,J,X,G=!1,Y=24){super();if(this.blockLen=Q,this.suffix=J,this.outputLen=X,this.enableXOF=G,this.rounds=Y,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,O$(X),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=SP(this.state)}keccak(){Kk(this.state32,this.rounds),this.posOut=0,this.pos=0}update(Q){sX(this);let{blockLen:J,state:X}=this;Q=E9(Q);let G=Q.length;for(let Y=0;Y<G;){let q=Math.min(J-this.pos,G-Y);for(let $=0;$<q;$++)X[this.pos++]^=Q[Y++];if(this.pos===J)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:Q,suffix:J,pos:X,blockLen:G}=this;if(Q[X]^=J,(J&128)!==0&&X===G-1)this.keccak();Q[G-1]^=128,this.keccak()}writeInto(Q){sX(this,!1),$z(Q),this.finish();let J=this.state,{blockLen:X}=this;for(let G=0,Y=Q.length;G<Y;){if(this.posOut>=X)this.keccak();let q=Math.min(X-this.posOut,Y-G);Q.set(J.subarray(this.posOut,this.posOut+q),G),this.posOut+=q,G+=q}return Q}xofInto(Q){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(Q)}xof(Q){return O$(Q),this.xofInto(new Uint8Array(Q))}digestInto(Q){if(xL(Q,this),this.finished)throw Error("digest() was already called");return this.writeInto(Q),this.destroy(),Q}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(Q){let{blockLen:J,suffix:X,outputLen:G,rounds:Y,enableXOF:q}=this;return Q||(Q=new zz(J,X,G,q,Y)),Q.state32.set(this.state32),Q.pos=this.pos,Q.posOut=this.posOut,Q.finished=this.finished,Q.rounds=Y,Q.suffix=X,Q.outputLen=G,Q.enableXOF=q,Q.destroyed=this.destroyed,Q}}var zk=(Q,J,X)=>Wz(()=>new zz(J,Q,X)),Nk=zk(1,136,32),tL=!1,nL=function(Q){return Nk(Q)},aL=nL;function b0(Q){let J=z0(Q,"data");return l(aL(J))}b0._=nL;b0.lock=function(){tL=!0};b0.register=function(Q){if(tL)throw TypeError("keccak256 is locked");aL=Q};Object.freeze(b0);var eL=function(Q){return dL("sha256").update(Q).digest()},Q6=function(Q){return dL("sha512").update(Q).digest()},J6=eL,X6=Q6,Y6=!1,G6=!1;function zY(Q){let J=z0(Q,"data");return l(J6(J))}zY._=eL;zY.lock=function(){Y6=!0};zY.register=function(Q){if(Y6)throw Error("sha256 is locked");J6=Q};Object.freeze(zY);function Nz(Q){let J=z0(Q,"data");return l(X6(J))}Nz._=Q6;Nz.lock=function(){G6=!0};Nz.register=function(Q){if(G6)throw Error("sha512 is locked");X6=Q};Object.freeze(zY);var q6={};QQ(q6,{validateObject:()=>iG,utf8ToBytes:()=>Bk,numberToVarBytesBE:()=>Dk,numberToHexUnpadded:()=>W6,numberToBytesLE:()=>Dz,numberToBytesBE:()=>nX,hexToNumber:()=>Uz,hexToBytes:()=>tX,equalBytes:()=>Ok,ensureBytes:()=>s8,createHmacDrbg:()=>j6,concatBytes:()=>$G,bytesToNumberLE:()=>Mz,bytesToNumberBE:()=>dJ,bytesToHex:()=>iX,bitSet:()=>Vk,bitMask:()=>Oz,bitLen:()=>Rk,bitGet:()=>Hk});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var $6=BigInt(0),C9=BigInt(1),Uk=BigInt(2),A9=(Q)=>Q instanceof Uint8Array,Mk=Array.from({length:256},(Q,J)=>J.toString(16).padStart(2,"0"));function iX(Q){if(!A9(Q))throw Error("Uint8Array expected");let J="";for(let X=0;X<Q.length;X++)J+=Mk[Q[X]];return J}function W6(Q){let J=Q.toString(16);return J.length&1?`0${J}`:J}function Uz(Q){if(typeof Q!=="string")throw Error("hex string expected, got "+typeof Q);return BigInt(Q===""?"0":`0x${Q}`)}function tX(Q){if(typeof Q!=="string")throw Error("hex string expected, got "+typeof Q);let J=Q.length;if(J%2)throw Error("padded hex string expected, got unpadded hex of length "+J);let X=new Uint8Array(J/2);for(let G=0;G<X.length;G++){let Y=G*2,q=Q.slice(Y,Y+2),$=Number.parseInt(q,16);if(Number.isNaN($)||$<0)throw Error("Invalid byte sequence");X[G]=$}return X}function dJ(Q){return Uz(iX(Q))}function Mz(Q){if(!A9(Q))throw Error("Uint8Array expected");return Uz(iX(Uint8Array.from(Q).reverse()))}function nX(Q,J){return tX(Q.toString(16).padStart(J*2,"0"))}function Dz(Q,J){return nX(Q,J).reverse()}function Dk(Q){return tX(W6(Q))}function s8(Q,J,X){let G;if(typeof J==="string")try{G=tX(J)}catch(q){throw Error(`${Q} must be valid hex string, got "${J}". Cause: ${q}`)}else if(A9(J))G=Uint8Array.from(J);else throw Error(`${Q} must be hex string or Uint8Array`);let Y=G.length;if(typeof X==="number"&&Y!==X)throw Error(`${Q} expected ${X} bytes, got ${Y}`);return G}function $G(...Q){let J=new Uint8Array(Q.reduce((G,Y)=>G+Y.length,0)),X=0;return Q.forEach((G)=>{if(!A9(G))throw Error("Uint8Array expected");J.set(G,X),X+=G.length}),J}function Ok(Q,J){if(Q.length!==J.length)return!1;for(let X=0;X<Q.length;X++)if(Q[X]!==J[X])return!1;return!0}function Bk(Q){if(typeof Q!=="string")throw Error(`utf8ToBytes expected string, got ${typeof Q}`);return new Uint8Array(new TextEncoder().encode(Q))}function Rk(Q){let J;for(J=0;Q>$6;Q>>=C9,J+=1);return J}function Hk(Q,J){return Q>>BigInt(J)&C9}var Vk=(Q,J,X)=>{return Q|(X?C9:$6)<<BigInt(J)},Oz=(Q)=>(Uk<<BigInt(Q-1))-C9,DW=(Q)=>new Uint8Array(Q),cU=(Q)=>Uint8Array.from(Q);function j6(Q,J,X){if(typeof Q!=="number"||Q<2)throw Error("hashLen must be a number");if(typeof J!=="number"||J<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let G=DW(Q),Y=DW(Q),q=0,$=()=>{G.fill(1),Y.fill(0),q=0},W=(...z)=>X(Y,G,...z),j=(z=DW())=>{if(Y=W(cU([0]),z),G=W(),z.length===0)return;Y=W(cU([1]),z),G=W()},K=()=>{if(q++>=1000)throw Error("drbg: tried 1000 values");let z=0,N=[];while(z<J){G=W();let U=G.slice();N.push(U),z+=G.length}return $G(...N)};return(z,N)=>{$(),j(z);let U=void 0;while(!(U=N(K())))j();return $(),U}}var Lk={bigint:(Q)=>typeof Q==="bigint",function:(Q)=>typeof Q==="function",boolean:(Q)=>typeof Q==="boolean",string:(Q)=>typeof Q==="string",stringOrUint8Array:(Q)=>typeof Q==="string"||Q instanceof Uint8Array,isSafeInteger:(Q)=>Number.isSafeInteger(Q),array:(Q)=>Array.isArray(Q),field:(Q,J)=>J.Fp.isValid(Q),hash:(Q)=>typeof Q==="function"&&Number.isSafeInteger(Q.outputLen)};function iG(Q,J,X={}){let G=(Y,q,$)=>{let W=Lk[q];if(typeof W!=="function")throw Error(`Invalid validator "${q}", expected function`);let j=Q[Y];if($&&j===void 0)return;if(!W(j,Q))throw Error(`Invalid param ${String(Y)}=${j} (${typeof j}), expected ${q}`)};for(let[Y,q]of Object.entries(J))G(Y,q,!1);for(let[Y,q]of Object.entries(X))G(Y,q,!0);return Q}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var t0=BigInt(0),y0=BigInt(1),mJ=BigInt(2),Ek=BigInt(3),nW=BigInt(4),pU=BigInt(5),bU=BigInt(8),wk=BigInt(9),Ck=BigInt(16);function L8(Q,J){let X=Q%J;return X>=t0?X:J+X}function Ak(Q,J,X){if(X<=t0||J<t0)throw Error("Expected power/modulo > 0");if(X===y0)return t0;let G=y0;while(J>t0){if(J&y0)G=G*Q%X;Q=Q*Q%X,J>>=y0}return G}function m8(Q,J,X){let G=Q;while(J-- >t0)G*=G,G%=X;return G}function aW(Q,J){if(Q===t0||J<=t0)throw Error(`invert: expected positive integers, got n=${Q} mod=${J}`);let X=L8(Q,J),G=J,Y=t0,q=y0,$=y0,W=t0;while(X!==t0){let j=G/X,K=G%X,z=Y-$*j,N=q-W*j;G=X,X=K,Y=$,q=W,$=z,W=N}if(G!==y0)throw Error("invert: does not exist");return L8(Y,J)}function Ik(Q){let J=(Q-y0)/mJ,X,G,Y;for(X=Q-y0,G=0;X%mJ===t0;X/=mJ,G++);for(Y=mJ;Y<Q&&Ak(Y,J,Q)!==Q-y0;Y++);if(G===1){let $=(Q+y0)/nW;return function(W,j){let K=W.pow(j,$);if(!W.eql(W.sqr(K),j))throw Error("Cannot find square root");return K}}let q=(X+y0)/mJ;return function($,W){if($.pow(W,J)===$.neg($.ONE))throw Error("Cannot find square root");let j=G,K=$.pow($.mul($.ONE,Y),X),z=$.pow(W,q),N=$.pow(W,X);while(!$.eql(N,$.ONE)){if($.eql(N,$.ZERO))return $.ZERO;let U=1;for(let D=$.sqr(N);U<j;U++){if($.eql(D,$.ONE))break;D=$.sqr(D)}let M=$.pow(K,y0<<BigInt(j-U-1));K=$.sqr(M),z=$.mul(z,M),N=$.mul(N,K),j=U}return z}}function Sk(Q){if(Q%nW===Ek){let J=(Q+y0)/nW;return function(X,G){let Y=X.pow(G,J);if(!X.eql(X.sqr(Y),G))throw Error("Cannot find square root");return Y}}if(Q%bU===pU){let J=(Q-pU)/bU;return function(X,G){let Y=X.mul(G,mJ),q=X.pow(Y,J),$=X.mul(G,q),W=X.mul(X.mul($,mJ),q),j=X.mul($,X.sub(W,X.ONE));if(!X.eql(X.sqr(j),G))throw Error("Cannot find square root");return j}}if(Q%Ck===wk);return Ik(Q)}var vk=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function _k(Q){let J={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},X=vk.reduce((G,Y)=>{return G[Y]="function",G},J);return iG(Q,X)}function Fk(Q,J,X){if(X<t0)throw Error("Expected power > 0");if(X===t0)return Q.ONE;if(X===y0)return J;let G=Q.ONE,Y=J;while(X>t0){if(X&y0)G=Q.mul(G,Y);Y=Q.sqr(Y),X>>=y0}return G}function Pk(Q,J){let X=Array(J.length),G=J.reduce((q,$,W)=>{if(Q.is0($))return q;return X[W]=q,Q.mul(q,$)},Q.ONE),Y=Q.inv(G);return J.reduceRight((q,$,W)=>{if(Q.is0($))return q;return X[W]=Q.mul(q,X[W]),Q.mul(q,$)},Y),X}function K6(Q,J){let X=J!==void 0?J:Q.toString(2).length,G=Math.ceil(X/8);return{nBitLength:X,nByteLength:G}}function kk(Q,J,X=!1,G={}){if(Q<=t0)throw Error(`Expected Field ORDER > 0, got ${Q}`);let{nBitLength:Y,nByteLength:q}=K6(Q,J);if(q>2048)throw Error("Field lengths over 2048 bytes are not supported");let $=Sk(Q),W=Object.freeze({ORDER:Q,BITS:Y,BYTES:q,MASK:Oz(Y),ZERO:t0,ONE:y0,create:(j)=>L8(j,Q),isValid:(j)=>{if(typeof j!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof j}`);return t0<=j&&j<Q},is0:(j)=>j===t0,isOdd:(j)=>(j&y0)===y0,neg:(j)=>L8(-j,Q),eql:(j,K)=>j===K,sqr:(j)=>L8(j*j,Q),add:(j,K)=>L8(j+K,Q),sub:(j,K)=>L8(j-K,Q),mul:(j,K)=>L8(j*K,Q),pow:(j,K)=>Fk(W,j,K),div:(j,K)=>L8(j*aW(K,Q),Q),sqrN:(j)=>j*j,addN:(j,K)=>j+K,subN:(j,K)=>j-K,mulN:(j,K)=>j*K,inv:(j)=>aW(j,Q),sqrt:G.sqrt||((j)=>$(W,j)),invertBatch:(j)=>Pk(W,j),cmov:(j,K,z)=>z?K:j,toBytes:(j)=>X?Dz(j,q):nX(j,q),fromBytes:(j)=>{if(j.length!==q)throw Error(`Fp.fromBytes: expected ${q}, got ${j.length}`);return X?Mz(j):dJ(j)}});return Object.freeze(W)}function z6(Q){if(typeof Q!=="bigint")throw Error("field order must be bigint");let J=Q.toString(2).length;return Math.ceil(J/8)}function N6(Q){let J=z6(Q);return J+Math.ceil(J/2)}function Zk(Q,J,X=!1){let G=Q.length,Y=z6(J),q=N6(J);if(G<16||G<q||G>1024)throw Error(`expected ${q}-1024 bytes of input, got ${G}`);let $=X?dJ(Q):Mz(Q),W=L8($,J-y0)+y0;return X?Dz(W,Y):nX(W,Y)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Tk=BigInt(0),OW=BigInt(1);function xk(Q,J){let X=(Y,q)=>{let $=q.negate();return Y?$:q},G=(Y)=>{let q=Math.ceil(J/Y)+1,$=2**(Y-1);return{windows:q,windowSize:$}};return{constTimeNegate:X,unsafeLadder(Y,q){let $=Q.ZERO,W=Y;while(q>Tk){if(q&OW)$=$.add(W);W=W.double(),q>>=OW}return $},precomputeWindow(Y,q){let{windows:$,windowSize:W}=G(q),j=[],K=Y,z=K;for(let N=0;N<$;N++){z=K,j.push(z);for(let U=1;U<W;U++)z=z.add(K),j.push(z);K=z.double()}return j},wNAF(Y,q,$){let{windows:W,windowSize:j}=G(Y),K=Q.ZERO,z=Q.BASE,N=BigInt(2**Y-1),U=2**Y,M=BigInt(Y);for(let D=0;D<W;D++){let O=D*j,w=Number($&N);if($>>=M,w>j)w-=U,$+=OW;let C=O,I=O+Math.abs(w)-1,H=D%2!==0,E=w<0;if(w===0)z=z.add(X(H,q[C]));else K=K.add(X(E,q[I]))}return{p:K,f:z}},wNAFCached(Y,q,$,W){let j=Y._WINDOW_SIZE||1,K=q.get(Y);if(!K){if(K=this.precomputeWindow(Y,j),j!==1)q.set(Y,W(K))}return this.wNAF(j,K,$)}}}function U6(Q){return _k(Q.Fp),iG(Q,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...K6(Q.n,Q.nBitLength),...Q,...{p:Q.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function gk(Q){let J=U6(Q);iG(J,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:X,Fp:G,a:Y}=J;if(X){if(!G.eql(Y,G.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof X!=="object"||typeof X.beta!=="bigint"||typeof X.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...J})}var{bytesToNumberBE:fk,hexToBytes:hk}=q6,pJ={Err:class extends Error{constructor(Q=""){super(Q)}},_parseInt(Q){let{Err:J}=pJ;if(Q.length<2||Q[0]!==2)throw new J("Invalid signature integer tag");let X=Q[1],G=Q.subarray(2,X+2);if(!X||G.length!==X)throw new J("Invalid signature integer: wrong length");if(G[0]&128)throw new J("Invalid signature integer: negative");if(G[0]===0&&!(G[1]&128))throw new J("Invalid signature integer: unnecessary leading zero");return{d:fk(G),l:Q.subarray(X+2)}},toSig(Q){let{Err:J}=pJ,X=typeof Q==="string"?hk(Q):Q;if(!(X instanceof Uint8Array))throw Error("ui8a expected");let G=X.length;if(G<2||X[0]!=48)throw new J("Invalid signature tag");if(X[1]!==G-2)throw new J("Invalid signature: incorrect length");let{d:Y,l:q}=pJ._parseInt(X.subarray(2)),{d:$,l:W}=pJ._parseInt(q);if(W.length)throw new J("Invalid signature: left bytes after parsing");return{r:Y,s:$}},hexFromSig(Q){let J=(K)=>Number.parseInt(K[0],16)&8?"00"+K:K,X=(K)=>{let z=K.toString(16);return z.length&1?`0${z}`:z},G=J(X(Q.s)),Y=J(X(Q.r)),q=G.length/2,$=Y.length/2,W=X(q),j=X($);return`30${X($+q+4)}02${j}${Y}02${W}${G}`}},kQ=BigInt(0),y8=BigInt(1),tg=BigInt(2),oU=BigInt(3),ng=BigInt(4);function mk(Q){let J=gk(Q),{Fp:X}=J,G=J.toBytes||((D,O,w)=>{let C=O.toAffine();return $G(Uint8Array.from([4]),X.toBytes(C.x),X.toBytes(C.y))}),Y=J.fromBytes||((D)=>{let O=D.subarray(1),w=X.fromBytes(O.subarray(0,X.BYTES)),C=X.fromBytes(O.subarray(X.BYTES,2*X.BYTES));return{x:w,y:C}});function q(D){let{a:O,b:w}=J,C=X.sqr(D),I=X.mul(C,D);return X.add(X.add(I,X.mul(D,O)),w)}if(!X.eql(X.sqr(J.Gy),q(J.Gx)))throw Error("bad generator point: equation left != right");function $(D){return typeof D==="bigint"&&kQ<D&&D<J.n}function W(D){if(!$(D))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function j(D){let{allowedPrivateKeyLengths:O,nByteLength:w,wrapPrivateKey:C,n:I}=J;if(O&&typeof D!=="bigint"){if(D instanceof Uint8Array)D=iX(D);if(typeof D!=="string"||!O.includes(D.length))throw Error("Invalid key");D=D.padStart(w*2,"0")}let H;try{H=typeof D==="bigint"?D:dJ(s8("private key",D,w))}catch(E){throw Error(`private key must be ${w} bytes, hex or bigint, not ${typeof D}`)}if(C)H=L8(H,I);return W(H),H}let K=new Map;function z(D){if(!(D instanceof N))throw Error("ProjectivePoint expected")}class N{constructor(D,O,w){if(this.px=D,this.py=O,this.pz=w,D==null||!X.isValid(D))throw Error("x required");if(O==null||!X.isValid(O))throw Error("y required");if(w==null||!X.isValid(w))throw Error("z required")}static fromAffine(D){let{x:O,y:w}=D||{};if(!D||!X.isValid(O)||!X.isValid(w))throw Error("invalid affine point");if(D instanceof N)throw Error("projective point not allowed");let C=(I)=>X.eql(I,X.ZERO);if(C(O)&&C(w))return N.ZERO;return new N(O,w,X.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(D){let O=X.invertBatch(D.map((w)=>w.pz));return D.map((w,C)=>w.toAffine(O[C])).map(N.fromAffine)}static fromHex(D){let O=N.fromAffine(Y(s8("pointHex",D)));return O.assertValidity(),O}static fromPrivateKey(D){return N.BASE.multiply(j(D))}_setWindowSize(D){this._WINDOW_SIZE=D,K.delete(this)}assertValidity(){if(this.is0()){if(J.allowInfinityPoint&&!X.is0(this.py))return;throw Error("bad point: ZERO")}let{x:D,y:O}=this.toAffine();if(!X.isValid(D)||!X.isValid(O))throw Error("bad point: x or y not FE");let w=X.sqr(O),C=q(D);if(!X.eql(w,C))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:D}=this.toAffine();if(X.isOdd)return!X.isOdd(D);throw Error("Field doesn't support isOdd")}equals(D){z(D);let{px:O,py:w,pz:C}=this,{px:I,py:H,pz:E}=D,A=X.eql(X.mul(O,E),X.mul(I,C)),v=X.eql(X.mul(w,E),X.mul(H,C));return A&&v}negate(){return new N(this.px,X.neg(this.py),this.pz)}double(){let{a:D,b:O}=J,w=X.mul(O,oU),{px:C,py:I,pz:H}=this,E=X.ZERO,A=X.ZERO,v=X.ZERO,P=X.mul(C,C),c=X.mul(I,I),h=X.mul(H,H),g=X.mul(C,I);return g=X.add(g,g),v=X.mul(C,H),v=X.add(v,v),E=X.mul(D,v),A=X.mul(w,h),A=X.add(E,A),E=X.sub(c,A),A=X.add(c,A),A=X.mul(E,A),E=X.mul(g,E),v=X.mul(w,v),h=X.mul(D,h),g=X.sub(P,h),g=X.mul(D,g),g=X.add(g,v),v=X.add(P,P),P=X.add(v,P),P=X.add(P,h),P=X.mul(P,g),A=X.add(A,P),h=X.mul(I,H),h=X.add(h,h),P=X.mul(h,g),E=X.sub(E,P),v=X.mul(h,c),v=X.add(v,v),v=X.add(v,v),new N(E,A,v)}add(D){z(D);let{px:O,py:w,pz:C}=this,{px:I,py:H,pz:E}=D,A=X.ZERO,v=X.ZERO,P=X.ZERO,c=J.a,h=X.mul(J.b,oU),g=X.mul(O,I),s=X.mul(w,H),i=X.mul(C,E),H0=X.add(O,w),a=X.add(I,H);H0=X.mul(H0,a),a=X.add(g,s),H0=X.sub(H0,a),a=X.add(O,C);let R=X.add(I,E);return a=X.mul(a,R),R=X.add(g,i),a=X.sub(a,R),R=X.add(w,C),A=X.add(H,E),R=X.mul(R,A),A=X.add(s,i),R=X.sub(R,A),P=X.mul(c,a),A=X.mul(h,i),P=X.add(A,P),A=X.sub(s,P),P=X.add(s,P),v=X.mul(A,P),s=X.add(g,g),s=X.add(s,g),i=X.mul(c,i),a=X.mul(h,a),s=X.add(s,i),i=X.sub(g,i),i=X.mul(c,i),a=X.add(a,i),g=X.mul(s,a),v=X.add(v,g),g=X.mul(R,a),A=X.mul(H0,A),A=X.sub(A,g),g=X.mul(H0,s),P=X.mul(R,P),P=X.add(P,g),new N(A,v,P)}subtract(D){return this.add(D.negate())}is0(){return this.equals(N.ZERO)}wNAF(D){return M.wNAFCached(this,K,D,(O)=>{let w=X.invertBatch(O.map((C)=>C.pz));return O.map((C,I)=>C.toAffine(w[I])).map(N.fromAffine)})}multiplyUnsafe(D){let O=N.ZERO;if(D===kQ)return O;if(W(D),D===y8)return this;let{endo:w}=J;if(!w)return M.unsafeLadder(this,D);let{k1neg:C,k1:I,k2neg:H,k2:E}=w.splitScalar(D),A=O,v=O,P=this;while(I>kQ||E>kQ){if(I&y8)A=A.add(P);if(E&y8)v=v.add(P);P=P.double(),I>>=y8,E>>=y8}if(C)A=A.negate();if(H)v=v.negate();return v=new N(X.mul(v.px,w.beta),v.py,v.pz),A.add(v)}multiply(D){W(D);let O=D,w,C,{endo:I}=J;if(I){let{k1neg:H,k1:E,k2neg:A,k2:v}=I.splitScalar(O),{p:P,f:c}=this.wNAF(E),{p:h,f:g}=this.wNAF(v);P=M.constTimeNegate(H,P),h=M.constTimeNegate(A,h),h=new N(X.mul(h.px,I.beta),h.py,h.pz),w=P.add(h),C=c.add(g)}else{let{p:H,f:E}=this.wNAF(O);w=H,C=E}return N.normalizeZ([w,C])[0]}multiplyAndAddUnsafe(D,O,w){let C=N.BASE,I=(E,A)=>A===kQ||A===y8||!E.equals(C)?E.multiplyUnsafe(A):E.multiply(A),H=I(this,O).add(I(D,w));return H.is0()?void 0:H}toAffine(D){let{px:O,py:w,pz:C}=this,I=this.is0();if(D==null)D=I?X.ONE:X.inv(C);let H=X.mul(O,D),E=X.mul(w,D),A=X.mul(C,D);if(I)return{x:X.ZERO,y:X.ZERO};if(!X.eql(A,X.ONE))throw Error("invZ was invalid");return{x:H,y:E}}isTorsionFree(){let{h:D,isTorsionFree:O}=J;if(D===y8)return!0;if(O)return O(N,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:D,clearCofactor:O}=J;if(D===y8)return this;if(O)return O(N,this);return this.multiplyUnsafe(J.h)}toRawBytes(D=!0){return this.assertValidity(),G(N,this,D)}toHex(D=!0){return iX(this.toRawBytes(D))}}N.BASE=new N(J.Gx,J.Gy,X.ONE),N.ZERO=new N(X.ZERO,X.ONE,X.ZERO);let U=J.nBitLength,M=xk(N,J.endo?Math.ceil(U/2):U);return{CURVE:J,ProjectivePoint:N,normPrivateKeyToScalar:j,weierstrassEquation:q,isWithinCurveOrder:$}}function yk(Q){let J=U6(Q);return iG(J,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...J})}function lk(Q){let J=yk(Q),{Fp:X,n:G}=J,Y=X.BYTES+1,q=2*X.BYTES+1;function $(R){return kQ<R&&R<X.ORDER}function W(R){return L8(R,G)}function j(R){return aW(R,G)}let{ProjectivePoint:K,normPrivateKeyToScalar:z,weierstrassEquation:N,isWithinCurveOrder:U}=mk({...J,toBytes(R,S,f){let n=S.toAffine(),u=X.toBytes(n.x),b=$G;if(f)return b(Uint8Array.from([S.hasEvenY()?2:3]),u);else return b(Uint8Array.from([4]),u,X.toBytes(n.y))},fromBytes(R){let S=R.length,f=R[0],n=R.subarray(1);if(S===Y&&(f===2||f===3)){let u=dJ(n);if(!$(u))throw Error("Point is not on curve");let b=N(u),Z0=X.sqrt(b),E0=(Z0&y8)===y8;if((f&1)===1!==E0)Z0=X.neg(Z0);return{x:u,y:Z0}}else if(S===q&&f===4){let u=X.fromBytes(n.subarray(0,X.BYTES)),b=X.fromBytes(n.subarray(X.BYTES,2*X.BYTES));return{x:u,y:b}}else throw Error(`Point of length ${S} was invalid. Expected ${Y} compressed bytes or ${q} uncompressed bytes`)}}),M=(R)=>iX(nX(R,J.nByteLength));function D(R){let S=G>>y8;return R>S}function O(R){return D(R)?W(-R):R}let w=(R,S,f)=>dJ(R.slice(S,f));class C{constructor(R,S,f){this.r=R,this.s=S,this.recovery=f,this.assertValidity()}static fromCompact(R){let S=J.nByteLength;return R=s8("compactSignature",R,S*2),new C(w(R,0,S),w(R,S,2*S))}static fromDER(R){let{r:S,s:f}=pJ.toSig(s8("DER",R));return new C(S,f)}assertValidity(){if(!U(this.r))throw Error("r must be 0 < r < CURVE.n");if(!U(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(R){return new C(this.r,this.s,R)}recoverPublicKey(R){let{r:S,s:f,recovery:n}=this,u=P(s8("msgHash",R));if(n==null||![0,1,2,3].includes(n))throw Error("recovery id invalid");let b=n===2||n===3?S+J.n:S;if(b>=X.ORDER)throw Error("recovery id 2 or 3 invalid");let Z0=(n&1)===0?"02":"03",E0=K.fromHex(Z0+M(b)),r0=j(b),n0=W(-u*r0),l0=W(f*r0),Y8=K.BASE.multiplyAndAddUnsafe(E0,n0,l0);if(!Y8)throw Error("point at infinify");return Y8.assertValidity(),Y8}hasHighS(){return D(this.s)}normalizeS(){return this.hasHighS()?new C(this.r,W(-this.s),this.recovery):this}toDERRawBytes(){return tX(this.toDERHex())}toDERHex(){return pJ.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return tX(this.toCompactHex())}toCompactHex(){return M(this.r)+M(this.s)}}let I={isValidPrivateKey(R){try{return z(R),!0}catch(S){return!1}},normPrivateKeyToScalar:z,randomPrivateKey:()=>{let R=N6(J.n);return Zk(J.randomBytes(R),J.n)},precompute(R=8,S=K.BASE){return S._setWindowSize(R),S.multiply(BigInt(3)),S}};function H(R,S=!0){return K.fromPrivateKey(R).toRawBytes(S)}function E(R){let S=R instanceof Uint8Array,f=typeof R==="string",n=(S||f)&&R.length;if(S)return n===Y||n===q;if(f)return n===2*Y||n===2*q;if(R instanceof K)return!0;return!1}function A(R,S,f=!0){if(E(R))throw Error("first arg must be private key");if(!E(S))throw Error("second arg must be public key");return K.fromHex(S).multiply(z(R)).toRawBytes(f)}let v=J.bits2int||function(R){let S=dJ(R),f=R.length*8-J.nBitLength;return f>0?S>>BigInt(f):S},P=J.bits2int_modN||function(R){return W(v(R))},c=Oz(J.nBitLength);function h(R){if(typeof R!=="bigint")throw Error("bigint expected");if(!(kQ<=R&&R<c))throw Error(`bigint expected < 2^${J.nBitLength}`);return nX(R,J.nByteLength)}function g(R,S,f=s){if(["recovered","canonical"].some((K8)=>(K8 in f)))throw Error("sign() legacy options not supported");let{hash:n,randomBytes:u}=J,{lowS:b,prehash:Z0,extraEntropy:E0}=f;if(b==null)b=!0;if(R=s8("msgHash",R),Z0)R=s8("prehashed msgHash",n(R));let r0=P(R),n0=z(S),l0=[h(n0),h(r0)];if(E0!=null){let K8=E0===!0?u(X.BYTES):E0;l0.push(s8("extraEntropy",K8))}let Y8=$G(...l0),SQ=r0;function TJ(K8){let S8=v(K8);if(!U(S8))return;let f8=j(S8),d8=K.BASE.multiply(S8).toAffine(),h8=W(d8.x);if(h8===kQ)return;let KQ=W(f8*W(SQ+h8*n0));if(KQ===kQ)return;let vQ=(d8.x===h8?0:2)|Number(d8.y&y8),fY=KQ;if(b&&D(KQ))fY=O(KQ),vQ^=1;return new C(h8,fY,vQ)}return{seed:Y8,k2sig:TJ}}let s={lowS:J.lowS,prehash:!1},i={lowS:J.lowS,prehash:!1};function H0(R,S,f=s){let{seed:n,k2sig:u}=g(R,S,f),b=J;return j6(b.hash.outputLen,b.nByteLength,b.hmac)(n,u)}K.BASE._setWindowSize(8);function a(R,S,f,n=i){let u=R;if(S=s8("msgHash",S),f=s8("publicKey",f),"strict"in n)throw Error("options.strict was renamed to lowS");let{lowS:b,prehash:Z0}=n,E0=void 0,r0;try{if(typeof u==="string"||u instanceof Uint8Array)try{E0=C.fromDER(u)}catch(f8){if(!(f8 instanceof pJ.Err))throw f8;E0=C.fromCompact(u)}else if(typeof u==="object"&&typeof u.r==="bigint"&&typeof u.s==="bigint"){let{r:f8,s:d8}=u;E0=new C(f8,d8)}else throw Error("PARSE");r0=K.fromHex(f)}catch(f8){if(f8.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(b&&E0.hasHighS())return!1;if(Z0)S=J.hash(S);let{r:n0,s:l0}=E0,Y8=P(S),SQ=j(l0),TJ=W(Y8*SQ),K8=W(n0*SQ),S8=K.BASE.multiplyAndAddUnsafe(r0,TJ,K8)?.toAffine();if(!S8)return!1;return W(S8.x)===n0}return{CURVE:J,getPublicKey:H,getSharedSecret:A,sign:H0,verify:a,ProjectivePoint:K,Signature:C,utils:I}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function uk(Q){return{hash:Q,hmac:(J,...X)=>fL(Q,J,FP(...X)),randomBytes:PP}}function ck(Q,J){let X=(G)=>lk({...Q,...uk(G)});return Object.freeze({...X(J),create:X})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var M6=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),dU=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),pk=BigInt(1),eW=BigInt(2),rU=(Q,J)=>(Q+J/eW)/J;function bk(Q){let J=M6,X=BigInt(3),G=BigInt(6),Y=BigInt(11),q=BigInt(22),$=BigInt(23),W=BigInt(44),j=BigInt(88),K=Q*Q*Q%J,z=K*K*Q%J,N=m8(z,X,J)*z%J,U=m8(N,X,J)*z%J,M=m8(U,eW,J)*K%J,D=m8(M,Y,J)*M%J,O=m8(D,q,J)*D%J,w=m8(O,W,J)*O%J,C=m8(w,j,J)*w%J,I=m8(C,W,J)*O%J,H=m8(I,X,J)*z%J,E=m8(H,$,J)*D%J,A=m8(E,G,J)*K%J,v=m8(A,eW,J);if(!Q5.eql(Q5.sqr(v),Q))throw Error("Cannot find square root");return v}var Q5=kk(M6,void 0,void 0,{sqrt:bk}),KJ=ck({a:BigInt(0),b:BigInt(7),Fp:Q5,n:dU,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(Q)=>{let J=dU,X=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),G=-pk*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),Y=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),q=X,$=BigInt("0x100000000000000000000000000000000"),W=rU(q*Q,J),j=rU(-G*Q,J),K=L8(Q-W*X-j*Y,J),z=L8(-W*G-j*q,J),N=K>$,U=z>$;if(N)K=J-K;if(U)z=J-z;if(K>$||z>$)throw Error("splitScalar: Endomorphism failed, k="+Q);return{k1neg:N,k1:K,k2neg:U,k2:z}}}},mL),ag=BigInt(0),eg=KJ.ProjectivePoint,WG="0x0000000000000000000000000000000000000000",sU="0x0000000000000000000000000000000000000000000000000000000000000000",iU=BigInt(0),tU=BigInt(1),J5=BigInt(2),nU=BigInt(27),aU=BigInt(28),kq=BigInt(35),D6=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ok=D6/J5,dk=Symbol.for("nodejs.util.inspect.custom"),xJ={};function BW(Q){return cQ(o0(Q),32)}class x0{#Q;#J;#X;#Y;get r(){return this.#Q}set r(Q){B(xX(Q)===32,"invalid r","value",Q),this.#Q=l(Q)}get s(){return B(parseInt(this.#J.substring(0,3))<8,"non-canonical s; use ._s","s",this.#J),this.#J}set s(Q){B(xX(Q)===32,"invalid s","value",Q),this.#J=l(Q)}get _s(){return this.#J}isValid(){return BigInt(this.#J)<=ok}get v(){return this.#X}set v(Q){let J=W0(Q,"value");B(J===27||J===28,"invalid v","v",Q),this.#X=J}get networkV(){return this.#Y}get legacyChainId(){let Q=this.networkV;if(Q==null)return null;return x0.getChainId(Q)}get yParity(){return this.v===27?0:1}get yParityAndS(){let Q=z0(this.s);if(this.yParity)Q[0]|=128;return l(Q)}get compactSerialized(){return P0([this.r,this.yParityAndS])}get serialized(){return P0([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(Q,J,X,G){V9(Q,xJ,"Signature"),this.#Q=J,this.#J=X,this.#X=G,this.#Y=null}getCanonical(){if(this.isValid())return this;let Q=D6-BigInt(this._s),J=55-this.v,X=new x0(xJ,this.r,BW(Q),J);if(this.networkV)X.#Y=this.networkV;return X}clone(){let Q=new x0(xJ,this.r,this._s,this.v);if(this.networkV)Q.#Y=this.networkV;return Q}toJSON(){let Q=this.networkV;return{_type:"signature",networkV:Q!=null?Q.toString():null,r:this.r,s:this._s,v:this.v}}[dk](){return this.toString()}toString(){if(this.isValid())return`Signature { r: ${this.r}, s: ${this._s}, v: ${this.v} }`;return`Signature { r: ${this.r}, s: ${this._s}, v: ${this.v}, valid: false }`}static getChainId(Q){let J=d(Q,"v");if(J==nU||J==aU)return iU;return B(J>=kq,"invalid EIP-155 v","v",Q),(J-kq)/J5}static getChainIdV(Q,J){return d(Q)*J5+BigInt(35+J-27)}static getNormalizedV(Q){let J=d(Q);if(J===iU||J===nU)return 27;if(J===tU||J===aU)return 28;return B(J>=kq,"invalid v","v",Q),J&tU?27:28}static from(Q){function J(j,K){B(j,K,"signature",Q)}if(Q==null)return new x0(xJ,sU,sU,27);if(typeof Q==="string"){let j=z0(Q,"signature");if(j.length===64){let K=l(j.slice(0,32)),z=j.slice(32,64),N=z[0]&128?28:27;return z[0]&=127,new x0(xJ,K,l(z),N)}if(j.length===65){let K=l(j.slice(0,32)),z=l(j.slice(32,64)),N=x0.getNormalizedV(j[64]);return new x0(xJ,K,z,N)}J(!1,"invalid raw signature length")}if(Q instanceof x0)return Q.clone();let X=Q.r;J(X!=null,"missing r");let G=BW(X),Y=function(j,K){if(j!=null)return BW(j);if(K!=null){J(_0(K,32),"invalid yParityAndS");let z=z0(K);return z[0]&=127,l(z)}J(!1,"missing s")}(Q.s,Q.yParityAndS),{networkV:q,v:$}=function(j,K,z){if(j!=null){let N=d(j);return{networkV:N>=kq?N:void 0,v:x0.getNormalizedV(N)}}if(K!=null)return J(_0(K,32),"invalid yParityAndS"),{v:z0(K)[0]&128?28:27};if(z!=null){switch(W0(z,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}J(!1,"invalid yParity")}J(!1,"missing v")}(Q.v,Q.yParityAndS,Q.yParity),W=new x0(xJ,G,Y,$);if(q)W.#Y=q;return J(Q.yParity==null||W0(Q.yParity,"sig.yParity")===W.yParity,"yParity mismatch"),J(Q.yParityAndS==null||Q.yParityAndS===W.yParityAndS,"yParityAndS mismatch"),W}}class ZQ{#Q;constructor(Q){B(xX(Q)===32,"invalid private key","privateKey","[REDACTED]"),this.#Q=l(Q)}get privateKey(){return this.#Q}get publicKey(){return ZQ.computePublicKey(this.#Q)}get compressedPublicKey(){return ZQ.computePublicKey(this.#Q,!0)}sign(Q){B(xX(Q)===32,"invalid digest length","digest",Q);let J=KJ.sign(U8(Q),U8(this.#Q),{lowS:!0});return x0.from({r:RJ(J.r,32),s:RJ(J.s,32),v:J.recovery?28:27})}computeSharedSecret(Q){let J=ZQ.computePublicKey(Q);return l(KJ.getSharedSecret(U8(this.#Q),z0(J),!1))}static computePublicKey(Q,J){let X=z0(Q,"key");if(X.length===32){let Y=KJ.getPublicKey(X,!!J);return l(Y)}if(X.length===64){let Y=new Uint8Array(65);Y[0]=4,Y.set(X,1),X=Y}let G=KJ.ProjectivePoint.fromHex(X);return l(G.toRawBytes(J))}static recoverPublicKey(Q,J){B(xX(Q)===32,"invalid digest length","digest",Q);let X=x0.from(J),G=KJ.Signature.fromCompact(U8(P0([X.r,X.s])));G=G.addRecoveryBit(X.yParity);let Y=G.recoverPublicKey(U8(Q));return B(Y!=null,"invalid signature for digest","signature",J),"0x"+Y.toHex(!1)}static addPoints(Q,J,X){let G=KJ.ProjectivePoint.fromHex(ZQ.computePublicKey(Q).substring(2)),Y=KJ.ProjectivePoint.fromHex(ZQ.computePublicKey(J).substring(2));return"0x"+G.add(Y).toHex(!!X)}}var rk=BigInt(0),sk=BigInt(36);function eU(Q){Q=Q.toLowerCase();let J=Q.substring(2).split(""),X=new Uint8Array(40);for(let Y=0;Y<40;Y++)X[Y]=J[Y].charCodeAt(0);let G=z0(b0(X));for(let Y=0;Y<40;Y+=2){if(G[Y>>1]>>4>=8)J[Y]=J[Y].toUpperCase();if((G[Y>>1]&15)>=8)J[Y+1]=J[Y+1].toUpperCase()}return"0x"+J.join("")}var Bz={};for(let Q=0;Q<10;Q++)Bz[String(Q)]=String(Q);for(let Q=0;Q<26;Q++)Bz[String.fromCharCode(65+Q)]=String(10+Q);var QM=15;function ik(Q){Q=Q.toUpperCase(),Q=Q.substring(4)+Q.substring(0,2)+"00";let J=Q.split("").map((G)=>{return Bz[G]}).join("");while(J.length>=QM){let G=J.substring(0,QM);J=parseInt(G,10)%97+J.substring(G.length)}let X=String(98-parseInt(J,10)%97);while(X.length<2)X="0"+X;return X}var tk=function(){let Q={};for(let J=0;J<36;J++){let X="0123456789abcdefghijklmnopqrstuvwxyz"[J];Q[X]=BigInt(J)}return Q}();function nk(Q){Q=Q.toLowerCase();let J=rk;for(let X=0;X<Q.length;X++)J=J*sk+tk[Q[X]];return J}function L0(Q){if(B(typeof Q==="string","invalid address","address",Q),Q.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!Q.startsWith("0x"))Q="0x"+Q;let J=eU(Q);return B(!Q.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||J===Q,"bad address checksum","address",Q),J}if(Q.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){B(Q.substring(2,4)===ik(Q),"bad icap checksum","address",Q);let J=nk(Q.substring(4)).toString(16);while(J.length<40)J="0"+J;return eU("0x"+J)}B(!1,"invalid address","address",Q)}function ak(Q){let J=L0(Q.from),X=d(Q.nonce,"tx.nonce").toString(16);if(X==="0")X="0x";else if(X.length%2)X="0x0"+X;else X="0x"+X;return L0(h0(b0(hQ([J,X])),12))}function O6(Q){return Q&&typeof Q.getAddress==="function"}async function RW(Q,J){let X=await J;if(X==null||X==="0x0000000000000000000000000000000000000000")_(typeof Q!=="string","unconfigured name","UNCONFIGURED_NAME",{value:Q}),B(!1,"invalid AddressLike value; did not resolve to a value address","target",Q);return L0(X)}function D8(Q,J){if(typeof Q==="string"){if(Q.match(/^0x[0-9a-f]{40}$/i))return L0(Q);return _(J!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),RW(Q,J.resolveName(Q))}else if(O6(Q))return RW(Q,Q.getAddress());else if(Q&&typeof Q.then==="function")return RW(Q,Q);B(!1,"unsupported addressable value","target",Q)}var _Q={};function p(Q,J){let X=!1;if(J<0)X=!0,J*=-1;return new m0(_Q,`${X?"":"u"}int${J}`,Q,{signed:X,width:J})}function V0(Q,J){return new m0(_Q,`bytes${J?J:""}`,Q,{size:J})}var JM=Symbol.for("_ethers_typed");class m0{type;value;#Q;_typedSymbol;constructor(Q,J,X,G){if(G==null)G=null;V9(_Q,Q,"Typed"),e(this,{_typedSymbol:JM,type:J,value:X}),this.#Q=G,this.format()}format(){if(this.type==="array")throw Error("");else if(this.type==="dynamicArray")throw Error("");else if(this.type==="tuple")return`tuple(${this.value.map((Q)=>Q.format()).join(",")})`;return 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 this.type==="string"}get tupleName(){if(this.type!=="tuple")throw TypeError("not a tuple");return this.#Q}get arrayLength(){if(this.type!=="array")throw TypeError("not an array");if(this.#Q===!0)return-1;if(this.#Q===!1)return this.value.length;return null}static from(Q,J){return new m0(_Q,Q,J)}static uint8(Q){return p(Q,8)}static uint16(Q){return p(Q,16)}static uint24(Q){return p(Q,24)}static uint32(Q){return p(Q,32)}static uint40(Q){return p(Q,40)}static uint48(Q){return p(Q,48)}static uint56(Q){return p(Q,56)}static uint64(Q){return p(Q,64)}static uint72(Q){return p(Q,72)}static uint80(Q){return p(Q,80)}static uint88(Q){return p(Q,88)}static uint96(Q){return p(Q,96)}static uint104(Q){return p(Q,104)}static uint112(Q){return p(Q,112)}static uint120(Q){return p(Q,120)}static uint128(Q){return p(Q,128)}static uint136(Q){return p(Q,136)}static uint144(Q){return p(Q,144)}static uint152(Q){return p(Q,152)}static uint160(Q){return p(Q,160)}static uint168(Q){return p(Q,168)}static uint176(Q){return p(Q,176)}static uint184(Q){return p(Q,184)}static uint192(Q){return p(Q,192)}static uint200(Q){return p(Q,200)}static uint208(Q){return p(Q,208)}static uint216(Q){return p(Q,216)}static uint224(Q){return p(Q,224)}static uint232(Q){return p(Q,232)}static uint240(Q){return p(Q,240)}static uint248(Q){return p(Q,248)}static uint256(Q){return p(Q,256)}static uint(Q){return p(Q,256)}static int8(Q){return p(Q,-8)}static int16(Q){return p(Q,-16)}static int24(Q){return p(Q,-24)}static int32(Q){return p(Q,-32)}static int40(Q){return p(Q,-40)}static int48(Q){return p(Q,-48)}static int56(Q){return p(Q,-56)}static int64(Q){return p(Q,-64)}static int72(Q){return p(Q,-72)}static int80(Q){return p(Q,-80)}static int88(Q){return p(Q,-88)}static int96(Q){return p(Q,-96)}static int104(Q){return p(Q,-104)}static int112(Q){return p(Q,-112)}static int120(Q){return p(Q,-120)}static int128(Q){return p(Q,-128)}static int136(Q){return p(Q,-136)}static int144(Q){return p(Q,-144)}static int152(Q){return p(Q,-152)}static int160(Q){return p(Q,-160)}static int168(Q){return p(Q,-168)}static int176(Q){return p(Q,-176)}static int184(Q){return p(Q,-184)}static int192(Q){return p(Q,-192)}static int200(Q){return p(Q,-200)}static int208(Q){return p(Q,-208)}static int216(Q){return p(Q,-216)}static int224(Q){return p(Q,-224)}static int232(Q){return p(Q,-232)}static int240(Q){return p(Q,-240)}static int248(Q){return p(Q,-248)}static int256(Q){return p(Q,-256)}static int(Q){return p(Q,-256)}static bytes1(Q){return V0(Q,1)}static bytes2(Q){return V0(Q,2)}static bytes3(Q){return V0(Q,3)}static bytes4(Q){return V0(Q,4)}static bytes5(Q){return V0(Q,5)}static bytes6(Q){return V0(Q,6)}static bytes7(Q){return V0(Q,7)}static bytes8(Q){return V0(Q,8)}static bytes9(Q){return V0(Q,9)}static bytes10(Q){return V0(Q,10)}static bytes11(Q){return V0(Q,11)}static bytes12(Q){return V0(Q,12)}static bytes13(Q){return V0(Q,13)}static bytes14(Q){return V0(Q,14)}static bytes15(Q){return V0(Q,15)}static bytes16(Q){return V0(Q,16)}static bytes17(Q){return V0(Q,17)}static bytes18(Q){return V0(Q,18)}static bytes19(Q){return V0(Q,19)}static bytes20(Q){return V0(Q,20)}static bytes21(Q){return V0(Q,21)}static bytes22(Q){return V0(Q,22)}static bytes23(Q){return V0(Q,23)}static bytes24(Q){return V0(Q,24)}static bytes25(Q){return V0(Q,25)}static bytes26(Q){return V0(Q,26)}static bytes27(Q){return V0(Q,27)}static bytes28(Q){return V0(Q,28)}static bytes29(Q){return V0(Q,29)}static bytes30(Q){return V0(Q,30)}static bytes31(Q){return V0(Q,31)}static bytes32(Q){return V0(Q,32)}static address(Q){return new m0(_Q,"address",Q)}static bool(Q){return new m0(_Q,"bool",!!Q)}static bytes(Q){return new m0(_Q,"bytes",Q)}static string(Q){return new m0(_Q,"string",Q)}static array(Q,J){throw Error("not implemented yet")}static tuple(Q,J){throw Error("not implemented yet")}static overrides(Q){return new m0(_Q,"overrides",Object.assign({},Q))}static isTyped(Q){return Q&&typeof Q==="object"&&"_typedSymbol"in Q&&Q._typedSymbol===JM}static dereference(Q,J){if(m0.isTyped(Q)){if(Q.type!==J)throw Error(`invalid type: expecetd ${J}, got ${Q.type}`);return Q.value}return Q}}class B6 extends RQ{constructor(Q){super("address","address",Q,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(Q,J){let X=m0.dereference(J,"string");try{X=L0(X)}catch(G){return this._throwError(G.message,J)}return Q.writeValue(X)}decode(Q){return L0(RJ(Q.readValue(),20))}}class R6 extends RQ{coder;constructor(Q){super(Q.name,Q.type,"_",Q.dynamic);this.coder=Q}defaultValue(){return this.coder.defaultValue()}encode(Q,J){return this.coder.encode(Q,J)}decode(Q){return this.coder.decode(Q)}}function H6(Q,J,X){let G=[];if(Array.isArray(X))G=X;else if(X&&typeof X==="object"){let j={};G=J.map((K)=>{let z=K.localName;return _(z,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:K},value:X}),_(!j[z],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:K},value:X}),j[z]=!0,X[z]})}else B(!1,"invalid tuple value","tuple",X);B(J.length===G.length,"types/value length mismatch","tuple",X);let Y=new D$,q=new D$,$=[];J.forEach((j,K)=>{let z=G[K];if(j.dynamic){let N=q.length;j.encode(q,z);let U=Y.writeUpdatableValue();$.push((M)=>{U(M+N)})}else j.encode(Y,z)}),$.forEach((j)=>{j(Y.length)});let W=Q.appendWriter(Y);return W+=Q.appendWriter(q),W}function V6(Q,J){let X=[],G=[],Y=Q.subReader(0);return J.forEach((q)=>{let $=null;if(q.dynamic){let W=Q.readIndex(),j=Y.subReader(W);try{$=q.decode(j)}catch(K){if(J8(K,"BUFFER_OVERRUN"))throw K;$=K,$.baseType=q.name,$.name=q.localName,$.type=q.type}}else try{$=q.decode(Q)}catch(W){if(J8(W,"BUFFER_OVERRUN"))throw W;$=W,$.baseType=q.name,$.name=q.localName,$.type=q.type}if($==null)throw Error("investigate");X.push($),G.push(q.localName||null)}),TQ.fromItems(X,G)}class L6 extends RQ{coder;length;constructor(Q,J,X){let G=Q.type+"["+(J>=0?J:"")+"]",Y=J===-1||Q.dynamic;super("array",G,X,Y);e(this,{coder:Q,length:J})}defaultValue(){let Q=this.coder.defaultValue(),J=[];for(let X=0;X<this.length;X++)J.push(Q);return J}encode(Q,J){let X=m0.dereference(J,"array");if(!Array.isArray(X))this._throwError("expected array value",X);let G=this.length;if(G===-1)G=X.length,Q.writeValue(X.length);wL(X.length,G,"coder array"+(this.localName?" "+this.localName:""));let Y=[];for(let q=0;q<X.length;q++)Y.push(this.coder);return H6(Q,Y,X)}decode(Q){let J=this.length;if(J===-1)J=Q.readIndex(),_(J*M8<=Q.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:Q.bytes,offset:J*M8,length:Q.dataLength});let X=[];for(let G=0;G<J;G++)X.push(new R6(this.coder));return V6(Q,X)}}class E6 extends RQ{constructor(Q){super("bool","bool",Q,!1)}defaultValue(){return!1}encode(Q,J){let X=m0.dereference(J,"bool");return Q.writeValue(X?1:0)}decode(Q){return!!Q.readValue()}}class Rz extends RQ{constructor(Q,J){super(Q,Q,J,!0)}defaultValue(){return"0x"}encode(Q,J){J=U8(J);let X=Q.writeValue(J.length);return X+=Q.writeBytes(J),X}decode(Q){return Q.readBytes(Q.readIndex(),!0)}}class w6 extends Rz{constructor(Q){super("bytes",Q)}decode(Q){return l(super.decode(Q))}}class C6 extends RQ{size;constructor(Q,J){let X="bytes"+String(Q);super(X,X,J,!1);e(this,{size:Q},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)}encode(Q,J){let X=U8(m0.dereference(J,this.type));if(X.length!==this.size)this._throwError("incorrect data length",J);return Q.writeBytes(X)}decode(Q){return l(Q.readBytes(this.size))}}var ek=new Uint8Array([]);class A6 extends RQ{constructor(Q){super("null","",Q,!1)}defaultValue(){return null}encode(Q,J){if(J!=null)this._throwError("not null",J);return Q.writeBytes(ek)}decode(Q){return Q.readBytes(0),null}}var Q2=BigInt(0),J2=BigInt(1),X2=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class I6 extends RQ{size;signed;constructor(Q,J,X){let G=(J?"int":"uint")+Q*8;super(G,G,X,!1);e(this,{size:Q,signed:J},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(Q,J){let X=d(m0.dereference(J,this.type)),G=bY(X2,M8*8);if(this.signed){let Y=bY(G,this.size*8-1);if(X>Y||X<-(Y+J2))this._throwError("value out-of-bounds",J);X=IL(X,8*M8)}else if(X<Q2||X>bY(G,this.size*8))this._throwError("value out-of-bounds",J);return Q.writeValue(X)}decode(Q){let J=bY(Q.readValue(),this.size*8);if(this.signed)J=WP(J,this.size*8);return J}}class S6 extends Rz{constructor(Q){super("string",Q)}defaultValue(){return""}encode(Q,J){return super.encode(Q,fQ(m0.dereference(J,"string")))}decode(Q){return M$(super.decode(Q))}}class oY extends RQ{coders;constructor(Q,J){let X=!1,G=[];Q.forEach((q)=>{if(q.dynamic)X=!0;G.push(q.type)});let Y="tuple("+G.join(",")+")";super("tuple",Y,J,X);e(this,{coders:Object.freeze(Q.slice())})}defaultValue(){let Q=[];this.coders.forEach((X)=>{Q.push(X.defaultValue())});let J=this.coders.reduce((X,G)=>{let Y=G.localName;if(Y){if(!X[Y])X[Y]=0;X[Y]++}return X},{});return this.coders.forEach((X,G)=>{let Y=X.localName;if(!Y||J[Y]!==1)return;if(Y==="length")Y="_length";if(Q[Y]!=null)return;Q[Y]=Q[G]}),Object.freeze(Q)}encode(Q,J){let X=m0.dereference(J,"tuple");return H6(Q,this.coders,X)}decode(Q){return V6(Q,this.coders)}}function HW(Q,J){return{address:L0(Q),storageKeys:J.map((X,G)=>{return B(_0(X,32),"invalid slot",`storageKeys[${G}]`,X),X.toLowerCase()})}}function zX(Q){if(Array.isArray(Q))return Q.map((X,G)=>{if(Array.isArray(X))return B(X.length===2,"invalid slot set",`value[${G}]`,X),HW(X[0],X[1]);return B(X!=null&&typeof X==="object","invalid address-slot set","value",Q),HW(X.address,X.storageKeys)});B(Q!=null&&typeof Q==="object","invalid access list","value",Q);let J=Object.keys(Q).map((X)=>{let G=Q[X].reduce((Y,q)=>{return Y[q]=!0,Y},{});return HW(X,Object.keys(G).sort())});return J.sort((X,G)=>X.address.localeCompare(G.address)),J}function v6(Q){return{address:L0(Q.address),nonce:d(Q.nonce!=null?Q.nonce:0),chainId:d(Q.chainId!=null?Q.chainId:0),signature:x0.from(Q.signature)}}function Y2(Q){let J;if(typeof Q==="string")J=ZQ.computePublicKey(Q,!1);else J=Q.publicKey;return L0(b0("0x"+J.substring(4)).substring(26))}function G2(Q,J){return Y2(ZQ.recoverPublicKey(Q,J))}var a0=BigInt(0),q2=BigInt(2),$2=BigInt(27),W2=BigInt(28),j2=BigInt(35),K2=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),z2=Symbol.for("nodejs.util.inspect.custom"),VW=131072,lq=128;function N2(Q){return{blobToKzgCommitment:(J)=>{if("computeBlobProof"in Q){if("blobToKzgCommitment"in Q&&typeof Q.blobToKzgCommitment==="function")return z0(Q.blobToKzgCommitment(l(J)))}else if("blobToKzgCommitment"in Q&&typeof Q.blobToKzgCommitment==="function")return z0(Q.blobToKzgCommitment(J));if("blobToKZGCommitment"in Q&&typeof Q.blobToKZGCommitment==="function")return z0(Q.blobToKZGCommitment(l(J)));B(!1,"unsupported KZG library","kzg",Q)},computeBlobKzgProof:(J,X)=>{if("computeBlobProof"in Q&&typeof Q.computeBlobProof==="function")return z0(Q.computeBlobProof(l(J),l(X)));if("computeBlobKzgProof"in Q&&typeof Q.computeBlobKzgProof==="function")return Q.computeBlobKzgProof(J,X);if("computeBlobKZGProof"in Q&&typeof Q.computeBlobKZGProof==="function")return z0(Q.computeBlobKZGProof(l(J),l(X)));B(!1,"unsupported KZG library","kzg",Q)}}}function XM(Q,J){let X=Q.toString(16);while(X.length<2)X="0"+X;return X+=zY(J).substring(4),"0x"+X}function NY(Q){if(Q==="0x")return null;return L0(Q)}function I9(Q,J){try{return zX(Q)}catch(X){B(!1,X.message,J,Q)}}function U2(Q,J){try{if(!Array.isArray(Q))throw Error("authorizationList: invalid array");let X=[];for(let G=0;G<Q.length;G++){let Y=Q[G];if(!Array.isArray(Y))throw Error(`authorization[${G}]: invalid array`);if(Y.length!==6)throw Error(`authorization[${G}]: wrong length`);if(!Y[1])throw Error(`authorization[${G}]: null address`);X.push({address:NY(Y[1]),nonce:w0(Y[2],"nonce"),chainId:w0(Y[0],"chainId"),signature:x0.from({yParity:NX(Y[3],"yParity"),r:cQ(Y[4],32),s:cQ(Y[5],32)})})}return X}catch(X){B(!1,X.message,J,Q)}}function NX(Q,J){if(Q==="0x")return 0;return W0(Q,J)}function w0(Q,J){if(Q==="0x")return a0;let X=d(Q,J);return B(X<=K2,"value exceeds uint size",J,X),X}function B0(Q,J){let X=d(Q,"value"),G=o0(X);return B(G.length<=32,"value too large",`tx.${J}`,X),G}function S9(Q){return zX(Q).map((J)=>[J.address,J.storageKeys])}function M2(Q){return Q.map((J)=>{return[B0(J.chainId,"chainId"),J.address,B0(J.nonce,"nonce"),B0(J.signature.yParity,"yParity"),o0(J.signature.r),o0(J.signature._s)]})}function D2(Q,J){B(Array.isArray(Q),`invalid ${J}`,"value",Q);for(let X=0;X<Q.length;X++)B(_0(Q[X],32),"invalid ${ param } hash",`value[${X}]`,Q[X]);return Q}function O2(Q){let J=sG(Q);B(Array.isArray(J)&&(J.length===9||J.length===6),"invalid field count for legacy transaction","data",Q);let X={type:0,nonce:NX(J[0],"nonce"),gasPrice:w0(J[1],"gasPrice"),gasLimit:w0(J[2],"gasLimit"),to:NY(J[3]),value:w0(J[4],"value"),data:l(J[5]),chainId:a0};if(J.length===6)return X;let G=w0(J[6],"v"),Y=w0(J[7],"r"),q=w0(J[8],"s");if(Y===a0&&q===a0)X.chainId=G;else{let $=(G-j2)/q2;if($<a0)$=a0;X.chainId=$,B($!==a0||(G===$2||G===W2),"non-canonical legacy v","v",J[6]),X.signature=x0.from({r:cQ(J[7],32),s:cQ(J[8],32),v:G})}return X}function B2(Q,J){let X=[B0(Q.nonce,"nonce"),B0(Q.gasPrice||0,"gasPrice"),B0(Q.gasLimit,"gasLimit"),Q.to||"0x",B0(Q.value,"value"),Q.data],G=a0;if(Q.chainId!=a0)G=d(Q.chainId,"tx.chainId"),B(!J||J.networkV==null||J.legacyChainId===G,"tx.chainId/sig.v mismatch","sig",J);else if(Q.signature){let q=Q.signature.legacyChainId;if(q!=null)G=q}if(!J){if(G!==a0)X.push(o0(G)),X.push("0x"),X.push("0x");return hQ(X)}let Y=BigInt(27+J.yParity);if(G!==a0)Y=x0.getChainIdV(G,J.v);else if(BigInt(J.v)!==Y)B(!1,"tx.chainId/sig.v mismatch","sig",J);return X.push(o0(Y)),X.push(o0(J.r)),X.push(o0(J._s)),hQ(X)}function v9(Q,J){let X;try{if(X=NX(J[0],"yParity"),X!==0&&X!==1)throw Error("bad yParity")}catch($){B(!1,"invalid yParity","yParity",J[0])}let G=cQ(J[1],32),Y=cQ(J[2],32),q=x0.from({r:G,s:Y,yParity:X});Q.signature=q}function R2(Q){let J=sG(z0(Q).slice(1));B(Array.isArray(J)&&(J.length===9||J.length===12),"invalid field count for transaction type: 2","data",l(Q));let X={type:2,chainId:w0(J[0],"chainId"),nonce:NX(J[1],"nonce"),maxPriorityFeePerGas:w0(J[2],"maxPriorityFeePerGas"),maxFeePerGas:w0(J[3],"maxFeePerGas"),gasPrice:null,gasLimit:w0(J[4],"gasLimit"),to:NY(J[5]),value:w0(J[6],"value"),data:l(J[7]),accessList:I9(J[8],"accessList")};if(J.length===9)return X;return v9(X,J.slice(9)),X}function H2(Q,J){let X=[B0(Q.chainId,"chainId"),B0(Q.nonce,"nonce"),B0(Q.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),B0(Q.maxFeePerGas||0,"maxFeePerGas"),B0(Q.gasLimit,"gasLimit"),Q.to||"0x",B0(Q.value,"value"),Q.data,S9(Q.accessList||[])];if(J)X.push(B0(J.yParity,"yParity")),X.push(o0(J.r)),X.push(o0(J.s));return P0(["0x02",hQ(X)])}function V2(Q){let J=sG(z0(Q).slice(1));B(Array.isArray(J)&&(J.length===8||J.length===11),"invalid field count for transaction type: 1","data",l(Q));let X={type:1,chainId:w0(J[0],"chainId"),nonce:NX(J[1],"nonce"),gasPrice:w0(J[2],"gasPrice"),gasLimit:w0(J[3],"gasLimit"),to:NY(J[4]),value:w0(J[5],"value"),data:l(J[6]),accessList:I9(J[7],"accessList")};if(J.length===8)return X;return v9(X,J.slice(8)),X}function L2(Q,J){let X=[B0(Q.chainId,"chainId"),B0(Q.nonce,"nonce"),B0(Q.gasPrice||0,"gasPrice"),B0(Q.gasLimit,"gasLimit"),Q.to||"0x",B0(Q.value,"value"),Q.data,S9(Q.accessList||[])];if(J)X.push(B0(J.yParity,"recoveryParam")),X.push(o0(J.r)),X.push(o0(J.s));return P0(["0x01",hQ(X)])}function E2(Q){let J=sG(z0(Q).slice(1)),X="3",G=null,Y=null;if(J.length===4&&Array.isArray(J[0])){X="3 (network format)";let $=J[1],W=J[2],j=J[3];B(Array.isArray($),"invalid network format: blobs not an array","fields[1]",$),B(Array.isArray(W),"invalid network format: commitments not an array","fields[2]",W),B(Array.isArray(j),"invalid network format: proofs not an array","fields[3]",j),B($.length===W.length,"invalid network format: blobs/commitments length mismatch","fields",J),B($.length===j.length,"invalid network format: blobs/proofs length mismatch","fields",J),Y=[];for(let K=0;K<J[1].length;K++)Y.push({data:$[K],commitment:W[K],proof:j[K]});J=J[0]}else if(J.length===5&&Array.isArray(J[0])){X="3 (EIP-7594 network format)",G=W0(J[1]);let $=J[2],W=J[3],j=J[4];B(G===1,`unsupported EIP-7594 network format version: ${G}`,"fields[1]",G),B(Array.isArray($),"invalid EIP-7594 network format: blobs not an array","fields[2]",$),B(Array.isArray(W),"invalid EIP-7594 network format: commitments not an array","fields[3]",W),B(Array.isArray(j),"invalid EIP-7594 network format: proofs not an array","fields[4]",j),B($.length===W.length,"invalid network format: blobs/commitments length mismatch","fields",J),B($.length*lq===j.length,"invalid network format: blobs/proofs length mismatch","fields",J),Y=[];for(let K=0;K<$.length;K++){let z=[];for(let N=0;N<lq;N++)z.push(j[K*lq+N]);Y.push({data:$[K],commitment:W[K],proof:P0(z)})}J=J[0]}B(Array.isArray(J)&&(J.length===11||J.length===14),`invalid field count for transaction type: ${X}`,"data",l(Q));let q={type:3,chainId:w0(J[0],"chainId"),nonce:NX(J[1],"nonce"),maxPriorityFeePerGas:w0(J[2],"maxPriorityFeePerGas"),maxFeePerGas:w0(J[3],"maxFeePerGas"),gasPrice:null,gasLimit:w0(J[4],"gasLimit"),to:NY(J[5]),value:w0(J[6],"value"),data:l(J[7]),accessList:I9(J[8],"accessList"),maxFeePerBlobGas:w0(J[9],"maxFeePerBlobGas"),blobVersionedHashes:J[10],blobWrapperVersion:G};if(Y)q.blobs=Y;B(q.to!=null,`invalid address for transaction type: ${X}`,"data",Q),B(Array.isArray(q.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",Q);for(let $=0;$<q.blobVersionedHashes.length;$++)B(_0(q.blobVersionedHashes[$],32),`invalid blobVersionedHash at index ${$}: must be length 32`,"data",Q);if(J.length===11)return q;return v9(q,J.slice(11)),q}function w2(Q,J,X){let G=[B0(Q.chainId,"chainId"),B0(Q.nonce,"nonce"),B0(Q.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),B0(Q.maxFeePerGas||0,"maxFeePerGas"),B0(Q.gasLimit,"gasLimit"),Q.to||WG,B0(Q.value,"value"),Q.data,S9(Q.accessList||[]),B0(Q.maxFeePerBlobGas||0,"maxFeePerBlobGas"),D2(Q.blobVersionedHashes||[],"blobVersionedHashes")];if(J){if(G.push(B0(J.yParity,"yParity")),G.push(o0(J.r)),G.push(o0(J.s)),X){if(Q.blobWrapperVersion!=null){let Y=o0(Q.blobWrapperVersion),q=[];for(let{proof:$}of X){let W=z0($),j=W.length/lq;for(let K=0;K<W.length;K+=j)q.push(W.subarray(K,K+j))}return P0(["0x03",hQ([G,Y,X.map(($)=>$.data),X.map(($)=>$.commitment),q])])}return P0(["0x03",hQ([G,X.map((Y)=>Y.data),X.map((Y)=>Y.commitment),X.map((Y)=>Y.proof)])])}}return P0(["0x03",hQ(G)])}function C2(Q){let J=sG(z0(Q).slice(1));B(Array.isArray(J)&&(J.length===10||J.length===13),"invalid field count for transaction type: 4","data",l(Q));let X={type:4,chainId:w0(J[0],"chainId"),nonce:NX(J[1],"nonce"),maxPriorityFeePerGas:w0(J[2],"maxPriorityFeePerGas"),maxFeePerGas:w0(J[3],"maxFeePerGas"),gasPrice:null,gasLimit:w0(J[4],"gasLimit"),to:NY(J[5]),value:w0(J[6],"value"),data:l(J[7]),accessList:I9(J[8],"accessList"),authorizationList:U2(J[9],"authorizationList")};if(J.length===10)return X;return v9(X,J.slice(10)),X}function A2(Q,J){let X=[B0(Q.chainId,"chainId"),B0(Q.nonce,"nonce"),B0(Q.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),B0(Q.maxFeePerGas||0,"maxFeePerGas"),B0(Q.gasLimit,"gasLimit"),Q.to||"0x",B0(Q.value,"value"),Q.data,S9(Q.accessList||[]),M2(Q.authorizationList||[])];if(J)X.push(B0(J.yParity,"yParity")),X.push(o0(J.r)),X.push(o0(J.s));return P0(["0x04",hQ(X)])}class i8{#Q;#J;#X;#Y;#G;#$;#q;#W;#M;#K;#D;#O;#j;#z;#N;#U;#H;#B;get type(){return this.#Q}set type(Q){switch(Q){case null:this.#Q=null;break;case 0:case"legacy":this.#Q=0;break;case 1:case"berlin":case"eip-2930":this.#Q=1;break;case 2:case"london":case"eip-1559":this.#Q=2;break;case 3:case"cancun":case"eip-4844":this.#Q=3;break;case 4:case"pectra":case"eip-7702":this.#Q=4;break;default:B(!1,"unsupported transaction type","type",Q)}}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(){let Q=this.#J;if(Q==null&&this.type===3)return WG;return Q}set to(Q){this.#J=Q==null?null:L0(Q)}get nonce(){return this.#Y}set nonce(Q){this.#Y=W0(Q,"value")}get gasLimit(){return this.#G}set gasLimit(Q){this.#G=d(Q)}get gasPrice(){let Q=this.#$;if(Q==null&&(this.type===0||this.type===1))return a0;return Q}set gasPrice(Q){this.#$=Q==null?null:d(Q,"gasPrice")}get maxPriorityFeePerGas(){let Q=this.#q;if(Q==null){if(this.type===2||this.type===3)return a0;return null}return Q}set maxPriorityFeePerGas(Q){this.#q=Q==null?null:d(Q,"maxPriorityFeePerGas")}get maxFeePerGas(){let Q=this.#W;if(Q==null){if(this.type===2||this.type===3)return a0;return null}return Q}set maxFeePerGas(Q){this.#W=Q==null?null:d(Q,"maxFeePerGas")}get data(){return this.#X}set data(Q){this.#X=l(Q)}get value(){return this.#M}set value(Q){this.#M=d(Q,"value")}get chainId(){return this.#K}set chainId(Q){this.#K=d(Q)}get signature(){return this.#D||null}set signature(Q){this.#D=Q==null?null:x0.from(Q)}isValid(){let Q=this.signature;if(Q&&!Q.isValid())return!1;let J=this.authorizationList;if(J){for(let X of J)if(!X.signature.isValid())return!1}return!0}get accessList(){let Q=this.#O||null;if(Q==null){if(this.type===1||this.type===2||this.type===3)return[];return null}return Q}set accessList(Q){this.#O=Q==null?null:zX(Q)}get authorizationList(){let Q=this.#H||null;if(Q==null){if(this.type===4)return[]}return Q}set authorizationList(Q){this.#H=Q==null?null:Q.map((J)=>v6(J))}get maxFeePerBlobGas(){let Q=this.#j;if(Q==null&&this.type===3)return a0;return Q}set maxFeePerBlobGas(Q){this.#j=Q==null?null:d(Q,"maxFeePerBlobGas")}get blobVersionedHashes(){let Q=this.#z;if(Q==null&&this.type===3)return[];return Q}set blobVersionedHashes(Q){if(Q!=null){B(Array.isArray(Q),"blobVersionedHashes must be an Array","value",Q),Q=Q.slice();for(let J=0;J<Q.length;J++)B(_0(Q[J],32),"invalid blobVersionedHash",`value[${J}]`,Q[J])}this.#z=Q}get blobs(){if(this.#U==null)return null;return this.#U.map((Q)=>Object.assign({},Q))}set blobs(Q){if(Q==null){this.#U=null;return}let J=[],X=[];for(let G=0;G<Q.length;G++){let Y=Q[G];if(Jz(Y)){_(this.#N,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let q=z0(Y);if(B(q.length<=VW,"blob is too large",`blobs[${G}]`,Y),q.length!==VW){let j=new Uint8Array(VW);j.set(q),q=j}let $=this.#N.blobToKzgCommitment(q),W=l(this.#N.computeBlobKzgProof(q,$));J.push({data:l(q),commitment:l($),proof:W}),X.push(XM(1,$))}else{let q=l(Y.data),$=l(Y.commitment),W=l(Y.proof);J.push({data:q,commitment:$,proof:W}),X.push(XM(1,$))}}this.#U=J,this.#z=X}get kzg(){return this.#N}set kzg(Q){if(Q==null)this.#N=null;else this.#N=N2(Q)}get blobWrapperVersion(){return this.#B}set blobWrapperVersion(Q){this.#B=Q}constructor(){this.#Q=null,this.#J=null,this.#Y=0,this.#G=a0,this.#$=null,this.#q=null,this.#W=null,this.#X="0x",this.#M=a0,this.#K=a0,this.#D=null,this.#O=null,this.#j=null,this.#z=null,this.#N=null,this.#U=null,this.#H=null,this.#B=null}get hash(){if(this.signature==null)return null;return b0(this.#R(!0,!1))}get unsignedHash(){return b0(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return G2(this.unsignedHash,this.signature.getCanonical())}get fromPublicKey(){if(this.signature==null)return null;return ZQ.recoverPublicKey(this.unsignedHash,this.signature.getCanonical())}isSigned(){return this.signature!=null}#R(Q,J){_(!Q||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let X=Q?this.signature:null;switch(this.inferType()){case 0:return B2(this,X);case 1:return L2(this,X);case 2:return H2(this,X);case 3:return w2(this,X,J?this.blobs:null);case 4:return A2(this,X)}_(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#R(!0,!0)}get unsignedSerialized(){return this.#R(!1,!1)}inferType(){let Q=this.inferTypes();if(Q.indexOf(2)>=0)return 2;return Q.pop()}inferTypes(){let Q=this.gasPrice!=null,J=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,X=this.accessList!=null,G=this.#j!=null||this.#z;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)_(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});_(!J||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),_(this.type!==0||!X,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let Y=[];if(this.type!=null)Y.push(this.type);else if(this.authorizationList&&this.authorizationList.length)Y.push(4);else if(J)Y.push(2);else if(Q){if(Y.push(1),!X)Y.push(0)}else if(X)Y.push(1),Y.push(2);else if(G&&this.to)Y.push(3);else Y.push(0),Y.push(1),Y.push(2),Y.push(3);return Y.sort(),Y}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return i8.from(this)}toJSON(){let Q=(J)=>{if(J==null)return null;return J.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:Q(this.gasLimit),gasPrice:Q(this.gasPrice),maxPriorityFeePerGas:Q(this.maxPriorityFeePerGas),maxFeePerGas:Q(this.maxFeePerGas),value:Q(this.value),chainId:Q(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}[z2](){return this.toString()}toString(){let Q=[],J=(G)=>{let Y=this[G];if(typeof Y==="string")Y=JSON.stringify(Y);Q.push(`${G}: ${Y}`)};if(this.type)J("type");if(J("to"),J("data"),J("nonce"),J("gasLimit"),J("value"),this.chainId!=null)J("chainId");if(this.signature)J("from"),Q.push(`signature: ${this.signature.toString()}`);let X=this.authorizationList;if(X){let G=[];for(let Y of X){let q=[];if(q.push(`address: ${JSON.stringify(Y.address)}`),Y.nonce!=null)q.push(`nonce: ${Y.nonce}`);if(Y.chainId!=null)q.push(`chainId: ${Y.chainId}`);if(Y.signature)q.push(`signature: ${Y.signature.toString()}`);G.push(`Authorization { ${q.join(", ")} }`)}Q.push(`authorizations: [ ${G.join(", ")} ]`)}return`Transaction { ${Q.join(", ")} }`}static from(Q){if(Q==null)return new i8;if(typeof Q==="string"){let X=z0(Q);if(X[0]>=127)return i8.from(O2(X));switch(X[0]){case 1:return i8.from(V2(X));case 2:return i8.from(R2(X));case 3:return i8.from(E2(X));case 4:return i8.from(C2(X))}_(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let J=new i8;if(Q.type!=null)J.type=Q.type;if(Q.to!=null)J.to=Q.to;if(Q.nonce!=null)J.nonce=Q.nonce;if(Q.gasLimit!=null)J.gasLimit=Q.gasLimit;if(Q.gasPrice!=null)J.gasPrice=Q.gasPrice;if(Q.maxPriorityFeePerGas!=null)J.maxPriorityFeePerGas=Q.maxPriorityFeePerGas;if(Q.maxFeePerGas!=null)J.maxFeePerGas=Q.maxFeePerGas;if(Q.maxFeePerBlobGas!=null)J.maxFeePerBlobGas=Q.maxFeePerBlobGas;if(Q.data!=null)J.data=Q.data;if(Q.value!=null)J.value=Q.value;if(Q.chainId!=null)J.chainId=Q.chainId;if(Q.signature!=null)J.signature=x0.from(Q.signature);if(Q.accessList!=null)J.accessList=Q.accessList;if(Q.authorizationList!=null)J.authorizationList=Q.authorizationList;if(Q.blobVersionedHashes!=null)J.blobVersionedHashes=Q.blobVersionedHashes;if(Q.kzg!=null)J.kzg=Q.kzg;if(Q.blobWrapperVersion!=null)J.blobWrapperVersion=Q.blobWrapperVersion;if(Q.blobs!=null)J.blobs=Q.blobs;if(Q.hash!=null)B(J.isSigned(),"unsigned transaction cannot define '.hash'","tx",Q),B(J.hash===Q.hash,"hash mismatch","tx",Q);if(Q.from!=null)B(J.isSigned(),"unsigned transaction cannot define '.from'","tx",Q),B(J.from.toLowerCase()===(Q.from||"").toLowerCase(),"from mismatch","tx",Q);return J}}function JX(Q){return b0(fQ(Q))}var I2="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",YM=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),GM=4;function S2(Q){let J=0;function X(){return Q[J++]<<8|Q[J++]}let G=X(),Y=1,q=[0,1];for(let A=1;A<G;A++)q.push(Y+=X());let $=X(),W=J;J+=$;let j=0,K=0;function z(){if(j==0)K=K<<8|Q[J++],j=8;return K>>--j&1}let N=31,U=2**N,M=U>>>1,D=M>>1,O=U-1,w=0;for(let A=0;A<N;A++)w=w<<1|z();let C=[],I=0,H=U;while(!0){let A=Math.floor(((w-I+1)*Y-1)/H),v=0,P=G;while(P-v>1){let g=v+P>>>1;if(A<q[g])P=g;else v=g}if(v==0)break;C.push(v);let c=I+Math.floor(H*q[v]/Y),h=I+Math.floor(H*q[v+1]/Y)-1;while(((c^h)&M)==0)w=w<<1&O|z(),c=c<<1&O,h=h<<1&O|1;while(c&~h&D)w=w&M|w<<1&O>>>1|z(),c=c<<1^M,h=(h^M)<<1|M|1;I=c,H=1+h-c}let E=G-4;return C.map((A)=>{switch(A-E){case 3:return E+65792+(Q[W++]<<16|Q[W++]<<8|Q[W++]);case 2:return E+256+(Q[W++]<<8|Q[W++]);case 1:return E+Q[W++];default:return A-1}})}function v2(Q){let J=0;return()=>Q[J++]}function _6(Q){return v2(S2(_2(Q)))}function _2(Q){let J=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((Y,q)=>J[Y.charCodeAt(0)]=q);let X=Q.length,G=new Uint8Array(6*X>>3);for(let Y=0,q=0,$=0,W=0;Y<X;Y++)if(W=W<<6|J[Q.charCodeAt(Y)],$+=6,$>=8)G[q++]=W>>($-=8);return G}function F2(Q){return Q&1?~Q>>1:Q>>1}function P2(Q,J){let X=Array(Q);for(let G=0,Y=0;G<Q;G++)X[G]=Y+=F2(J());return X}function jG(Q,J=0){let X=[];while(!0){let G=Q(),Y=Q();if(!Y)break;J+=G;for(let q=0;q<Y;q++)X.push(J+q);J+=Y+1}return X}function F6(Q){return KG(()=>{let J=jG(Q);if(J.length)return J})}function P6(Q){let J=[];while(!0){let X=Q();if(X==0)break;J.push(k2(X,Q))}while(!0){let X=Q()-1;if(X<0)break;J.push(Z2(X,Q))}return J.flat()}function KG(Q){let J=[];while(!0){let X=Q(J.length);if(!X)break;J.push(X)}return J}function k6(Q,J,X){let G=Array(Q).fill().map(()=>[]);for(let Y=0;Y<J;Y++)P2(Q,X).forEach((q,$)=>G[$].push(q));return G}function k2(Q,J){let X=1+J(),G=J(),Y=KG(J);return k6(Y.length,1+Q,J).flatMap((q,$)=>{let[W,...j]=q;return Array(Y[$]).fill().map((K,z)=>{let N=z*G;return[W+z*X,j.map((U)=>U+N)]})})}function Z2(Q,J){let X=1+J();return k6(X,1+Q,J).map((G)=>[G[0],G.slice(1)])}function T2(Q){let J=[],X=jG(Q);return Y(G([]),[]),J;function G(q){let $=Q(),W=KG(()=>{let j=jG(Q).map((K)=>X[K]);if(j.length)return G(j)});return{S:$,B:W,Q:q}}function Y({S:q,B:$},W,j){if(q&4&&j===W[W.length-1])return;if(q&2)j=W[W.length-1];if(q&1)J.push(W);for(let K of $)for(let z of K.Q)Y(K,[...W,z],j)}}function x2(Q){return Q.toString(16).toUpperCase().padStart(2,"0")}function Z6(Q){return`{${x2(Q)}}`}function g2(Q){let J=[];for(let X=0,G=Q.length;X<G;){let Y=Q.codePointAt(X);X+=Y<65536?1:2,J.push(Y)}return J}function aX(Q){let J=Q.length;if(J<4096)return String.fromCodePoint(...Q);let X=[];for(let G=0;G<J;)X.push(String.fromCodePoint(...Q.slice(G,G+=4096)));return X.join("")}function f2(Q,J){let X=Q.length,G=X-J.length;for(let Y=0;G==0&&Y<X;Y++)G=Q[Y]-J[Y];return G}var h2="AEUDTAHBCFQATQDRADAAcgAgADQAFAAsABQAHwAOACQADQARAAoAFwAHABIACAAPAAUACwAFAAwABAAQAAMABwAEAAoABQAIAAIACgABAAQAFAALAAIACwABAAIAAQAHAAMAAwAEAAsADAAMAAwACgANAA0AAwAKAAkABAAdAAYAZwDSAdsDJgC0CkMB8xhZAqfoC190UGcThgBurwf7PT09Pb09AjgJum8OjDllxHYUKXAPxzq6tABAxgK8ysUvWAgMPT09PT09PSs6LT2HcgWXWwFLoSMEEEl5RFVMKvO0XQ8ExDdJMnIgsj26PTQyy8FfEQ8AY8IPAGcEbwRwBHEEcgRzBHQEdQR2BHcEeAR6BHsEfAR+BIAEgfndBQoBYgULAWIFDAFiBNcE2ATZBRAFEQUvBdALFAsVDPcNBw13DYcOMA4xDjMB4BllHI0B2grbAMDpHLkQ7QHVAPRNQQFnGRUEg0yEB2uaJF8AJpIBpob5AERSMAKNoAXqaQLUBMCzEiACnwRZEkkVsS7tANAsBG0RuAQLEPABv9HICTUBXigPZwRBApMDOwAamhtaABqEAY8KvKx3LQ4ArAB8UhwEBAVSagD8AEFZADkBIadVj2UMUgx5Il4ANQC9AxIB1BlbEPMAs30CGxlXAhwZKQIECBc6EbsCoxngzv7UzRQA8M0BawL6ZwkN7wABAD33OQRcsgLJCjMCjqUChtw/km+NAsXPAoP2BT84PwURAK0RAvptb6cApQS/OMMey5HJS84UdxpxTPkCogVFITaTOwERAK5pAvkNBOVyA7q3BKlOJSALAgUIBRcEdASpBXqzABXFSWZOawLCOqw//AolCZdvv3dSBkEQGyelEPcMMwG1ATsN7UvYBPEGOwTJH30ZGQ/NlZwIpS3dDO0m4y6hgFoj9SqDBe1L9DzdC01RaA9ZC2UJ4zpjgU4DIQENIosK3Q05CG0Q8wrJaw3lEUUHOQPVSZoApQcBCxEdNRW1JhBirAsJOXcG+xr2C48mrxMpevwF0xohBk0BKRr/AM8u54WwWjFcHE9fBgMLJSPHFKhQIA0lQLd4SBobBxUlqQKRQ3BKh1E2HpMh9jw9DWYuE1F8B/U8BRlPC4E8nkarRQ4R0j6NPUgiSUwsBDV/LC8niwnPD4UMuXxyAVkJIQmxDHETMREXN8UIOQcZLZckJxUIIUaVYJoE958D8xPRAwsFPwlBBxMDtRwtEy4VKQUNgSTXAvM21S6zAo9WgAEXBcsPJR/fEFBH4A7pCJsCZQODJesALRUhABcimwhDYwBfj9hTBS7LCMdqbCN0A2cU52ERcweRDlcHpxwzFb8c4XDIXguGCCijrwlbAXUJmQFfBOMICTVbjKAgQWdTi1gYmyBhQT9d/AIxDGUVn0S9h3gCiw9rEhsBNQFzBzkNAQJ3Ee0RaxCVCOuGBDW1M/g6JQRPIYMgEQonA09szgsnJvkM+GkBoxJiAww0PXfuZ6tgtiQX/QcZMsVBYCHxC5JPzQycGsEYQlQuGeQHvwPzGvMn6kFXBf8DowMTOk0z7gS9C2kIiwk/AEkOoxcH1xhqCnGM0AExiwG3mQNXkYMCb48GNwcLAGcLhwV55QAdAqcIowAFAM8DVwA5Aq0HnQAZAIVBAT0DJy8BIeUCjwOTCDHLAZUvAfMpBBvDDBUA9zduSgLDsQKAamaiBd1YAo4CSTUBTSUEBU5HUQOvceEA2wBLBhPfRwEVq0rLGuNDAd9vKwDHAPsABTUHBUEBzQHzbQC3AV8LMQmis7UBTekpAIMAFWsB1wKJAN0ANQB/8QFTAE0FWfkF0wJPSQERMRgrV2EBuwMfATMBDQB5BsuNpckHHwRtB9MCEBsV4QLvLge1AQMi3xPNQsUCvd5VoWACZIECYkJbTa9bNyACofcCaJgCZgkCn4Q4GwsCZjsCZiYEbgR/A38TA36SOQY5dxc5gjojIwJsHQIyNjgKAm3HAm2u74ozZ0UrAWcA3gDhAEoFB5gMjQD+C8IADbUCdy8CdqI/AnlLQwJ4uh1c20WuRtcCfD8CesgCfQkCfPAFWQUgSABIfWMkAoFtAoAAAoAFAn+uSVhKWxUXSswC0QEC0MxLJwOITwOH5kTFkTIC8qFdAwMDrkvOTC0lA89NTE2vAos/AorYwRsHHUNnBbcCjjcCjlxAl4ECjtkCjlx4UbRTNQpS1FSFApP7ApMMAOkAHFUeVa9V0AYsGymVhjLheGZFOzkCl58C77JYIagAWSUClo8ClnycAKlZrFoJgU0AOwKWtQKWTlxEXNECmcsCmWRcyl0HGQKcmznCOp0CnBYCn5sCnriKAB0PMSoPAp3xAp6SALU9YTRh7wKe0wKgbgGpAp6fHwKeTqVjyGQnJSsCJ68CJn4CoPsCoEwCot0CocQCpi8Cpc4Cp/8AfQKn8mh8aLEAA0lqHGrRAqzjAqyuAq1nAq0CAlcdAlXcArHh1wMfTmyXArK9DQKy6Bds4G1jbUhfAyXNArZcOz9ukAMpRQK4XgK5RxUCuSp3cDZw4QK9GQK72nCWAzIRAr6IcgIDM3ECvhpzInNPAsPLAsMEc4J0SzVFdOADPKcDPJoDPb8CxXwCxkcCxhCJAshpUQLIRALJTwLJLgJknQLd0nh5YXiueSVL0AMYo2cCAmH0GfOVJHsLXpJeuxECz2sCz2wvS1PS8xOfAMatAs9zASnqA04SfksFAtwnAtuKAtJPA1JcA1NfAQEDVYyAiT8AyxbtYEWCHILTgs6DjQLaxwLZ3oQQhEmnPAOGpQAvA2QOhnFZ+QBVAt9lAt64c3cC4i/tFAHzMCcB9JsB8tKHAuvzAulweQLq+QLq5AD5RwG5Au6JAuuclqqXAwLuPwOF4Jh5cOBxoQLzAwBpA44WmZMC9xMDkW4DkocC95gC+dkC+GaaHJqruzebHgOdgwL++gEbADmfHJ+zAwWNA6ZqA6bZANHFAwZqoYiiBQkDDEkCwAA/AwDhQRdTARHzA2sHl2cFAJMtK7evvdsBiZkUfxEEOQH7KQUhDp0JnwCS/SlXxQL3AZ0AtwW5AG8LbUEuFCaNLgFDAYD8AbUmAHUDDgRtACwCFgyhAAAKAj0CagPdA34EkQEgRQUhfAoABQBEABMANhICdwEABdUDa+8KxQIA9wqfJ7+xt+UBkSFBQgHpFH8RNMCJAAQAGwBaAkUChIsABjpTOpSNbQC4Oo860ACNOME63AClAOgAywE6gTo7Ofw5+Tt2iTpbO56JOm85GAFWATMBbAUvNV01njWtNWY1dTW2NcU1gjWRNdI14TWeNa017jX9NbI1wTYCNhE1xjXVNhY2JzXeNe02LjY9Ni41LSE2OjY9Njw2yTcIBJA8VzY4Nt03IDcPNsogN4k3MAoEsDxnNiQ3GTdsOo03IULUQwdC4EMLHA8PCZsobShRVQYA6X8A6bABFCnXAukBowC9BbcAbwNzBL8MDAMMAQgDAAkKCwsLCQoGBAVVBI/DvwDz9b29kaUCb0QtsRTNLt4eGBcSHAMZFhYZEhYEARAEBUEcQRxBHEEcQRxBHEEaQRxBHEFCSTxBPElISUhBNkM2QTYbNklISVmBVIgBFLWZAu0BhQCjBcEAbykBvwGJAaQcEZ0ePCklMAAhMvAIMAL54gC7Bm8EescjzQMpARQpKgDUABavAj626xQAJP0A3etzuf4NNRA7efy2Z9NQrCnC0OSyANz5BBIbJ5IFDR6miIavYS6tprjjmuKebxm5C74Q225X1pkaYYPb6f1DK4k3xMEBb9S2WMjEibTNWhsRJIA+vwNVEiXTE5iXs/wezV66oFLfp9NZGYW+Gk19J2+bCT6Ye2w6LDYdgzKMUabk595eLBCXANz9HUpWbATq9vqXVx9XDg+Pc9Xp4+bsS005SVM/BJBM4687WUuf+Uj9dEi8aDNaPxtpbDxcG1THTImUMZq4UCaaNYpsVqraNyKLJXDYsFZ/5jl7bLRtO88t7P3xZaAxhb5OdPMXqsSkp1WCieG8jXm1U99+blvLlXzPCS+M93VnJCiK+09LfaSaBAVBomyDgJua8dfUzR7ga34IvR2Nvj+A9heJ6lsl1KG4NkI1032Cnff1m1wof2B9oHJK4bi6JkEdSqeNeiuo6QoZZincoc73/TH9SXF8sCE7XyuYyW8WSgbGFCjPV0ihLKhdPs08Tx82fYAkLLc4I2wdl4apY7GU5lHRFzRWJep7Ww3wbeA3qmd59/86P4xuNaqDpygXt6M85glSBHOCGgJDnt+pN9bK7HApMguX6+06RZNjzVmcZJ+wcUrJ9//bpRNxNuKpNl9uFds+S9tdx7LaM5ZkIrPj6nIU9mnbFtVbs9s/uLgl8MVczAwet+iOEzzBlYW7RCMgE6gyNLeq6+1tIx4dpgZnd0DksJS5f+JNDpwwcPNXaaVspq1fbQajOrJgK0ofKtJ1Ne90L6VO4MOl5S886p7u6xo7OLjG8TGL+HU1JXGJgppg4nNbNJ5nlzSpuPYy21JUEcUA94PoFiZfjZue+QnyQ80ekOuZVkxx4g+cvhJfHgNl4hy1/a6+RKcKlar/J29y//EztlbVPHVUeQ1zX86eQVAjR/M3dA9w4W8LfaXp4EgM85wOWasli837PzVMOnsLzR+k3o75/lRPAJSE1xAKQzEi5v10ke+VBvRt1cwQRMd+U5mLCTGVd6XiZtgBG5cDi0w22GKcVNvHiu5LQbZEDVtz0onn7k5+heuKXVsZtSzilkLRAUmjMXEMB3J9YC50XBxPiz53SC+EhnPl9WsKCv92SM/OFFIMJZYfl0WW8tIO3UxYcwdMAj7FSmgrsZ2aAZO03BOhP1bNNZItyXYQFTpC3SG1VuPDqH9GkiCDmE+JwxyIVSO5siDErAOpEXFgjy6PQtOVDj+s6e1r8heWVvmZnTciuf4EiNZzCAd7SOMhXERIOlsHIMG399i9aLTy3m2hRLZjJVDNLS53iGIK11dPqQt0zBDyg6qc7YqkDm2M5Ve6dCWCaCbTXX2rToaIgz6+zh4lYUi/+6nqcFMAkQJKHYLK0wYk5N9szV6xihDbDDFr45lN1K4aCXBq/FitPSud9gLt5ZVn+ZqGX7cwm2z5EGMgfFpIFyhGGuDPmso6TItTMwny+7uPnLCf4W6goFQFV0oQSsc9VfMmVLcLr6ZetDZbaSFTLqnSO/bIPjA3/zAUoqgGFAEQS4IhuMzEp2I3jJzbzkk/IEmyax+rhZTwd6f+CGtwPixu8IvzACquPWPREu9ZvGkUzpRwvRRuaNN6cr0W1wWits9ICdYJ7ltbgMiSL3sTPeufgNcVqMVWFkCPDH4jG2jA0XcVgQj62Cb29v9f/z/+2KbYvIv/zzjpQAPkliaVDzNrW57TZ/ZOyZD0nlfMmAIBIAGAI0D3k/mdN4xr9v85ZbZbbqfH2jGd5hUqNZWwl5SPfoGmfElmazUIeNL1j/mkF7VNAzTq4jNt8JoQ11NQOcmhprXoxSxfRGJ9LDEOAQ+dmxAQH90iti9e2u/MoeuaGcDTHoC+xsmEeWmxEKefQuIzHbpw5Tc5cEocboAD09oipWQhtTO1wivf/O+DRe2rpl/E9wlrzBorjJsOeG1B/XPW4EaJEFdNlECEZga5ZoGRHXgYouGRuVkm8tDESiEyFNo+3s5M5puSdTyUL2llnINVHEt91XUNW4ewdMgJ4boJfEyt/iY5WXqbA+A2Fkt5Z0lutiWhe9nZIyIUjyXDC3UsaG1t+eNx6z4W/OYoTB7A6x+dNSTOi9AInctbESqm5gvOLww7OWXPrmHwVZasrl4eD113pm+JtT7JVOvnCXqdzzdTRHgJ0PiGTFYW5Gvt9R9LD6Lzfs0v/TZZHSmyVNq7viIHE6DBK7Qp07Iz55EM8SYtQvZf/obBniTWi5C2/ovHfw4VndkE5XYdjOhCMRjDeOEfXeN/CwfGduiUIfsoFeUxXeQXba7c7972XNv8w+dTjjUM0QeNAReW+J014dKAD/McQYXT7c0GQPIkn3Ll6R7gGjuiQoZD0TEeEqQpKoZ15g/0OPQI17QiSv9AUROa/V/TQN3dvLArec3RrsYlvBm1b8LWzltdugsC50lNKYLEp2a+ZZYqPejULRlOJh5zj/LVMyTDvwKhMxxwuDkxJ1QpoNI0OTWLom4Z71SNzI9TV1iXJrIu9Wcnd+MCaAw8o1jSXd94YU/1gnkrC9BUEOtQvEIQ7g0i6h+KL2JKk8Ydl7HruvgWMSAmNe+LshGhV4qnWHhO9/RIPQzY1tHRj2VqOyNsDpK0cww+56AdDC4gsWwY0XxoucIWIqs/GcwnWqlaT0KPr8mbK5U94/301i1WLt4YINTVvCFBrFZbIbY8eycOdeJ2teD5IfPLCRg7jjcFTwlMFNl9zdh/o3E/hHPwj7BWg0MU09pPrBLbrCgm54A6H+I6v27+jL5gkjWg/iYdks9jbfVP5y/n0dlgWEMlKasl7JvFZd56LfybW1eeaVO0gxTfXZwD8G4SI116yx7UKVRgui6Ya1YpixqXeNLc8IxtAwCU5IhwQgn+NqHnRaDv61CxKhOq4pOX7M6pkA+Pmpd4j1vn6ACUALoLLc4vpXci8VidLxzm7qFBe7s+quuJs6ETYmnpgS3LwSZxPIltgBDXz8M1k/W2ySNv2f9/NPhxLGK2D21dkHeSGmenRT3Yqcdl0m/h3OYr8V+lXNYGf8aCCpd4bWjE4QIPj7vUKN4Nrfs7ML6Y2OyS830JCnofg/k7lpFpt4SqZc5HGg1HCOrHvOdC8bP6FGDbE/VV0mX4IakzbdS/op+Kt3G24/8QbBV7y86sGSQ/vZzU8FXs7u6jIvwchsEP2BpIhW3G8uWNwa3HmjfH/ZjhhCWvluAcF+nMf14ClKg5hGgtPLJ98ueNAkc5Hs2WZlk2QHvfreCK1CCGO6nMZVSb99VM/ajr8WHTte9JSmkXq/i/U943HEbdzW6Re/S88dKgg8pGOLlAeNiqrcLkUR3/aClFpMXcOUP3rmETcWSfMXZE3TUOi8i+fqRnTYLflVx/Vb/6GJ7eIRZUA6k3RYR3iFSK9c4iDdNwJuZL2FKz/IK5VimcNWEqdXjSoxSgmF0UPlDoUlNrPcM7ftmA8Y9gKiqKEHuWN+AZRIwtVSxye2Kf8rM3lhJ5XcBXU9n4v0Oy1RU2M+4qM8AQPVwse8ErNSob5oFPWxuqZnVzo1qB/IBxkM3EVUKFUUlO3e51259GgNcJbCmlvrdjtoTW7rChm1wyCKzpCTwozUUEOIcWLneRLgMXh+SjGSFkAllzbGS5HK7LlfCMRNRDSvbQPjcXaenNYxCvu2Qyznz6StuxVj66SgI0T8B6/sfHAJYZaZ78thjOSIFumNWLQbeZixDCCC+v0YBtkxiBB3jefHqZ/dFHU+crbj6OvS1x/JDD7vlm7zOVPwpUC01nhxZuY/63E7g",zG=44032,B$=4352,R$=4449,H$=4519,T6=19,x6=21,eX=28,V$=x6*eX,m2=T6*V$,y2=zG+m2,l2=B$+T6,u2=R$+x6,c2=H$+eX;function dY(Q){return Q>>24&255}function g6(Q){return Q&16777215}var X5,qM,Y5,uq;function p2(){let Q=_6(h2);X5=new Map(F6(Q).flatMap((J,X)=>J.map((G)=>[G,X+1<<24]))),qM=new Set(jG(Q)),Y5=new Map,uq=new Map;for(let[J,X]of P6(Q)){if(!qM.has(J)&&X.length==2){let[G,Y]=X,q=uq.get(G);if(!q)q=new Map,uq.set(G,q);q.set(Y,J)}Y5.set(J,X.reverse())}}function f6(Q){return Q>=zG&&Q<y2}function b2(Q,J){if(Q>=B$&&Q<l2&&J>=R$&&J<u2)return zG+(Q-B$)*V$+(J-R$)*eX;else if(f6(Q)&&J>H$&&J<c2&&(Q-zG)%eX==0)return Q+(J-H$);else{let X=uq.get(Q);if(X){if(X=X.get(J),X)return X}return-1}}function h6(Q){if(!X5)p2();let J=[],X=[],G=!1;function Y(q){let $=X5.get(q);if($)G=!0,q|=$;J.push(q)}for(let q of Q)while(!0){if(q<128)J.push(q);else if(f6(q)){let $=q-zG,W=$/V$|0,j=$%V$/eX|0,K=$%eX;if(Y(B$+W),Y(R$+j),K>0)Y(H$+K)}else{let $=Y5.get(q);if($)X.push(...$);else Y(q)}if(!X.length)break;q=X.pop()}if(G&&J.length>1){let q=dY(J[0]);for(let $=1;$<J.length;$++){let W=dY(J[$]);if(W==0||q<=W){q=W;continue}let j=$-1;while(!0){let K=J[j+1];if(J[j+1]=J[j],J[j]=K,!j)break;if(q=dY(J[--j]),q<=W)break}q=dY(J[$])}}return J}function o2(Q){let J=[],X=[],G=-1,Y=0;for(let q of Q){let $=dY(q),W=g6(q);if(G==-1)if($==0)G=W;else J.push(W);else if(Y>0&&Y>=$){if($==0)J.push(G,...X),X.length=0,G=W;else X.push(W);Y=$}else{let j=b2(G,W);if(j>=0)G=j;else if(Y==0&&$==0)J.push(G),G=W;else X.push(W),Y=$}}if(G>=0)J.push(G,...X);return J}function m6(Q){return h6(Q).map(g6)}function d2(Q){return o2(h6(Q))}var $M=45,y6=".",l6=65039,u6=1,L$=(Q)=>Array.from(Q);function NG(Q,J){return Q.P.has(J)||Q.Q.has(J)}class c6 extends Array{get is_emoji(){return!0}}var G5,p6,bJ,q5,b6,r2,gX,LW,FX,fJ,WM,$5;function Hz(){if(G5)return;let Q=_6(I2),J=()=>jG(Q),X=()=>new Set(J()),G=(z,N)=>N.forEach((U)=>z.add(U));G5=new Map(P6(Q)),p6=X(),bJ=J(),q5=new Set(J().map((z)=>bJ[z])),bJ=new Set(bJ),b6=X(),r2=X();let Y=F6(Q),q=Q(),$=()=>{let z=new Set;return J().forEach((N)=>G(z,Y[N])),G(z,J()),z};gX=KG((z)=>{let N=KG(Q).map((U)=>U+96);if(N.length){let U=z>=q;if(N[0]-=32,N=aX(N),U)N=`Restricted[${N}]`;let M=$(),D=$(),O=!Q();return{N,P:M,Q:D,M:O,R:U}}}),LW=X(),FX=new Map;let W=J().concat(L$(LW)).sort((z,N)=>z-N);W.forEach((z,N)=>{let U=Q(),M=W[N]=U?W[N-U]:{V:[],M:new Map};if(M.V.push(z),!LW.has(z))FX.set(z,M)});for(let{V:z,M:N}of new Set(FX.values())){let U=[];for(let D of z){let O=gX.filter((C)=>NG(C,D)),w=U.find(({G:C})=>O.some((I)=>C.has(I)));if(!w)w={G:new Set,V:[]},U.push(w);w.V.push(D),G(w.G,O)}let M=U.flatMap((D)=>L$(D.G));for(let{G:D,V:O}of U){let w=new Set(M.filter((C)=>!D.has(C)));for(let C of O)N.set(C,w)}}fJ=new Set;let j=new Set,K=(z)=>fJ.has(z)?j.add(z):fJ.add(z);for(let z of gX){for(let N of z.P)K(N);for(let N of z.Q)K(N)}for(let z of fJ)if(!FX.has(z)&&!j.has(z))FX.set(z,u6);G(fJ,m6(fJ)),WM=T2(Q).map((z)=>c6.from(z)).sort(f2),$5=new Map;for(let z of WM){let N=[$5];for(let U of z){let M=N.map((D)=>{let O=D.get(U);if(!O)O=new Map,D.set(U,O);return O});if(U===l6)N.push(...M);else N=M}for(let U of N)U.V=z}}function Vz(Q){return(o6(Q)?"":`${Lz(_9([Q]))} `)+Z6(Q)}function Lz(Q){return`"${Q}"`}function s2(Q){if(Q.length>=4&&Q[2]==$M&&Q[3]==$M)throw Error(`invalid label extension: "${aX(Q.slice(0,4))}"`)}function i2(Q){for(let J=Q.lastIndexOf(95);J>0;)if(Q[--J]!==95)throw Error("underscore allowed only at start")}function t2(Q){let J=Q[0],X=YM.get(J);if(X)throw sY(`leading ${X}`);let G=Q.length,Y=-1;for(let q=1;q<G;q++){J=Q[q];let $=YM.get(J);if($){if(Y==q)throw sY(`${X} + ${$}`);Y=q+1,X=$}}if(Y==G)throw sY(`trailing ${X}`)}function _9(Q,J=1/0,X=Z6){let G=[];if(n2(Q[0]))G.push("◌");if(Q.length>J)J>>=1,Q=[...Q.slice(0,J),8230,...Q.slice(-J)];let Y=0,q=Q.length;for(let $=0;$<q;$++){let W=Q[$];if(o6(W))G.push(aX(Q.slice(Y,$))),G.push(X(W)),Y=$+1}return G.push(aX(Q.slice(Y,q))),G.join("")}function n2(Q){return Hz(),bJ.has(Q)}function o6(Q){return Hz(),b6.has(Q)}function a2(Q){return XZ(e2(Q,d2,qZ))}function e2(Q,J,X){if(!Q)return[];Hz();let G=0;return Q.split(y6).map((Y)=>{let q=g2(Y),$={input:q,offset:G};G+=q.length+1;try{let W=$.tokens=GZ(q,J,X),j=W.length,K;if(!j)throw Error("empty label");let z=$.output=W.flat();if(i2(z),!($.emoji=j>1||W[0].is_emoji)&&z.every((N)=>N<128))s2(z),K="ASCII";else{let N=W.flatMap((U)=>U.is_emoji?[]:U);if(!N.length)K="Emoji";else{if(bJ.has(z[0]))throw sY("leading combining mark");for(let D=1;D<j;D++){let O=W[D];if(!O.is_emoji&&bJ.has(O[0]))throw sY(`emoji + combining mark: "${aX(W[D-1])} + ${_9([O[0]])}"`)}t2(z);let U=L$(new Set(N)),[M]=JZ(U);YZ(M,N),QZ(M,U),K=M.N}}$.type=K}catch(W){$.error=W}return $})}function QZ(Q,J){let X,G=[];for(let Y of J){let q=FX.get(Y);if(q===u6)return;if(q){let $=q.M.get(Y);if(X=X?X.filter((W)=>$.has(W)):L$($),!X.length)return}else G.push(Y)}if(X){for(let Y of X)if(G.every((q)=>NG(Y,q)))throw Error(`whole-script confusable: ${Q.N}/${Y.N}`)}}function JZ(Q){let J=gX;for(let X of Q){let G=J.filter((Y)=>NG(Y,X));if(!G.length)if(!gX.some((Y)=>NG(Y,X)))throw d6(X);else throw r6(J[0],X);if(J=G,G.length==1)break}return J}function XZ(Q){return Q.map(({input:J,error:X,output:G})=>{if(X){let Y=X.message;throw Error(Q.length==1?Y:`Invalid label ${Lz(_9(J,63))}: ${Y}`)}return aX(G)}).join(y6)}function d6(Q){return Error(`disallowed character: ${Vz(Q)}`)}function r6(Q,J){let X=Vz(J),G=gX.find((Y)=>Y.P.has(J));if(G)X=`${G.N} ${X}`;return Error(`illegal mixture: ${Q.N} + ${X}`)}function sY(Q){return Error(`illegal placement: ${Q}`)}function YZ(Q,J){for(let X of J)if(!NG(Q,X))throw r6(Q,X);if(Q.M){let X=m6(J);for(let G=1,Y=X.length;G<Y;G++)if(q5.has(X[G])){let q=G+1;for(let $;q<Y&&q5.has($=X[q]);q++)for(let W=G;W<q;W++)if(X[W]==$)throw Error(`duplicate non-spacing marks: ${Vz($)}`);if(q-G>GM)throw Error(`excessive non-spacing marks: ${Lz(_9(X.slice(G-1,q)))} (${q-G}/${GM})`);G=q}}}function GZ(Q,J,X){let G=[],Y=[];Q=Q.slice().reverse();while(Q.length){let q=$Z(Q);if(q){if(Y.length)G.push(J(Y)),Y=[];G.push(X(q))}else{let $=Q.pop();if(fJ.has($))Y.push($);else{let W=G5.get($);if(W)Y.push(...W);else if(!p6.has($))throw d6($)}}}if(Y.length)G.push(J(Y));return G}function qZ(Q){return Q.filter((J)=>J!=l6)}function $Z(Q,J){let X=$5,G,Y=Q.length;while(Y){if(X=X.get(Q[--Y]),!X)break;let{V:q}=X;if(q){if(G=q,J)J.push(...Q.slice(Y).reverse());Q.length=Y}}return G}var s6=new Uint8Array(32);s6.fill(0);function jM(Q){return B(Q.length!==0,"invalid ENS name; empty component","comp",Q),Q}function i6(Q){let J=fQ(WZ(Q)),X=[];if(Q.length===0)return X;let G=0;for(let Y=0;Y<J.length;Y++)if(J[Y]===46)X.push(jM(J.slice(G,Y))),G=Y+1;return B(G<J.length,"invalid ENS name; empty component","name",Q),X.push(jM(J.slice(G))),X}function WZ(Q){try{if(Q.length===0)throw Error("empty label");return a2(Q)}catch(J){B(!1,`invalid ENS name (${J.message})`,"name",Q)}}function W5(Q){B(typeof Q==="string","invalid ENS name; not a string","name",Q),B(Q.length,"invalid ENS name (empty label)","name",Q);let J=s6,X=i6(Q);while(X.length)J=b0(P0([J,b0(X.pop())]));return l(J)}function jZ(Q,J){let X=J!=null?J:63;return B(X<=255,"DNS encoded label cannot exceed 255","length",X),l(P0(i6(Q).map((G)=>{B(G.length<=X,`label ${JSON.stringify(Q)} exceeds ${X} bytes`,"name",Q);let Y=new Uint8Array(G.length+1);return Y.set(G,1),Y[0]=Y.length-1,Y})))+"00"}var t6=new Uint8Array(32);t6.fill(0);var KZ=BigInt(-1),n6=BigInt(0),a6=BigInt(1),zZ=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function NZ(Q){let J=z0(Q),X=J.length%32;if(X)return P0([J,t6.slice(X)]);return l(J)}var UZ=RJ(a6,32),MZ=RJ(n6,32),KM={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},EW=["name","version","chainId","verifyingContract","salt"];function zM(Q){return function(J){return B(typeof J==="string",`invalid domain value for ${JSON.stringify(Q)}`,`domain.${Q}`,J),J}}var DZ={name:zM("name"),version:zM("version"),chainId:function(Q){let J=d(Q,"domain.chainId");if(B(J>=0,"invalid chain ID","domain.chainId",Q),Number.isSafeInteger(J))return Number(J);return t8(J)},verifyingContract:function(Q){try{return L0(Q).toLowerCase()}catch(J){}B(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",Q)},salt:function(Q){let J=z0(Q,"domain.salt");return B(J.length===32,'invalid domain value "salt"',"domain.salt",Q),l(J)}};function wW(Q){{let J=Q.match(/^(u?)int(\d+)$/);if(J){let X=J[1]==="",G=parseInt(J[2]);B(G%8===0&&G!==0&&G<=256&&J[2]===String(G),"invalid numeric width","type",Q);let Y=bY(zZ,X?G-1:G),q=X?(Y+a6)*KZ:n6;return function($){let W=d($,"value");return B(W>=q&&W<=Y,`value out-of-bounds for ${Q}`,"value",W),RJ(X?IL(W,256):W,32)}}}{let J=Q.match(/^bytes(\d+)$/);if(J){let X=parseInt(J[1]);return B(X!==0&&X<=32&&J[1]===String(X),"invalid bytes width","type",Q),function(G){let Y=z0(G);return B(Y.length===X,`invalid length for ${Q}`,"value",G),NZ(G)}}}switch(Q){case"address":return function(J){return cQ(L0(J),32)};case"bool":return function(J){return!J?MZ:UZ};case"bytes":return function(J){return b0(J)};case"string":return function(J){return JX(J)}}return null}function NM(Q,J){return`${Q}(${J.map(({name:X,type:G})=>G+" "+X).join(",")})`}function Zq(Q){let J=Q.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(J)return{base:J[1],index:J[2]+J[4],array:{base:J[1],prefix:J[1]+J[2],count:J[5]?parseInt(J[5]):-1}};return{base:Q}}class _8{primaryType;#Q;get types(){return JSON.parse(this.#Q)}#J;#X;constructor(Q){this.#J=new Map,this.#X=new Map;let J=new Map,X=new Map,G=new Map,Y={};Object.keys(Q).forEach((W)=>{Y[W]=Q[W].map(({name:j,type:K})=>{let{base:z,index:N}=Zq(K);if(z==="int"&&!Q.int)z="int256";if(z==="uint"&&!Q.uint)z="uint256";return{name:j,type:z+(N||"")}}),J.set(W,new Set),X.set(W,[]),G.set(W,new Set)}),this.#Q=JSON.stringify(Y);for(let W in Y){let j=new Set;for(let K of Y[W]){B(!j.has(K.name),`duplicate variable name ${JSON.stringify(K.name)} in ${JSON.stringify(W)}`,"types",Q),j.add(K.name);let z=Zq(K.type).base;if(B(z!==W,`circular type reference to ${JSON.stringify(z)}`,"types",Q),wW(z))continue;B(X.has(z),`unknown type ${JSON.stringify(z)}`,"types",Q),X.get(z).push(W),J.get(W).add(z)}}let q=Array.from(X.keys()).filter((W)=>X.get(W).length===0);B(q.length!==0,"missing primary type","types",Q),B(q.length===1,`ambiguous primary types or unused types: ${q.map((W)=>JSON.stringify(W)).join(", ")}`,"types",Q),e(this,{primaryType:q[0]});function $(W,j){B(!j.has(W),`circular type reference to ${JSON.stringify(W)}`,"types",Q),j.add(W);for(let K of J.get(W)){if(!X.has(K))continue;$(K,j);for(let z of j)G.get(z).add(K)}j.delete(W)}$(this.primaryType,new Set);for(let[W,j]of G){let K=Array.from(j);K.sort(),this.#J.set(W,NM(W,Y[W])+K.map((z)=>NM(z,Y[z])).join(""))}}getEncoder(Q){let J=this.#X.get(Q);if(!J)J=this.#Y(Q),this.#X.set(Q,J);return J}#Y(Q){{let G=wW(Q);if(G)return G}let J=Zq(Q).array;if(J){let G=J.prefix,Y=this.getEncoder(G);return(q)=>{B(J.count===-1||J.count===q.length,`array length mismatch; expected length ${J.count}`,"value",q);let $=q.map(Y);if(this.#J.has(G))$=$.map(b0);return b0(P0($))}}let X=this.types[Q];if(X){let G=JX(this.#J.get(Q));return(Y)=>{let q=X.map(({name:$,type:W})=>{let j=this.getEncoder(W)(Y[$]);if(this.#J.has(W))return b0(j);return j});return q.unshift(G),P0(q)}}B(!1,`unknown type: ${Q}`,"type",Q)}encodeType(Q){let J=this.#J.get(Q);return B(J,`unknown type: ${JSON.stringify(Q)}`,"name",Q),J}encodeData(Q,J){return this.getEncoder(Q)(J)}hashStruct(Q,J){return b0(this.encodeData(Q,J))}encode(Q){return this.encodeData(this.primaryType,Q)}hash(Q){return this.hashStruct(this.primaryType,Q)}_visit(Q,J,X){if(wW(Q))return X(Q,J);let G=Zq(Q).array;if(G)return B(G.count===-1||G.count===J.length,`array length mismatch; expected length ${G.count}`,"value",J),J.map((q)=>this._visit(G.prefix,q,X));let Y=this.types[Q];if(Y)return Y.reduce((q,{name:$,type:W})=>{return q[$]=this._visit(W,J[$],X),q},{});B(!1,`unknown type: ${Q}`,"type",Q)}visit(Q,J){return this._visit(this.primaryType,Q,J)}static from(Q){return new _8(Q)}static getPrimaryType(Q){return _8.from(Q).primaryType}static hashStruct(Q,J,X){return _8.from(J).hashStruct(Q,X)}static hashDomain(Q){let J=[];for(let X in Q){if(Q[X]==null)continue;let G=KM[X];B(G,`invalid typed-data domain key: ${JSON.stringify(X)}`,"domain",Q),J.push({name:X,type:G})}return J.sort((X,G)=>{return EW.indexOf(X.name)-EW.indexOf(G.name)}),_8.hashStruct("EIP712Domain",{EIP712Domain:J},Q)}static encode(Q,J,X){return P0(["0x1901",_8.hashDomain(Q),_8.from(J).hash(X)])}static hash(Q,J,X){return b0(_8.encode(Q,J,X))}static async resolveNames(Q,J,X,G){Q=Object.assign({},Q);for(let $ in Q)if(Q[$]==null)delete Q[$];let Y={};if(Q.verifyingContract&&!_0(Q.verifyingContract,20))Y[Q.verifyingContract]="0x";let q=_8.from(J);q.visit(X,($,W)=>{if($==="address"&&!_0(W,20))Y[W]="0x";return W});for(let $ in Y)Y[$]=await G($);if(Q.verifyingContract&&Y[Q.verifyingContract])Q.verifyingContract=Y[Q.verifyingContract];return X=q.visit(X,($,W)=>{if($==="address"&&Y[W])return Y[W];return W}),{domain:Q,value:X}}static getPayload(Q,J,X){_8.hashDomain(Q);let G={},Y=[];EW.forEach((W)=>{let j=Q[W];if(j==null)return;G[W]=DZ[W](j),Y.push({name:W,type:KM[W]})});let q=_8.from(J);J=q.types;let $=Object.assign({},J);return B($.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",J),$.EIP712Domain=Y,q.encode(X),{types:$,domain:G,primaryType:q.primaryType,message:q.visit(X,(W,j)=>{if(W.match(/^bytes(\d*)/))return l(z0(j));if(W.match(/^u?int/))return d(j).toString();switch(W){case"address":return j.toLowerCase();case"bool":return!!j;case"string":return B(typeof j==="string","invalid string","value",j),j}B(!1,"unsupported type","type",W)})}}}function O8(Q){let J=new Set;return Q.forEach((X)=>J.add(X)),Object.freeze(J)}var OZ="external public payable override",BZ=O8(OZ.split(" ")),e6="constant external internal payable private public pure view override",RZ=O8(e6.split(" ")),Q7="constructor error event fallback function receive struct",J7=O8(Q7.split(" ")),X7="calldata memory storage payable indexed",HZ=O8(X7.split(" ")),VZ="tuple returns",LZ=[Q7,X7,VZ,e6].join(" "),EZ=O8(LZ.split(" ")),wZ={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},CZ=new RegExp("^(\\s*)"),AZ=new RegExp("^([0-9]+)"),IZ=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),Y7=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),G7=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");class p8{#Q;#J;get offset(){return this.#Q}get length(){return this.#J.length-this.#Q}constructor(Q){this.#Q=0,this.#J=Q.slice()}clone(){return new p8(this.#J)}reset(){this.#Q=0}#X(Q=0,J=0){return new p8(this.#J.slice(Q,J).map((X)=>{return Object.freeze(Object.assign({},X,{match:X.match-Q,linkBack:X.linkBack-Q,linkNext:X.linkNext-Q}))}))}popKeyword(Q){let J=this.peek();if(J.type!=="KEYWORD"||!Q.has(J.text))throw Error(`expected keyword ${J.text}`);return this.pop().text}popType(Q){if(this.peek().type!==Q){let J=this.peek();throw Error(`expected ${Q}; got ${J.type} ${JSON.stringify(J.text)}`)}return this.pop().text}popParen(){let Q=this.peek();if(Q.type!=="OPEN_PAREN")throw Error("bad start");let J=this.#X(this.#Q+1,Q.match+1);return this.#Q=Q.match+1,J}popParams(){let Q=this.peek();if(Q.type!=="OPEN_PAREN")throw Error("bad start");let J=[];while(this.#Q<Q.match-1){let X=this.peek().linkNext;J.push(this.#X(this.#Q+1,X)),this.#Q=X}return this.#Q=Q.match+1,J}peek(){if(this.#Q>=this.#J.length)throw Error("out-of-bounds");return this.#J[this.#Q]}peekKeyword(Q){let J=this.peekType("KEYWORD");return J!=null&&Q.has(J)?J:null}peekType(Q){if(this.length===0)return null;let J=this.peek();return J.type===Q?J.text:null}pop(){let Q=this.peek();return this.#Q++,Q}toString(){let Q=[];for(let J=this.#Q;J<this.#J.length;J++){let X=this.#J[J];Q.push(`${X.type}:${X.text}`)}return`<TokenString ${Q.join(" ")}>`}}function LJ(Q){let J=[],X=($)=>{let W=q<Q.length?JSON.stringify(Q[q]):"$EOI";throw Error(`invalid token ${W} at ${q}: ${$}`)},G=[],Y=[],q=0;while(q<Q.length){let $=Q.substring(q),W=$.match(CZ);if(W)q+=W[1].length,$=Q.substring(q);let j={depth:G.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:q,value:-1};J.push(j);let K=wZ[$[0]]||"";if(K){if(j.type=K,j.text=$[0],q++,K==="OPEN_PAREN")G.push(J.length-1),Y.push(J.length-1);else if(K=="CLOSE_PAREN"){if(G.length===0)X("no matching open bracket");j.match=G.pop(),J[j.match].match=J.length-1,j.depth--,j.linkBack=Y.pop(),J[j.linkBack].linkNext=J.length-1}else if(K==="COMMA")j.linkBack=Y.pop(),J[j.linkBack].linkNext=J.length-1,Y.push(J.length-1);else if(K==="OPEN_BRACKET")j.type="BRACKET";else if(K==="CLOSE_BRACKET"){let z=J.pop().text;if(J.length>0&&J[J.length-1].type==="NUMBER"){let N=J.pop().text;z=N+z,J[J.length-1].value=W0(N)}if(J.length===0||J[J.length-1].type!=="BRACKET")throw Error("missing opening bracket");J[J.length-1].text+=z}continue}if(W=$.match(IZ),W){if(j.text=W[1],q+=j.text.length,EZ.has(j.text)){j.type="KEYWORD";continue}if(j.text.match(G7)){j.type="TYPE";continue}j.type="ID";continue}if(W=$.match(AZ),W){j.text=W[1],j.type="NUMBER",q+=j.text.length;continue}throw Error(`unexpected token ${JSON.stringify($[0])} at position ${q}`)}return new p8(J.map(($)=>Object.freeze($)))}function UM(Q,J){let X=[];for(let G in J.keys())if(Q.has(G))X.push(G);if(X.length>1)throw Error(`conflicting types: ${X.join(", ")}`)}function F9(Q,J){if(J.peekKeyword(J7)){let X=J.pop().text;if(X!==Q)throw Error(`expected ${Q}, got ${X}`)}return J.popType("ID")}function pQ(Q,J){let X=new Set;while(!0){let G=Q.peekType("KEYWORD");if(G==null||J&&!J.has(G))break;if(Q.pop(),X.has(G))throw Error(`duplicate keywords: ${JSON.stringify(G)}`);X.add(G)}return Object.freeze(X)}function q7(Q){let J=pQ(Q,RZ);if(UM(J,O8("constant payable nonpayable".split(" "))),UM(J,O8("pure view payable nonpayable".split(" "))),J.has("view"))return"view";if(J.has("pure"))return"pure";if(J.has("payable"))return"payable";if(J.has("nonpayable"))return"nonpayable";if(J.has("constant"))return"view";return"nonpayable"}function mQ(Q,J){return Q.popParams().map((X)=>v0.from(X,J))}function $7(Q){if(Q.peekType("AT")){if(Q.pop(),Q.peekType("NUMBER"))return d(Q.pop().text);throw Error("invalid gas")}return null}function XX(Q){if(Q.length)throw Error(`unexpected tokens at offset ${Q.offset}: ${Q.toString()}`)}var SZ=new RegExp(/^(.*)\[([0-9]*)\]$/);function MM(Q){let J=Q.match(G7);if(B(J,"invalid type","type",Q),Q==="uint")return"uint256";if(Q==="int")return"int256";if(J[2]){let X=parseInt(J[2]);B(X!==0&&X<=32,"invalid bytes length","type",Q)}else if(J[3]){let X=parseInt(J[3]);B(X!==0&&X<=256&&X%8===0,"invalid numeric width","type",Q)}return Q}var g0={},C8=Symbol.for("_ethers_internal"),DM="_ParamTypeInternal",OM="_ErrorInternal",BM="_EventInternal",RM="_ConstructorInternal",HM="_FallbackInternal",VM="_FunctionInternal",LM="_StructInternal";class v0{name;type;baseType;indexed;components;arrayLength;arrayChildren;constructor(Q,J,X,G,Y,q,$,W){if(V9(Q,g0,"ParamType"),Object.defineProperty(this,C8,{value:DM}),q)q=Object.freeze(q.slice());if(G==="array"){if($==null||W==null)throw Error("")}else if($!=null||W!=null)throw Error("");if(G==="tuple"){if(q==null)throw Error("")}else if(q!=null)throw Error("");e(this,{name:J,type:X,baseType:G,indexed:Y,components:q,arrayLength:$,arrayChildren:W})}format(Q){if(Q==null)Q="sighash";if(Q==="json"){let X=this.name||"";if(this.isArray()){let Y=JSON.parse(this.arrayChildren.format("json"));return Y.name=X,Y.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(Y)}let G={type:this.baseType==="tuple"?"tuple":this.type,name:X};if(typeof this.indexed==="boolean")G.indexed=this.indexed;if(this.isTuple())G.components=this.components.map((Y)=>JSON.parse(Y.format(Q)));return JSON.stringify(G)}let J="";if(this.isArray())J+=this.arrayChildren.format(Q),J+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`;else if(this.isTuple())J+="("+this.components.map((X)=>X.format(Q)).join(Q==="full"?", ":",")+")";else J+=this.type;if(Q!=="sighash"){if(this.indexed===!0)J+=" indexed";if(Q==="full"&&this.name)J+=" "+this.name}return J}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(Q,J){if(this.isArray()){if(!Array.isArray(Q))throw Error("invalid array value");if(this.arrayLength!==-1&&Q.length!==this.arrayLength)throw Error("array is wrong length");let X=this;return Q.map((G)=>X.arrayChildren.walk(G,J))}if(this.isTuple()){if(!Array.isArray(Q))throw Error("invalid tuple value");if(Q.length!==this.components.length)throw Error("array is wrong length");let X=this;return Q.map((G,Y)=>X.components[Y].walk(G,J))}return J(this.type,Q)}#Q(Q,J,X,G){if(this.isArray()){if(!Array.isArray(J))throw Error("invalid array value");if(this.arrayLength!==-1&&J.length!==this.arrayLength)throw Error("array is wrong length");let q=this.arrayChildren,$=J.slice();$.forEach((W,j)=>{q.#Q(Q,W,X,(K)=>{$[j]=K})}),G($);return}if(this.isTuple()){let q=this.components,$;if(Array.isArray(J))$=J.slice();else{if(J==null||typeof J!=="object")throw Error("invalid tuple value");$=q.map((W)=>{if(!W.name)throw Error("cannot use object value with unnamed components");if(!(W.name in J))throw Error(`missing value for component ${W.name}`);return J[W.name]})}if($.length!==this.components.length)throw Error("array is wrong length");$.forEach((W,j)=>{q[j].#Q(Q,W,X,(K)=>{$[j]=K})}),G($);return}let Y=X(this.type,J);if(Y.then)Q.push(async function(){G(await Y)}());else G(Y)}async walkAsync(Q,J){let X=[],G=[Q];if(this.#Q(X,Q,J,(Y)=>{G[0]=Y}),X.length)await Promise.all(X);return G[0]}static from(Q,J){if(v0.isParamType(Q))return Q;if(typeof Q==="string")try{return v0.from(LJ(Q),J)}catch($){B(!1,"invalid param type","obj",Q)}else if(Q instanceof p8){let $="",W="",j=null;if(pQ(Q,O8(["tuple"])).has("tuple")||Q.peekType("OPEN_PAREN"))W="tuple",j=Q.popParams().map((M)=>v0.from(M)),$=`tuple(${j.map((M)=>M.format()).join(",")})`;else $=MM(Q.popType("TYPE")),W=$;let K=null,z=null;while(Q.length&&Q.peekType("BRACKET")){let M=Q.pop();K=new v0(g0,"",$,W,null,j,z,K),z=M.value,$+=M.text,W="array",j=null}let N=null;if(pQ(Q,HZ).has("indexed")){if(!J)throw Error("");N=!0}let U=Q.peekType("ID")?Q.pop().text:"";if(Q.length)throw Error("leftover tokens");return new v0(g0,U,$,W,N,j,z,K)}let X=Q.name;B(!X||typeof X==="string"&&X.match(Y7),"invalid name","obj.name",X);let G=Q.indexed;if(G!=null)B(J,"parameter cannot be indexed","obj.indexed",Q.indexed),G=!!G;let Y=Q.type,q=Y.match(SZ);if(q){let $=parseInt(q[2]||"-1"),W=v0.from({type:q[1],components:Q.components});return new v0(g0,X||"",Y,"array",G,null,$,W)}if(Y==="tuple"||Y.startsWith("tuple(")||Y.startsWith("(")){let $=Q.components!=null?Q.components.map((W)=>v0.from(W)):null;return new v0(g0,X||"",Y,"tuple",G,$,null,null)}return Y=MM(Q.type),new v0(g0,X||"",Y,Y,G,null,null,null)}static isParamType(Q){return Q&&Q[C8]===DM}}class YX{type;inputs;constructor(Q,J,X){V9(Q,g0,"Fragment"),X=Object.freeze(X.slice()),e(this,{type:J,inputs:X})}static from(Q){if(typeof Q==="string"){try{YX.from(JSON.parse(Q))}catch(J){}return YX.from(LJ(Q))}if(Q instanceof p8)switch(Q.peekKeyword(J7)){case"constructor":return xQ.from(Q);case"error":return E8.from(Q);case"event":return UQ.from(Q);case"fallback":case"receive":return PQ.from(Q);case"function":return MQ.from(Q);case"struct":return rJ.from(Q)}else if(typeof Q==="object"){switch(Q.type){case"constructor":return xQ.from(Q);case"error":return E8.from(Q);case"event":return UQ.from(Q);case"fallback":case"receive":return PQ.from(Q);case"function":return MQ.from(Q);case"struct":return rJ.from(Q)}_(!1,`unsupported type: ${Q.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}B(!1,"unsupported frgament object","obj",Q)}static isConstructor(Q){return xQ.isFragment(Q)}static isError(Q){return E8.isFragment(Q)}static isEvent(Q){return UQ.isFragment(Q)}static isFunction(Q){return MQ.isFragment(Q)}static isStruct(Q){return rJ.isFragment(Q)}}class tG extends YX{name;constructor(Q,J,X,G){super(Q,J,G);B(typeof X==="string"&&X.match(Y7),"invalid identifier","name",X),G=Object.freeze(G.slice()),e(this,{name:X})}}function UG(Q,J){return"("+J.map((X)=>X.format(Q)).join(Q==="full"?", ":",")+")"}class E8 extends tG{constructor(Q,J,X){super(Q,"error",J,X);Object.defineProperty(this,C8,{value:OM})}get selector(){return JX(this.format("sighash")).substring(0,10)}format(Q){if(Q==null)Q="sighash";if(Q==="json")return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((X)=>JSON.parse(X.format(Q)))});let J=[];if(Q!=="sighash")J.push("error");return J.push(this.name+UG(Q,this.inputs)),J.join(" ")}static from(Q){if(E8.isFragment(Q))return Q;if(typeof Q==="string")return E8.from(LJ(Q));else if(Q instanceof p8){let J=F9("error",Q),X=mQ(Q);return XX(Q),new E8(g0,J,X)}return new E8(g0,Q.name,Q.inputs?Q.inputs.map(v0.from):[])}static isFragment(Q){return Q&&Q[C8]===OM}}class UQ extends tG{anonymous;constructor(Q,J,X,G){super(Q,"event",J,X);Object.defineProperty(this,C8,{value:BM}),e(this,{anonymous:G})}get topicHash(){return JX(this.format("sighash"))}format(Q){if(Q==null)Q="sighash";if(Q==="json")return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((X)=>JSON.parse(X.format(Q)))});let J=[];if(Q!=="sighash")J.push("event");if(J.push(this.name+UG(Q,this.inputs)),Q!=="sighash"&&this.anonymous)J.push("anonymous");return J.join(" ")}static getTopicHash(Q,J){return J=(J||[]).map((X)=>v0.from(X)),new UQ(g0,Q,J,!1).topicHash}static from(Q){if(UQ.isFragment(Q))return Q;if(typeof Q==="string")try{return UQ.from(LJ(Q))}catch(J){B(!1,"invalid event fragment","obj",Q)}else if(Q instanceof p8){let J=F9("event",Q),X=mQ(Q,!0),G=!!pQ(Q,O8(["anonymous"])).has("anonymous");return XX(Q),new UQ(g0,J,X,G)}return new UQ(g0,Q.name,Q.inputs?Q.inputs.map((J)=>v0.from(J,!0)):[],!!Q.anonymous)}static isFragment(Q){return Q&&Q[C8]===BM}}class xQ extends YX{payable;gas;constructor(Q,J,X,G,Y){super(Q,J,X);Object.defineProperty(this,C8,{value:RM}),e(this,{payable:G,gas:Y})}format(Q){if(_(Q!=null&&Q!=="sighash","cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),Q==="json")return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map((X)=>JSON.parse(X.format(Q)))});let J=[`constructor${UG(Q,this.inputs)}`];if(this.payable)J.push("payable");if(this.gas!=null)J.push(`@${this.gas.toString()}`);return J.join(" ")}static from(Q){if(xQ.isFragment(Q))return Q;if(typeof Q==="string")try{return xQ.from(LJ(Q))}catch(J){B(!1,"invalid constuctor fragment","obj",Q)}else if(Q instanceof p8){pQ(Q,O8(["constructor"]));let J=mQ(Q),X=!!pQ(Q,BZ).has("payable"),G=$7(Q);return XX(Q),new xQ(g0,"constructor",J,X,G)}return new xQ(g0,"constructor",Q.inputs?Q.inputs.map(v0.from):[],!!Q.payable,Q.gas!=null?Q.gas:null)}static isFragment(Q){return Q&&Q[C8]===RM}}class PQ extends YX{payable;constructor(Q,J,X){super(Q,"fallback",J);Object.defineProperty(this,C8,{value:HM}),e(this,{payable:X})}format(Q){let J=this.inputs.length===0?"receive":"fallback";if(Q==="json"){let X=this.payable?"payable":"nonpayable";return JSON.stringify({type:J,stateMutability:X})}return`${J}()${this.payable?" payable":""}`}static from(Q){if(PQ.isFragment(Q))return Q;if(typeof Q==="string")try{return PQ.from(LJ(Q))}catch(J){B(!1,"invalid fallback fragment","obj",Q)}else if(Q instanceof p8){let J=Q.toString(),X=Q.peekKeyword(O8(["fallback","receive"]));if(B(X,"type must be fallback or receive","obj",J),Q.popKeyword(O8(["fallback","receive"]))==="receive"){let q=mQ(Q);return B(q.length===0,"receive cannot have arguments","obj.inputs",q),pQ(Q,O8(["payable"])),XX(Q),new PQ(g0,[],!0)}let G=mQ(Q);if(G.length)B(G.length===1&&G[0].type==="bytes","invalid fallback inputs","obj.inputs",G.map((q)=>q.format("minimal")).join(", "));else G=[v0.from("bytes")];let Y=q7(Q);if(B(Y==="nonpayable"||Y==="payable","fallback cannot be constants","obj.stateMutability",Y),pQ(Q,O8(["returns"])).has("returns")){let q=mQ(Q);B(q.length===1&&q[0].type==="bytes","invalid fallback outputs","obj.outputs",q.map(($)=>$.format("minimal")).join(", "))}return XX(Q),new PQ(g0,G,Y==="payable")}if(Q.type==="receive")return new PQ(g0,[],!0);if(Q.type==="fallback"){let J=[v0.from("bytes")],X=Q.stateMutability==="payable";return new PQ(g0,J,X)}B(!1,"invalid fallback description","obj",Q)}static isFragment(Q){return Q&&Q[C8]===HM}}class MQ extends tG{constant;outputs;stateMutability;payable;gas;constructor(Q,J,X,G,Y,q){super(Q,"function",J,G);Object.defineProperty(this,C8,{value:VM}),Y=Object.freeze(Y.slice()),e(this,{constant:X==="view"||X==="pure",gas:q,outputs:Y,payable:X==="payable",stateMutability:X})}get selector(){return JX(this.format("sighash")).substring(0,10)}format(Q){if(Q==null)Q="sighash";if(Q==="json")return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map((X)=>JSON.parse(X.format(Q))),outputs:this.outputs.map((X)=>JSON.parse(X.format(Q)))});let J=[];if(Q!=="sighash")J.push("function");if(J.push(this.name+UG(Q,this.inputs)),Q!=="sighash"){if(this.stateMutability!=="nonpayable")J.push(this.stateMutability);if(this.outputs&&this.outputs.length)J.push("returns"),J.push(UG(Q,this.outputs));if(this.gas!=null)J.push(`@${this.gas.toString()}`)}return J.join(" ")}static getSelector(Q,J){return J=(J||[]).map((X)=>v0.from(X)),new MQ(g0,Q,"view",J,[],null).selector}static from(Q){if(MQ.isFragment(Q))return Q;if(typeof Q==="string")try{return MQ.from(LJ(Q))}catch(X){B(!1,"invalid function fragment","obj",Q)}else if(Q instanceof p8){let X=F9("function",Q),G=mQ(Q),Y=q7(Q),q=[];if(pQ(Q,O8(["returns"])).has("returns"))q=mQ(Q);let $=$7(Q);return XX(Q),new MQ(g0,X,Y,G,q,$)}let J=Q.stateMutability;if(J==null){if(J="payable",typeof Q.constant==="boolean"){if(J="view",!Q.constant){if(J="payable",typeof Q.payable==="boolean"&&!Q.payable)J="nonpayable"}}else if(typeof Q.payable==="boolean"&&!Q.payable)J="nonpayable"}return new MQ(g0,Q.name,J,Q.inputs?Q.inputs.map(v0.from):[],Q.outputs?Q.outputs.map(v0.from):[],Q.gas!=null?Q.gas:null)}static isFragment(Q){return Q&&Q[C8]===VM}}class rJ extends tG{constructor(Q,J,X){super(Q,"struct",J,X);Object.defineProperty(this,C8,{value:LM})}format(){throw Error("@TODO")}static from(Q){if(typeof Q==="string")try{return rJ.from(LJ(Q))}catch(J){B(!1,"invalid struct fragment","obj",Q)}else if(Q instanceof p8){let J=F9("struct",Q),X=mQ(Q);return XX(Q),new rJ(g0,J,X)}return new rJ(g0,Q.name,Q.inputs?Q.inputs.map(v0.from):[])}static isFragment(Q){return Q&&Q[C8]===LM}}var JQ=new Map;JQ.set(0,"GENERIC_PANIC");JQ.set(1,"ASSERT_FALSE");JQ.set(17,"OVERFLOW");JQ.set(18,"DIVIDE_BY_ZERO");JQ.set(33,"ENUM_RANGE_ERROR");JQ.set(34,"BAD_STORAGE_DATA");JQ.set(49,"STACK_UNDERFLOW");JQ.set(50,"ARRAY_RANGE_ERROR");JQ.set(65,"OUT_OF_MEMORY");JQ.set(81,"UNINITIALIZED_FUNCTION_CALL");var vZ=new RegExp(/^bytes([0-9]*)$/),_Z=new RegExp(/^(u?int)([0-9]*)$/),CW=null,EM=1024;function FZ(Q,J,X,G){let Y="missing revert data",q=null,$=null,W=null;if(X){Y="execution reverted";let K=z0(X);if(X=l(X),K.length===0)Y+=" (no data present; likely require(false) occurred",q="require(false)";else if(K.length%32!==4)Y+=" (could not decode reason; invalid data length)";else if(l(K.slice(0,4))==="0x08c379a0")try{q=G.decode(["string"],K.slice(4))[0],W={signature:"Error(string)",name:"Error",args:[q]},Y+=`: ${JSON.stringify(q)}`}catch(z){Y+=" (could not decode reason; invalid string data)"}else if(l(K.slice(0,4))==="0x4e487b71")try{let z=Number(G.decode(["uint256"],K.slice(4))[0]);W={signature:"Panic(uint256)",name:"Panic",args:[z]},q=`Panic due to ${JQ.get(z)||"UNKNOWN"}(${z})`,Y+=`: ${q}`}catch(z){Y+=" (could not decode panic code)"}else Y+=" (unknown custom error)"}let j={to:J.to?L0(J.to):null,data:J.data||"0x"};if(J.from)j.from=L0(J.from);return T0(Y,"CALL_EXCEPTION",{action:Q,data:X,reason:q,transaction:j,invocation:$,revert:W})}class QY{#Q(Q){if(Q.isArray())return new L6(this.#Q(Q.arrayChildren),Q.arrayLength,Q.name);if(Q.isTuple())return new oY(Q.components.map((X)=>this.#Q(X)),Q.name);switch(Q.baseType){case"address":return new B6(Q.name);case"bool":return new E6(Q.name);case"string":return new S6(Q.name);case"bytes":return new w6(Q.name);case"":return new A6(Q.name)}let J=Q.type.match(_Z);if(J){let X=parseInt(J[2]||"256");return B(X!==0&&X<=256&&X%8===0,"invalid "+J[1]+" bit length","param",Q),new I6(X/8,J[1]==="int",Q.name)}if(J=Q.type.match(vZ),J){let X=parseInt(J[1]);return B(X!==0&&X<=32,"invalid bytes length","param",Q),new C6(X,Q.name)}B(!1,"invalid type","type",Q.type)}getDefaultValue(Q){let J=Q.map((X)=>this.#Q(v0.from(X)));return new oY(J,"_").defaultValue()}encode(Q,J){wL(J.length,Q.length,"types/values length mismatch");let X=Q.map((q)=>this.#Q(v0.from(q))),G=new oY(X,"_"),Y=new D$;return G.encode(Y,J),Y.data}decode(Q,J,X){let G=Q.map((Y)=>this.#Q(v0.from(Y)));return new oY(G,"_").decode(new qz(J,X,EM))}static _setDefaultMaxInflation(Q){B(typeof Q==="number"&&Number.isInteger(Q),"invalid defaultMaxInflation factor","value",Q),EM=Q}static defaultAbiCoder(){if(CW==null)CW=new QY;return CW}static getBuiltinCallException(Q,J,X){return FZ(Q,J,X,QY.defaultAbiCoder())}}class W7{fragment;name;signature;topic;args;constructor(Q,J,X){let G=Q.name,Y=Q.format();e(this,{fragment:Q,name:G,signature:Y,topic:J,args:X})}}class j7{fragment;name;args;signature;selector;value;constructor(Q,J,X,G){let Y=Q.name,q=Q.format();e(this,{fragment:Q,name:Y,args:X,signature:q,selector:J,value:G})}}class K7{fragment;name;args;signature;selector;constructor(Q,J,X){let G=Q.name,Y=Q.format();e(this,{fragment:Q,name:G,args:X,signature:Y,selector:J})}}class j5{hash;_isIndexed;static isIndexed(Q){return!!(Q&&Q._isIndexed)}constructor(Q){e(this,{hash:Q,_isIndexed:!0})}}var wM={"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"},CM={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:(Q)=>{return`reverted with reason string ${JSON.stringify(Q)}`}},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:(Q)=>{let J="unknown panic code";if(Q>=0&&Q<=255&&wM[Q.toString()])J=wM[Q.toString()];return`reverted with panic code 0x${Q.toString(16)} (${J})`}}};class yJ{fragments;deploy;fallback;receive;#Q;#J;#X;#Y;constructor(Q){let J=[];if(typeof Q==="string")J=JSON.parse(Q);else J=Q;this.#X=new Map,this.#Q=new Map,this.#J=new Map;let X=[];for(let q of J)try{X.push(YX.from(q))}catch($){console.log(`[Warning] Invalid Fragment ${JSON.stringify(q)}:`,$.message)}e(this,{fragments:Object.freeze(X)});let G=null,Y=!1;if(this.#Y=this.getAbiCoder(),this.fragments.forEach((q,$)=>{let W;switch(q.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}e(this,{deploy:q});return;case"fallback":if(q.inputs.length===0)Y=!0;else B(!G||q.payable!==G.payable,"conflicting fallback fragments",`fragments[${$}]`,q),G=q,Y=G.payable;return;case"function":W=this.#X;break;case"event":W=this.#J;break;case"error":W=this.#Q;break;default:return}let j=q.format();if(W.has(j))return;W.set(j,q)}),!this.deploy)e(this,{deploy:xQ.from("constructor()")});e(this,{fallback:G,receive:Y})}format(Q){let J=Q?"minimal":"full";return this.fragments.map((X)=>X.format(J))}formatJson(){let Q=this.fragments.map((J)=>J.format("json"));return JSON.stringify(Q.map((J)=>JSON.parse(J)))}getAbiCoder(){return QY.defaultAbiCoder()}#G(Q,J,X){if(_0(Q)){let Y=Q.toLowerCase();for(let q of this.#X.values())if(Y===q.selector)return q;return null}if(Q.indexOf("(")===-1){let Y=[];for(let[q,$]of this.#X)if(q.split("(")[0]===Q)Y.push($);if(J){let q=J.length>0?J[J.length-1]:null,$=J.length,W=!0;if(m0.isTyped(q)&&q.type==="overrides")W=!1,$--;for(let j=Y.length-1;j>=0;j--){let K=Y[j].inputs.length;if(K!==$&&(!W||K!==$-1))Y.splice(j,1)}for(let j=Y.length-1;j>=0;j--){let K=Y[j].inputs;for(let z=0;z<J.length;z++){if(!m0.isTyped(J[z]))continue;if(z>=K.length){if(J[z].type==="overrides")continue;Y.splice(j,1);break}if(J[z].type!==K[z].baseType){Y.splice(j,1);break}}}}if(Y.length===1&&J&&J.length!==Y[0].inputs.length){let q=J[J.length-1];if(q==null||Array.isArray(q)||typeof q!=="object")Y.splice(0,1)}if(Y.length===0)return null;if(Y.length>1&&X){let q=Y.map(($)=>JSON.stringify($.format())).join(", ");B(!1,`ambiguous function description (i.e. matches ${q})`,"key",Q)}return Y[0]}let G=this.#X.get(MQ.from(Q).format());if(G)return G;return null}getFunctionName(Q){let J=this.#G(Q,null,!1);return B(J,"no matching function","key",Q),J.name}hasFunction(Q){return!!this.#G(Q,null,!1)}getFunction(Q,J){return this.#G(Q,J||null,!0)}forEachFunction(Q){let J=Array.from(this.#X.keys());J.sort((X,G)=>X.localeCompare(G));for(let X=0;X<J.length;X++){let G=J[X];Q(this.#X.get(G),X)}}#$(Q,J,X){if(_0(Q)){let Y=Q.toLowerCase();for(let q of this.#J.values())if(Y===q.topicHash)return q;return null}if(Q.indexOf("(")===-1){let Y=[];for(let[q,$]of this.#J)if(q.split("(")[0]===Q)Y.push($);if(J){for(let q=Y.length-1;q>=0;q--)if(Y[q].inputs.length<J.length)Y.splice(q,1);for(let q=Y.length-1;q>=0;q--){let $=Y[q].inputs;for(let W=0;W<J.length;W++){if(!m0.isTyped(J[W]))continue;if(J[W].type!==$[W].baseType){Y.splice(q,1);break}}}}if(Y.length===0)return null;if(Y.length>1&&X){let q=Y.map(($)=>JSON.stringify($.format())).join(", ");B(!1,`ambiguous event description (i.e. matches ${q})`,"key",Q)}return Y[0]}let G=this.#J.get(UQ.from(Q).format());if(G)return G;return null}getEventName(Q){let J=this.#$(Q,null,!1);return B(J,"no matching event","key",Q),J.name}hasEvent(Q){return!!this.#$(Q,null,!1)}getEvent(Q,J){return this.#$(Q,J||null,!0)}forEachEvent(Q){let J=Array.from(this.#J.keys());J.sort((X,G)=>X.localeCompare(G));for(let X=0;X<J.length;X++){let G=J[X];Q(this.#J.get(G),X)}}getError(Q,J){if(_0(Q)){let G=Q.toLowerCase();if(CM[G])return E8.from(CM[G].signature);for(let Y of this.#Q.values())if(G===Y.selector)return Y;return null}if(Q.indexOf("(")===-1){let G=[];for(let[Y,q]of this.#Q)if(Y.split("(")[0]===Q)G.push(q);if(G.length===0){if(Q==="Error")return E8.from("error Error(string)");if(Q==="Panic")return E8.from("error Panic(uint256)");return null}else if(G.length>1){let Y=G.map((q)=>JSON.stringify(q.format())).join(", ");B(!1,`ambiguous error description (i.e. ${Y})`,"name",Q)}return G[0]}if(Q=E8.from(Q).format(),Q==="Error(string)")return E8.from("error Error(string)");if(Q==="Panic(uint256)")return E8.from("error Panic(uint256)");let X=this.#Q.get(Q);if(X)return X;return null}forEachError(Q){let J=Array.from(this.#Q.keys());J.sort((X,G)=>X.localeCompare(G));for(let X=0;X<J.length;X++){let G=J[X];Q(this.#Q.get(G),X)}}_decodeParams(Q,J){return this.#Y.decode(Q,J)}_encodeParams(Q,J){return this.#Y.encode(Q,J)}encodeDeploy(Q){return this._encodeParams(this.deploy.inputs,Q||[])}decodeErrorResult(Q,J){if(typeof Q==="string"){let X=this.getError(Q);B(X,"unknown error","fragment",Q),Q=X}return B(h0(J,0,4)===Q.selector,`data signature does not match error ${Q.name}.`,"data",J),this._decodeParams(Q.inputs,h0(J,4))}encodeErrorResult(Q,J){if(typeof Q==="string"){let X=this.getError(Q);B(X,"unknown error","fragment",Q),Q=X}return P0([Q.selector,this._encodeParams(Q.inputs,J||[])])}decodeFunctionData(Q,J){if(typeof Q==="string"){let X=this.getFunction(Q);B(X,"unknown function","fragment",Q),Q=X}return B(h0(J,0,4)===Q.selector,`data signature does not match function ${Q.name}.`,"data",J),this._decodeParams(Q.inputs,h0(J,4))}encodeFunctionData(Q,J){if(typeof Q==="string"){let X=this.getFunction(Q);B(X,"unknown function","fragment",Q),Q=X}return P0([Q.selector,this._encodeParams(Q.inputs,J||[])])}decodeFunctionResult(Q,J){if(typeof Q==="string"){let Y=this.getFunction(Q);B(Y,"unknown function","fragment",Q),Q=Y}let X="invalid length for result data",G=U8(J);if(G.length%32===0)try{return this.#Y.decode(Q.outputs,G)}catch(Y){X="could not decode result data"}_(!1,X,"BAD_DATA",{value:l(G),info:{method:Q.name,signature:Q.format()}})}makeError(Q,J){let X=z0(Q,"data"),G=QY.getBuiltinCallException("call",J,X),Y="execution reverted (unknown custom error)";if(G.message.startsWith("execution reverted (unknown custom error)")){let $=l(X.slice(0,4)),W=this.getError($);if(W)try{let j=this.#Y.decode(W.inputs,X.slice(4));G.revert={name:W.name,signature:W.format(),args:j},G.reason=G.revert.signature,G.message=`execution reverted: ${G.reason}`}catch(j){G.message="execution reverted (coult not decode custom error)"}}let q=this.parseTransaction(J);if(q)G.invocation={method:q.name,signature:q.signature,args:q.args};return G}encodeFunctionResult(Q,J){if(typeof Q==="string"){let X=this.getFunction(Q);B(X,"unknown function","fragment",Q),Q=X}return l(this.#Y.encode(Q.outputs,J||[]))}encodeFilterTopics(Q,J){if(typeof Q==="string"){let Y=this.getEvent(Q);B(Y,"unknown event","eventFragment",Q),Q=Y}_(J.length<=Q.inputs.length,`too many arguments for ${Q.format()}`,"UNEXPECTED_ARGUMENT",{count:J.length,expectedCount:Q.inputs.length});let X=[];if(!Q.anonymous)X.push(Q.topicHash);let G=(Y,q)=>{if(Y.type==="string")return JX(q);else if(Y.type==="bytes")return b0(l(q));if(Y.type==="bool"&&typeof q==="boolean")q=q?"0x01":"0x00";else if(Y.type.match(/^u?int/))q=RJ(q);else if(Y.type.match(/^bytes/))q=$P(q,32);else if(Y.type==="address")this.#Y.encode(["address"],[q]);return cQ(l(q),32)};J.forEach((Y,q)=>{let $=Q.inputs[q];if(!$.indexed){B(Y==null,"cannot filter non-indexed parameters; must be null","contract."+$.name,Y);return}if(Y==null)X.push(null);else if($.baseType==="array"||$.baseType==="tuple")B(!1,"filtering with tuples or arrays not supported","contract."+$.name,Y);else if(Array.isArray(Y))X.push(Y.map((W)=>G($,W)));else X.push(G($,Y))});while(X.length&&X[X.length-1]===null)X.pop();return X}encodeEventLog(Q,J){if(typeof Q==="string"){let q=this.getEvent(Q);B(q,"unknown event","eventFragment",Q),Q=q}let X=[],G=[],Y=[];if(!Q.anonymous)X.push(Q.topicHash);return B(J.length===Q.inputs.length,"event arguments/values mismatch","values",J),Q.inputs.forEach((q,$)=>{let W=J[$];if(q.indexed)if(q.type==="string")X.push(JX(W));else if(q.type==="bytes")X.push(b0(W));else if(q.baseType==="tuple"||q.baseType==="array")throw Error("not implemented");else X.push(this.#Y.encode([q.type],[W]));else G.push(q),Y.push(W)}),{data:this.#Y.encode(G,Y),topics:X}}decodeEventLog(Q,J,X){if(typeof Q==="string"){let U=this.getEvent(Q);B(U,"unknown event","eventFragment",Q),Q=U}if(X!=null&&!Q.anonymous){let U=Q.topicHash;B(_0(X[0],32)&&X[0].toLowerCase()===U,"fragment/topic mismatch","topics[0]",X[0]),X=X.slice(1)}let G=[],Y=[],q=[];Q.inputs.forEach((U,M)=>{if(U.indexed)if(U.type==="string"||U.type==="bytes"||U.baseType==="tuple"||U.baseType==="array")G.push(v0.from({type:"bytes32",name:U.name})),q.push(!0);else G.push(U),q.push(!1);else Y.push(U),q.push(!1)});let $=X!=null?this.#Y.decode(G,P0(X)):null,W=this.#Y.decode(Y,J,!0),j=[],K=[],z=0,N=0;return Q.inputs.forEach((U,M)=>{let D=null;if(U.indexed)if($==null)D=new j5(null);else if(q[M])D=new j5($[N++]);else try{D=$[N++]}catch(O){D=O}else try{D=W[z++]}catch(O){D=O}j.push(D),K.push(U.name||null)}),TQ.fromItems(j,K)}parseTransaction(Q){let J=z0(Q.data,"tx.data"),X=d(Q.value!=null?Q.value:0,"tx.value"),G=this.getFunction(l(J.slice(0,4)));if(!G)return null;let Y=this.#Y.decode(G.inputs,J.slice(4));return new j7(G,G.selector,Y,X)}parseCallResult(Q){throw Error("@TODO")}parseLog(Q){let J=this.getEvent(Q.topics[0]);if(!J||J.anonymous)return null;return new W7(J,J.topicHash,this.decodeEventLog(J,Q.data,Q.topics))}parseError(Q){let J=l(Q),X=this.getError(h0(J,0,4));if(!X)return null;let G=this.#Y.decode(X.inputs,h0(J,4));return new K7(X,X.selector,G)}static from(Q){if(Q instanceof yJ)return Q;if(typeof Q==="string")return new yJ(JSON.parse(Q));if(typeof Q.formatJson==="function")return new yJ(Q.formatJson());if(typeof Q.format==="function")return new yJ(Q.format("json"));return new yJ(Q)}}var z7=BigInt(0);function fX(Q){if(Q==null)return null;return Q}function c0(Q){if(Q==null)return null;return Q.toString()}class K5{gasPrice;maxFeePerGas;maxPriorityFeePerGas;constructor(Q,J,X){e(this,{gasPrice:fX(Q),maxFeePerGas:fX(J),maxPriorityFeePerGas:fX(X)})}toJSON(){let{gasPrice:Q,maxFeePerGas:J,maxPriorityFeePerGas:X}=this;return{_type:"FeeData",gasPrice:c0(Q),maxFeePerGas:c0(J),maxPriorityFeePerGas:c0(X)}}}function E$(Q){let J={};if(Q.to)J.to=Q.to;if(Q.from)J.from=Q.from;if(Q.data)J.data=l(Q.data);let X="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let Y of X){if(!(Y in Q)||Q[Y]==null)continue;J[Y]=d(Q[Y],`request.${Y}`)}let G="type,nonce".split(/,/);for(let Y of G){if(!(Y in Q)||Q[Y]==null)continue;J[Y]=W0(Q[Y],`request.${Y}`)}if(Q.accessList)J.accessList=zX(Q.accessList);if(Q.authorizationList)J.authorizationList=Q.authorizationList.slice();if("blockTag"in Q)J.blockTag=Q.blockTag;if("enableCcipRead"in Q)J.enableCcipRead=!!Q.enableCcipRead;if("customData"in Q)J.customData=Q.customData;if("blobVersionedHashes"in Q&&Q.blobVersionedHashes)J.blobVersionedHashes=Q.blobVersionedHashes.slice();if("kzg"in Q)J.kzg=Q.kzg;if("blobWrapperVersion"in Q)J.blobWrapperVersion=Q.blobWrapperVersion;if("blobs"in Q&&Q.blobs)J.blobs=Q.blobs.map((Y)=>{if(Jz(Y))return l(Y);return Object.assign({},Y)});return J}class N7{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#Q;constructor(Q,J){this.#Q=Q.transactions.map((X)=>{if(typeof X!=="string")return new nG(X,J);return X}),e(this,{provider:J,hash:fX(Q.hash),number:Q.number,timestamp:Q.timestamp,parentHash:Q.parentHash,parentBeaconBlockRoot:Q.parentBeaconBlockRoot,nonce:Q.nonce,difficulty:Q.difficulty,gasLimit:Q.gasLimit,gasUsed:Q.gasUsed,blobGasUsed:Q.blobGasUsed,excessBlobGas:Q.excessBlobGas,miner:Q.miner,prevRandao:fX(Q.prevRandao),extraData:Q.extraData,baseFeePerGas:fX(Q.baseFeePerGas),stateRoot:Q.stateRoot,receiptsRoot:Q.receiptsRoot})}get transactions(){return this.#Q.map((Q)=>{if(typeof Q==="string")return Q;return Q.hash})}get prefetchedTransactions(){let Q=this.#Q.slice();if(Q.length===0)return[];return _(typeof Q[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),Q}toJSON(){let{baseFeePerGas:Q,difficulty:J,extraData:X,gasLimit:G,gasUsed:Y,hash:q,miner:$,prevRandao:W,nonce:j,number:K,parentHash:z,parentBeaconBlockRoot:N,stateRoot:U,receiptsRoot:M,timestamp:D,transactions:O}=this;return{_type:"Block",baseFeePerGas:c0(Q),difficulty:c0(J),extraData:X,gasLimit:c0(G),gasUsed:c0(Y),blobGasUsed:c0(this.blobGasUsed),excessBlobGas:c0(this.excessBlobGas),hash:q,miner:$,prevRandao:W,nonce:j,number:K,parentHash:z,timestamp:D,parentBeaconBlockRoot:N,stateRoot:U,receiptsRoot:M,transactions:O}}[Symbol.iterator](){let Q=0,J=this.transactions;return{next:()=>{if(Q<this.length)return{value:J[Q++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#Q.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction(Q){let J=void 0;if(typeof Q==="number")J=this.#Q[Q];else{let X=Q.toLowerCase();for(let G of this.#Q)if(typeof G==="string"){if(G!==X)continue;J=G;break}else{if(G.hash!==X)continue;J=G;break}}if(J==null)throw Error("no such tx");if(typeof J==="string")return await this.provider.getTransaction(J);else return J}getPrefetchedTransaction(Q){let J=this.prefetchedTransactions;if(typeof Q==="number")return J[Q];Q=Q.toLowerCase();for(let X of J)if(X.hash===Q)return X;B(!1,"no matching transaction","indexOrHash",Q)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return PZ(this)}}class UY{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(Q,J){this.provider=J;let X=Object.freeze(Q.topics.slice());e(this,{transactionHash:Q.transactionHash,blockHash:Q.blockHash,blockNumber:Q.blockNumber,removed:Q.removed,address:Q.address,data:Q.data,topics:X,index:Q.index,transactionIndex:Q.transactionIndex})}toJSON(){let{address:Q,blockHash:J,blockNumber:X,data:G,index:Y,removed:q,topics:$,transactionHash:W,transactionIndex:j}=this;return{_type:"log",address:Q,blockHash:J,blockNumber:X,data:G,index:Y,removed:q,topics:$,transactionHash:W,transactionIndex:j}}async getBlock(){let Q=await this.provider.getBlock(this.blockHash);return _(!!Q,"failed to find transaction","UNKNOWN_ERROR",{}),Q}async getTransaction(){let Q=await this.provider.getTransaction(this.transactionHash);return _(!!Q,"failed to find transaction","UNKNOWN_ERROR",{}),Q}async getTransactionReceipt(){let Q=await this.provider.getTransactionReceipt(this.transactionHash);return _(!!Q,"failed to find transaction receipt","UNKNOWN_ERROR",{}),Q}removedEvent(){return kZ(this)}}class Ez{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#Q;constructor(Q,J){this.#Q=Object.freeze(Q.logs.map((G)=>{return new UY(G,J)}));let X=z7;if(Q.effectiveGasPrice!=null)X=Q.effectiveGasPrice;else if(Q.gasPrice!=null)X=Q.gasPrice;e(this,{provider:J,to:Q.to,from:Q.from,contractAddress:Q.contractAddress,hash:Q.hash,index:Q.index,blockHash:Q.blockHash,blockNumber:Q.blockNumber,logsBloom:Q.logsBloom,gasUsed:Q.gasUsed,cumulativeGasUsed:Q.cumulativeGasUsed,blobGasUsed:Q.blobGasUsed,gasPrice:X,blobGasPrice:Q.blobGasPrice,type:Q.type,status:Q.status,root:Q.root})}get logs(){return this.#Q}toJSON(){let{to:Q,from:J,contractAddress:X,hash:G,index:Y,blockHash:q,blockNumber:$,logsBloom:W,logs:j,status:K,root:z}=this;return{_type:"TransactionReceipt",blockHash:q,blockNumber:$,contractAddress:X,cumulativeGasUsed:c0(this.cumulativeGasUsed),from:J,gasPrice:c0(this.gasPrice),blobGasUsed:c0(this.blobGasUsed),blobGasPrice:c0(this.blobGasPrice),gasUsed:c0(this.gasUsed),hash:G,index:Y,logs:j,logsBloom:W,root:z,status:K,to:Q}}get length(){return this.logs.length}[Symbol.iterator](){let Q=0;return{next:()=>{if(Q<this.length)return{value:this.logs[Q++],done:!1};return{value:void 0,done:!0}}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let Q=await this.provider.getBlock(this.blockHash);if(Q==null)throw Error("TODO");return Q}async getTransaction(){let Q=await this.provider.getTransaction(this.hash);if(Q==null)throw Error("TODO");return Q}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return M7(this)}reorderedEvent(Q){return _(!Q||Q.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),U7(this,Q)}}class nG{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#Q;constructor(Q,J){this.provider=J,this.blockNumber=Q.blockNumber!=null?Q.blockNumber:null,this.blockHash=Q.blockHash!=null?Q.blockHash:null,this.hash=Q.hash,this.index=Q.index,this.type=Q.type,this.from=Q.from,this.to=Q.to||null,this.gasLimit=Q.gasLimit,this.nonce=Q.nonce,this.data=Q.data,this.value=Q.value,this.gasPrice=Q.gasPrice,this.maxPriorityFeePerGas=Q.maxPriorityFeePerGas!=null?Q.maxPriorityFeePerGas:null,this.maxFeePerGas=Q.maxFeePerGas!=null?Q.maxFeePerGas:null,this.maxFeePerBlobGas=Q.maxFeePerBlobGas!=null?Q.maxFeePerBlobGas:null,this.chainId=Q.chainId,this.signature=Q.signature,this.accessList=Q.accessList!=null?Q.accessList:null,this.blobVersionedHashes=Q.blobVersionedHashes!=null?Q.blobVersionedHashes:null,this.authorizationList=Q.authorizationList!=null?Q.authorizationList:null,this.#Q=-1}toJSON(){let{blockNumber:Q,blockHash:J,index:X,hash:G,type:Y,to:q,from:$,nonce:W,data:j,signature:K,accessList:z,blobVersionedHashes:N}=this;return{_type:"TransactionResponse",accessList:z,blockNumber:Q,blockHash:J,blobVersionedHashes:N,chainId:c0(this.chainId),data:j,from:$,gasLimit:c0(this.gasLimit),gasPrice:c0(this.gasPrice),hash:G,maxFeePerGas:c0(this.maxFeePerGas),maxPriorityFeePerGas:c0(this.maxPriorityFeePerGas),maxFeePerBlobGas:c0(this.maxFeePerBlobGas),nonce:W,signature:K,to:q,index:X,type:Y,value:c0(this.value)}}async getBlock(){let Q=this.blockNumber;if(Q==null){let X=await this.getTransaction();if(X)Q=X.blockNumber}if(Q==null)return null;let J=this.provider.getBlock(Q);if(J==null)throw Error("TODO");return J}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:Q,blockNumber:J}=await N8({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(Q==null||Q.blockNumber==null)return 0;return J-Q.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(Q,J){let X=Q==null?1:Q,G=J==null?0:J,Y=this.#Q,q=-1,$=Y===-1?!0:!1,W=async()=>{if($)return null;let{blockNumber:z,nonce:N}=await N8({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(N<this.nonce){Y=z;return}if($)return null;let U=await this.getTransaction();if(U&&U.blockNumber!=null)return;if(q===-1){if(q=Y-3,q<this.#Q)q=this.#Q}while(q<=z){if($)return null;let M=await this.provider.getBlock(q,!0);if(M==null)return;for(let D of M)if(D===this.hash)return;for(let D=0;D<M.length;D++){let O=await M.getTransaction(D);if(O.from===this.from&&O.nonce===this.nonce){if($)return null;let w=await this.provider.getTransactionReceipt(O.hash);if(w==null)return;if(z-w.blockNumber+1<X)return;let C="replaced";if(O.data===this.data&&O.to===this.to&&O.value===this.value)C="repriced";else if(O.data==="0x"&&O.from===O.to&&O.value===z7)C="cancelled";_(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:C==="replaced"||C==="cancelled",reason:C,replacement:O.replaceableTransaction(Y),hash:O.hash,receipt:w})}}q++}return},j=(z)=>{if(z==null||z.status!==0)return z;_(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:z.to,from:z.from,data:""},receipt:z})},K=await this.provider.getTransactionReceipt(this.hash);if(X===0)return j(K);if(K){if(X===1||await K.confirmations()>=X)return j(K)}else if(await W(),X===0)return null;return await new Promise((z,N)=>{let U=[],M=()=>{U.forEach((O)=>O())};if(U.push(()=>{$=!0}),G>0){let O=setTimeout(()=>{M(),N(T0("wait for transaction timeout","TIMEOUT"))},G);U.push(()=>{clearTimeout(O)})}let D=async(O)=>{if(await O.confirmations()>=X){M();try{z(j(O))}catch(w){N(w)}}};if(U.push(()=>{this.provider.off(this.hash,D)}),this.provider.on(this.hash,D),Y>=0){let O=async()=>{try{await W()}catch(w){if(J8(w,"TRANSACTION_REPLACED")){M(),N(w);return}}if(!$)this.provider.once("block",O)};U.push(()=>{this.provider.off("block",O)}),this.provider.once("block",O)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return _(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),M7(this)}reorderedEvent(Q){return _(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),_(!Q||Q.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),U7(this,Q)}replaceableTransaction(Q){B(Number.isInteger(Q)&&Q>=0,"invalid startBlock","startBlock",Q);let J=new nG(this,this.provider);return J.#Q=Q,J}}function PZ(Q){return{orphan:"drop-block",hash:Q.hash,number:Q.number}}function U7(Q,J){return{orphan:"reorder-transaction",tx:Q,other:J}}function M7(Q){return{orphan:"drop-transaction",tx:Q}}function kZ(Q){return{orphan:"drop-log",log:{transactionHash:Q.transactionHash,blockHash:Q.blockHash,blockNumber:Q.blockNumber,address:Q.address,data:Q.data,topics:Object.freeze(Q.topics.slice()),index:Q.index}}}class P9 extends UY{interface;fragment;args;constructor(Q,J,X){super(Q,Q.provider);let G=J.decodeEventLog(X,Q.data,Q.topics);e(this,{args:G,fragment:X,interface:J})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class wz extends UY{error;constructor(Q,J){super(Q,Q.provider);e(this,{error:J})}}class D7 extends Ez{#Q;constructor(Q,J,X){super(X,J);this.#Q=Q}get logs(){return super.logs.map((Q)=>{let J=Q.topics.length?this.#Q.getEvent(Q.topics[0]):null;if(J)try{return new P9(Q,this.#Q,J)}catch(X){return new wz(Q,X)}return Q})}}class k9 extends nG{#Q;constructor(Q,J,X){super(X,J);this.#Q=Q}async wait(Q,J){let X=await super.wait(Q,J);if(X==null)return null;return new D7(this.#Q,this.provider,X)}}class Cz extends Yz{log;constructor(Q,J,X,G){super(Q,J,X);e(this,{log:G})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class O7 extends Cz{constructor(Q,J,X,G,Y){super(Q,J,X,new P9(Y,Q.interface,G));let q=Q.interface.decodeEventLog(G,this.log.data,this.log.topics);e(this,{args:q,fragment:G})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}var AM=BigInt(0);function B7(Q){return Q&&typeof Q.call==="function"}function R7(Q){return Q&&typeof Q.estimateGas==="function"}function Z9(Q){return Q&&typeof Q.resolveName==="function"}function H7(Q){return Q&&typeof Q.sendTransaction==="function"}function V7(Q){if(Q!=null){if(Z9(Q))return Q;if(Q.provider)return Q.provider}return}class L7{#Q;fragment;constructor(Q,J,X){if(e(this,{fragment:J}),J.inputs.length<X.length)throw Error("too many arguments");let G=GX(Q.runner,"resolveName"),Y=Z9(G)?G:null;this.#Q=async function(){let q=await Promise.all(J.inputs.map(($,W)=>{if(X[W]==null)return null;return $.walkAsync(X[W],(j,K)=>{if(j==="address"){if(Array.isArray(K))return Promise.all(K.map((z)=>D8(z,Y)));return D8(K,Y)}return K})}));return Q.interface.encodeFilterTopics(J,q)}()}getTopicFilter(){return this.#Q}}function GX(Q,J){if(Q==null)return null;if(typeof Q[J]==="function")return Q;if(Q.provider&&typeof Q.provider[J]==="function")return Q.provider;return null}function oJ(Q){if(Q==null)return null;return Q.provider||null}async function E7(Q,J){let X=m0.dereference(Q,"overrides");B(typeof X==="object","invalid overrides parameter","overrides",Q);let G=E$(X);if(B(G.to==null||(J||[]).indexOf("to")>=0,"cannot override to","overrides.to",G.to),B(G.data==null||(J||[]).indexOf("data")>=0,"cannot override data","overrides.data",G.data),G.from)G.from=G.from;return G}async function ZZ(Q,J,X){let G=GX(Q,"resolveName"),Y=Z9(G)?G:null;return await Promise.all(J.map((q,$)=>{return q.walkAsync(X[$],(W,j)=>{if(j=m0.dereference(j,W),W==="address")return D8(j,Y);return j})}))}function TZ(Q){let J=async function($){let W=await E7($,["data"]);if(W.to=await Q.getAddress(),W.from)W.from=await D8(W.from,V7(Q.runner));let j=Q.interface,K=d(W.value||AM,"overrides.value")===AM,z=(W.data||"0x")==="0x";if(j.fallback&&!j.fallback.payable&&j.receive&&!z&&!K)B(!1,"cannot send data to receive or send value to non-payable fallback","overrides",$);B(j.fallback||z,"cannot send data to receive-only contract","overrides.data",W.data);let N=j.receive||j.fallback&&j.fallback.payable;return B(N||K,"cannot send value to non-payable fallback","overrides.value",W.value),B(j.fallback||z,"cannot send data to receive-only contract","overrides.data",W.data),W},X=async function($){let W=GX(Q.runner,"call");_(B7(W),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});let j=await J($);try{return await W.call(j)}catch(K){if(Qz(K)&&K.data)throw Q.interface.makeError(K.data,j);throw K}},G=async function($){let W=Q.runner;_(H7(W),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});let j=await W.sendTransaction(await J($)),K=oJ(Q.runner);return new k9(Q.interface,K,j)},Y=async function($){let W=GX(Q.runner,"estimateGas");return _(R7(W),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await W.estimateGas(await J($))},q=async($)=>{return await G($)};return e(q,{_contract:Q,estimateGas:Y,populateTransaction:J,send:G,staticCall:X}),q}function xZ(Q,J){let X=function(...K){let z=Q.interface.getFunction(J,K);return _(z,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:J,args:K}}),z},G=async function(...K){let z=X(...K),N={};if(z.inputs.length+1===K.length){if(N=await E7(K.pop()),N.from)N.from=await D8(N.from,V7(Q.runner))}if(z.inputs.length!==K.length)throw Error("internal error: fragment inputs doesn't match arguments; should not happen");let U=await ZZ(Q.runner,z.inputs,K);return Object.assign({},N,await N8({to:Q.getAddress(),data:Q.interface.encodeFunctionData(z,U)}))},Y=async function(...K){let z=await W(...K);if(z.length===1)return z[0];return z},q=async function(...K){let z=Q.runner;_(H7(z),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});let N=await z.sendTransaction(await G(...K)),U=oJ(Q.runner);return new k9(Q.interface,U,N)},$=async function(...K){let z=GX(Q.runner,"estimateGas");return _(R7(z),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await z.estimateGas(await G(...K))},W=async function(...K){let z=GX(Q.runner,"call");_(B7(z),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});let N=await G(...K),U="0x";try{U=await z.call(N)}catch(D){if(Qz(D)&&D.data)throw Q.interface.makeError(D.data,N);throw D}let M=X(...K);return Q.interface.decodeFunctionResult(M,U)},j=async(...K)=>{if(X(...K).constant)return await Y(...K);return await q(...K)};return e(j,{name:Q.interface.getFunctionName(J),_contract:Q,_key:J,getFragment:X,estimateGas:$,populateTransaction:G,send:q,staticCall:Y,staticCallResult:W}),Object.defineProperty(j,"fragment",{configurable:!1,enumerable:!0,get:()=>{let K=Q.interface.getFunction(J);return _(K,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:J}}),K}}),j}function gZ(Q,J){let X=function(...Y){let q=Q.interface.getEvent(J,Y);return _(q,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:J,args:Y}}),q},G=function(...Y){return new L7(Q,X(...Y),Y)};return e(G,{name:Q.interface.getEventName(J),_contract:Q,_key:J,getFragment:X}),Object.defineProperty(G,"fragment",{configurable:!1,enumerable:!0,get:()=>{let Y=Q.interface.getEvent(J);return _(Y,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:J}}),Y}}),G}var w$=Symbol.for("_ethersInternal_contract"),w7=new WeakMap;function fZ(Q,J){w7.set(Q[w$],J)}function F8(Q){return w7.get(Q[w$])}function hZ(Q){return Q&&typeof Q==="object"&&"getTopicFilter"in Q&&typeof Q.getTopicFilter==="function"&&Q.fragment}async function Az(Q,J){let X,G=null;if(Array.isArray(J)){let q=function($){if(_0($,32))return $;let W=Q.interface.getEvent($);return B(W,"unknown fragment","name",$),W.topicHash};X=J.map(($)=>{if($==null)return null;if(Array.isArray($))return $.map(q);return q($)})}else if(J==="*")X=[null];else if(typeof J==="string")if(_0(J,32))X=[J];else G=Q.interface.getEvent(J),B(G,"unknown fragment","event",J),X=[G.topicHash];else if(hZ(J))X=await J.getTopicFilter();else if("fragment"in J)G=J.fragment,X=[G.topicHash];else B(!1,"unknown event name","event",J);X=X.map((q)=>{if(q==null)return null;if(Array.isArray(q)){let $=Array.from(new Set(q.map((W)=>W.toLowerCase())).values());if($.length===1)return $[0];return $.sort(),$}return q.toLowerCase()});let Y=X.map((q)=>{if(q==null)return"null";if(Array.isArray(q))return q.join("|");return q}).join("&");return{fragment:G,tag:Y,topics:X}}async function rY(Q,J){let{subs:X}=F8(Q);return X.get((await Az(Q,J)).tag)||null}async function IM(Q,J,X){let G=oJ(Q.runner);_(G,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:J});let{fragment:Y,tag:q,topics:$}=await Az(Q,X),{addr:W,subs:j}=F8(Q),K=j.get(q);if(!K){let z={address:W?W:Q,topics:$},N=(M)=>{let D=Y;if(D==null)try{D=Q.interface.getEvent(M.topics[0])}catch(O){}if(D){let O=D,w=Y?Q.interface.decodeEventLog(Y,M.data,M.topics):[];N5(Q,X,w,(C)=>{return new O7(Q,C,X,O,M)})}else N5(Q,X,[],(O)=>{return new Cz(Q,O,X,M)})},U=[];K={tag:q,listeners:[],start:()=>{if(U.length)return;U.push(G.on(z,N))},stop:async()=>{if(U.length==0)return;let M=U;U=[],await Promise.all(M),G.off(z,N)}},j.set(q,K)}return K}var z5=Promise.resolve();async function mZ(Q,J,X,G){await z5;let Y=await rY(Q,J);if(!Y)return!1;let q=Y.listeners.length;if(Y.listeners=Y.listeners.filter(({listener:$,once:W})=>{let j=Array.from(X);if(G)j.push(G(W?null:$));try{$.call(Q,...j)}catch(K){}return!W}),Y.listeners.length===0)Y.stop(),F8(Q).subs.delete(Y.tag);return q>0}async function N5(Q,J,X,G){try{await z5}catch(q){}let Y=mZ(Q,J,X,G);return z5=Y,await Y}var Tq=["then"];class iY{target;interface;runner;filters;[w$];fallback;constructor(Q,J,X,G){if(B(typeof Q==="string"||O6(Q),"invalid value for Contract target","target",Q),X==null)X=null;let Y=yJ.from(J);e(this,{target:Q,runner:X,interface:Y}),Object.defineProperty(this,w$,{value:{}});let q,$=null,W=null;if(G){let z=oJ(X);W=new k9(this.interface,z,G)}let j=new Map;if(typeof Q==="string")if(_0(Q))$=Q,q=Promise.resolve(Q);else{let z=GX(X,"resolveName");if(!Z9(z))throw T0("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});q=z.resolveName(Q).then((N)=>{if(N==null)throw T0("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:Q});return F8(this).addr=N,N})}else q=Q.getAddress().then((z)=>{if(z==null)throw Error("TODO");return F8(this).addr=z,z});fZ(this,{addrPromise:q,addr:$,deployTx:W,subs:j});let K=new Proxy({},{get:(z,N,U)=>{if(typeof N==="symbol"||Tq.indexOf(N)>=0)return Reflect.get(z,N,U);try{return this.getEvent(N)}catch(M){if(!J8(M,"INVALID_ARGUMENT")||M.argument!=="key")throw M}return},has:(z,N)=>{if(Tq.indexOf(N)>=0)return Reflect.has(z,N);return Reflect.has(z,N)||this.interface.hasEvent(String(N))}});return e(this,{filters:K}),e(this,{fallback:Y.receive||Y.fallback?TZ(this):null}),new Proxy(this,{get:(z,N,U)=>{if(typeof N==="symbol"||N in z||Tq.indexOf(N)>=0)return Reflect.get(z,N,U);try{return z.getFunction(N)}catch(M){if(!J8(M,"INVALID_ARGUMENT")||M.argument!=="key")throw M}return},has:(z,N)=>{if(typeof N==="symbol"||N in z||Tq.indexOf(N)>=0)return Reflect.has(z,N);return z.interface.hasFunction(N)}})}connect(Q){return new iY(this.target,this.interface,Q)}attach(Q){return new iY(Q,this.interface,this.runner)}async getAddress(){return await F8(this).addrPromise}async getDeployedCode(){let Q=oJ(this.runner);_(Q,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});let J=await Q.getCode(await this.getAddress());if(J==="0x")return null;return J}async waitForDeployment(){let Q=this.deploymentTransaction();if(Q)return await Q.wait(),this;if(await this.getDeployedCode()!=null)return this;let J=oJ(this.runner);return _(J!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((X,G)=>{let Y=async()=>{try{if(await this.getDeployedCode()!=null)return X(this);J.once("block",Y)}catch(q){G(q)}};Y()})}deploymentTransaction(){return F8(this).deployTx}getFunction(Q){if(typeof Q!=="string")Q=Q.format();return xZ(this,Q)}getEvent(Q){if(typeof Q!=="string")Q=Q.format();return gZ(this,Q)}async queryTransaction(Q){throw Error("@TODO")}async queryFilter(Q,J,X){if(J==null)J=0;if(X==null)X="latest";let{addr:G,addrPromise:Y}=F8(this),q=G?G:await Y,{fragment:$,topics:W}=await Az(this,Q),j={address:q,topics:W,fromBlock:J,toBlock:X},K=oJ(this.runner);return _(K,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await K.getLogs(j)).map((z)=>{let N=$;if(N==null)try{N=this.interface.getEvent(z.topics[0])}catch(U){}if(N)try{return new P9(z,this.interface,N)}catch(U){return new wz(z,U)}return new UY(z,K)})}async on(Q,J){let X=await IM(this,"on",Q);return X.listeners.push({listener:J,once:!1}),X.start(),this}async once(Q,J){let X=await IM(this,"once",Q);return X.listeners.push({listener:J,once:!0}),X.start(),this}async emit(Q,...J){return await N5(this,Q,J,null)}async listenerCount(Q){if(Q){let G=await rY(this,Q);if(!G)return 0;return G.listeners.length}let{subs:J}=F8(this),X=0;for(let{listeners:G}of J.values())X+=G.length;return X}async listeners(Q){if(Q){let G=await rY(this,Q);if(!G)return[];return G.listeners.map(({listener:Y})=>Y)}let{subs:J}=F8(this),X=[];for(let{listeners:G}of J.values())X=X.concat(G.map(({listener:Y})=>Y));return X}async off(Q,J){let X=await rY(this,Q);if(!X)return this;if(J){let G=X.listeners.map(({listener:Y})=>Y).indexOf(J);if(G>=0)X.listeners.splice(G,1)}if(J==null||X.listeners.length===0)X.stop(),F8(this).subs.delete(X.tag);return this}async removeAllListeners(Q){if(Q){let J=await rY(this,Q);if(!J)return this;J.stop(),F8(this).subs.delete(J.tag)}else{let{subs:J}=F8(this);for(let{tag:X,stop:G}of J.values())G(),J.delete(X)}return this}async addListener(Q,J){return await this.on(Q,J)}async removeListener(Q,J){return await this.off(Q,J)}static buildClass(Q){class J extends iY{constructor(X,G=null){super(X,Q,G)}}return J}static from(Q,J,X){if(X==null)X=null;return new this(Q,J,X)}}function yZ(){return iY}class hX extends yZ(){}function AW(Q){if(Q.match(/^ipfs:\/\/ipfs\//i))Q=Q.substring(12);else if(Q.match(/^ipfs:\/\//i))Q=Q.substring(7);else B(!1,"unsupported IPFS format","link",Q);return`https://gateway.ipfs.io/ipfs/${Q}`}class C7{name;constructor(Q){e(this,{name:Q})}connect(Q){return this}supportsCoinType(Q){return!1}async encodeAddress(Q,J){throw Error("unsupported coin")}async decodeAddress(Q,J){throw Error("unsupported coin")}}var A7=new RegExp("^(ipfs)://(.*)$","i"),SM=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),A7,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];class mX{provider;address;name;#Q;#J;constructor(Q,J,X){e(this,{provider:Q,address:J,name:X}),this.#Q=null,this.#J=new hX(J,["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)"],Q)}async supportsWildcard(){if(this.#Q==null)this.#Q=(async()=>{try{return await this.#J.supportsInterface("0x9061b923")}catch(Q){if(J8(Q,"CALL_EXCEPTION"))return!1;throw this.#Q=null,Q}})();return await this.#Q}async#X(Q,J){J=(J||[]).slice();let X=this.#J.interface;J.unshift(W5(this.name));let G=null;if(await this.supportsWildcard())G=X.getFunction(Q),_(G,"missing fragment","UNKNOWN_ERROR",{info:{funcName:Q}}),J=[jZ(this.name,255),X.encodeFunctionData(G,J)],Q="resolve(bytes,bytes)";J.push({enableCcipRead:!0});try{let Y=await this.#J[Q](...J);if(G)return X.decodeFunctionResult(G,Y)[0];return Y}catch(Y){if(!J8(Y,"CALL_EXCEPTION"))throw Y}return null}async getAddress(Q){if(Q==null)Q=60;if(Q===60)try{let Y=await this.#X("addr(bytes32)");if(Y==null||Y===WG)return null;return Y}catch(Y){if(J8(Y,"CALL_EXCEPTION"))return null;throw Y}if(Q>=0&&Q<2147483648){let Y=Q+2147483648,q=await this.#X("addr(bytes32,uint)",[Y]);if(_0(q,20))return L0(q)}let J=null;for(let Y of this.provider.plugins){if(!(Y instanceof C7))continue;if(Y.supportsCoinType(Q)){J=Y;break}}if(J==null)return null;let X=await this.#X("addr(bytes32,uint)",[Q]);if(X==null||X==="0x")return null;let G=await J.decodeAddress(Q,X);if(G!=null)return G;_(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${Q})`,info:{coinType:Q,data:X}})}async getText(Q){let J=await this.#X("text(bytes32,string)",[Q]);if(J==null||J==="0x")return null;return J}async getContentHash(){let Q=await this.#X("contenthash(bytes32)");if(Q==null||Q==="0x")return null;let J=Q.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(J){let G=J[1]==="e3010170"?"ipfs":"ipns",Y=parseInt(J[4],16);if(J[5].length===Y*2)return`${G}://${KP("0x"+J[2])}`}let X=Q.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(X&&X[1].length===64)return`bzz://${X[1]}`;_(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:Q}})}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){let Q=[{type:"name",value:this.name}];try{let J=await this.getText("avatar");if(J==null)return Q.push({type:"!avatar",value:""}),{url:null,linkage:Q};Q.push({type:"avatar",value:J});for(let X=0;X<SM.length;X++){let G=J.match(SM[X]);if(G==null)continue;let Y=G[1].toLowerCase();switch(Y){case"https":case"data":return Q.push({type:"url",value:J}),{linkage:Q,url:J};case"ipfs":{let q=AW(J);return Q.push({type:"ipfs",value:J}),Q.push({type:"url",value:q}),{linkage:Q,url:q}}case"erc721":case"erc1155":{let q=Y==="erc721"?"tokenURI(uint256)":"uri(uint256)";Q.push({type:Y,value:J});let $=await this.getAddress();if($==null)return Q.push({type:"!owner",value:""}),{url:null,linkage:Q};let W=(G[2]||"").split("/");if(W.length!==2)return Q.push({type:`!${Y}caip`,value:G[2]||""}),{url:null,linkage:Q};let j=W[1],K=new hX(W[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(Y==="erc721"){let D=await K.ownerOf(j);if($!==D)return Q.push({type:"!owner",value:D}),{url:null,linkage:Q};Q.push({type:"owner",value:D})}else if(Y==="erc1155"){let D=await K.balanceOf($,j);if(!D)return Q.push({type:"!balance",value:"0"}),{url:null,linkage:Q};Q.push({type:"balance",value:D.toString()})}let z=await K[q](j);if(z==null||z==="0x")return Q.push({type:"!metadata-url",value:""}),{url:null,linkage:Q};if(Q.push({type:"metadata-url-base",value:z}),Y==="erc1155")z=z.replace("{id}",RJ(j,32).substring(2)),Q.push({type:"metadata-url-expanded",value:z});if(z.match(/^ipfs:/i))z=AW(z);Q.push({type:"metadata-url",value:z});let N={},U=await new OQ(z).send();U.assertOk();try{N=U.bodyJson}catch(D){try{Q.push({type:"!metadata",value:U.bodyText})}catch(O){let w=U.body;if(w)Q.push({type:"!metadata",value:l(w)});return{url:null,linkage:Q}}return{url:null,linkage:Q}}if(!N)return Q.push({type:"!metadata",value:""}),{url:null,linkage:Q};Q.push({type:"metadata",value:JSON.stringify(N)});let M=N.image;if(typeof M!=="string")return Q.push({type:"!imageUrl",value:""}),{url:null,linkage:Q};if(M.match(/^(https:\/\/|data:)/i));else{if(M.match(A7)==null)return Q.push({type:"!imageUrl-ipfs",value:M}),{url:null,linkage:Q};Q.push({type:"imageUrl-ipfs",value:M}),M=AW(M)}return Q.push({type:"url",value:M}),{linkage:Q,url:M}}}}}catch(J){}return{linkage:Q,url:null}}static async getEnsAddress(Q){let J=await Q.getNetwork(),X=J.getPlugin("org.ethers.plugins.network.Ens");return _(X,"network does not support ENS","UNSUPPORTED_OPERATION",{operation:"getEnsAddress",info:{network:J}}),X.address}static async#Y(Q,J){let X=await mX.getEnsAddress(Q);try{let G=await new hX(X,["function resolver(bytes32) view returns (address)"],Q).resolver(W5(J),{enableCcipRead:!0});if(G===WG)return null;return G}catch(G){throw G}return null}static async fromName(Q,J){let X=J;while(!0){if(X===""||X===".")return null;if(J!=="eth"&&X==="eth")return null;let G=await mX.#Y(Q,X);if(G!=null){let Y=new mX(Q,G,J);if(X!==J&&!await Y.supportsWildcard())return null;return Y}X=X.split(".").slice(1).join(".")}}}var vM=BigInt(0);function O0(Q,J){return function(X){if(X==null)return J;return Q(X)}}function MG(Q,J){return(X)=>{if(J&&X==null)return null;if(!Array.isArray(X))throw Error("not an array");return X.map((G)=>Q(G))}}function aG(Q,J){return(X)=>{let G={};for(let Y in Q){let q=Y;if(J&&Y in J&&!(q in X)){for(let $ of J[Y])if($ in X){q=$;break}}try{let $=Q[Y](X[q]);if($!==void 0)G[Y]=$}catch($){let W=$ instanceof Error?$.message:"not-an-error";_(!1,`invalid value for value.${Y} (${W})`,"BAD_DATA",{value:X})}}return G}}function lZ(Q){switch(Q){case!0:case"true":return!0;case!1:case"false":return!1}B(!1,`invalid boolean; ${JSON.stringify(Q)}`,"value",Q)}function JY(Q){return B(_0(Q,!0),"invalid data","value",Q),Q}function Q8(Q){return B(_0(Q,32),"invalid hash","value",Q),Q}var uZ=aG({address:L0,blockHash:Q8,blockNumber:W0,data:JY,index:W0,removed:O0(lZ,!1),topics:MG(Q8),transactionHash:Q8,transactionIndex:W0},{index:["logIndex"]});function cZ(Q){return uZ(Q)}var pZ=aG({hash:O0(Q8),parentHash:Q8,parentBeaconBlockRoot:O0(Q8,null),number:W0,timestamp:W0,nonce:O0(JY),difficulty:d,gasLimit:d,gasUsed:d,stateRoot:O0(Q8,null),receiptsRoot:O0(Q8,null),blobGasUsed:O0(d,null),excessBlobGas:O0(d,null),miner:O0(L0),prevRandao:O0(Q8,null),extraData:JY,baseFeePerGas:O0(d)},{prevRandao:["mixHash"]});function bZ(Q){let J=pZ(Q);return J.transactions=Q.transactions.map((X)=>{if(typeof X==="string")return X;return I7(X)}),J}var oZ=aG({transactionIndex:W0,blockNumber:W0,transactionHash:Q8,address:L0,topics:MG(Q8),data:JY,index:W0,blockHash:Q8},{index:["logIndex"]});function dZ(Q){return oZ(Q)}var rZ=aG({to:O0(L0,null),from:O0(L0,null),contractAddress:O0(L0,null),index:W0,root:O0(l),gasUsed:d,blobGasUsed:O0(d,null),logsBloom:O0(JY),blockHash:Q8,hash:Q8,logs:MG(dZ),blockNumber:W0,cumulativeGasUsed:d,effectiveGasPrice:O0(d),blobGasPrice:O0(d,null),status:O0(W0),type:O0(W0,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function sZ(Q){return rZ(Q)}function I7(Q){if(Q.to&&d(Q.to)===vM)Q.to="0x0000000000000000000000000000000000000000";let J=aG({hash:Q8,index:O0(W0,void 0),type:(X)=>{if(X==="0x"||X==null)return 0;return W0(X)},accessList:O0(zX,null),blobVersionedHashes:O0(MG(Q8,!0),null),authorizationList:O0(MG((X)=>{let G;if(X.signature)G=X.signature;else{let Y=X.yParity;if(Y==="0x1b")Y=0;else if(Y==="0x1c")Y=1;G=Object.assign({},X,{yParity:Y})}return{address:L0(X.address),chainId:d(X.chainId),nonce:d(X.nonce),signature:x0.from(G)}},!1),null),blockHash:O0(Q8,null),blockNumber:O0(W0,null),transactionIndex:O0(W0,null),from:L0,gasPrice:O0(d),maxPriorityFeePerGas:O0(d),maxFeePerGas:O0(d),maxFeePerBlobGas:O0(d,null),gasLimit:d,to:O0(L0,null),value:d,nonce:W0,data:JY,creates:O0(L0,null),chainId:O0(d,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(Q);if(J.to==null&&J.creates==null)J.creates=ak(J);if((Q.type===1||Q.type===2)&&Q.accessList==null)J.accessList=[];if(Q.signature)J.signature=x0.from(Q.signature);else J.signature=x0.from(Q);if(J.chainId==null){let X=J.signature.legacyChainId;if(X!=null)J.chainId=X}if(J.blockHash&&d(J.blockHash)===vM)J.blockHash=null;return J}var iZ="0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";class MY{name;constructor(Q){e(this,{name:Q})}clone(){return new MY(this.name)}}class T9 extends MY{effectiveBlock;txBase;txCreate;txDataZero;txDataNonzero;txAccessListStorageKey;txAccessListAddress;constructor(Q,J){if(Q==null)Q=0;super(`org.ethers.network.plugins.GasCost#${Q||0}`);let X={effectiveBlock:Q};function G(Y,q){let $=(J||{})[Y];if($==null)$=q;B(typeof $==="number",`invalud value for ${Y}`,"costs",J),X[Y]=$}G("txBase",21000),G("txCreate",32000),G("txDataZero",4),G("txDataNonzero",16),G("txAccessListStorageKey",1900),G("txAccessListAddress",2400),e(this,X)}clone(){return new T9(this.effectiveBlock,this)}}class x9 extends MY{address;targetNetwork;constructor(Q,J){super("org.ethers.plugins.network.Ens");e(this,{address:Q||iZ,targetNetwork:J==null?1:J})}clone(){return new x9(this.address,this.targetNetwork)}}class S7 extends MY{#Q;get feeDataFunc(){return this.#Q}constructor(Q){super("org.ethers.plugins.network.FeeData");this.#Q=Q}async getFeeData(Q){return await this.#Q(Q)}clone(){return new S7(this.#Q)}}class v7 extends MY{#Q;#J;get url(){return this.#Q}get processFunc(){return this.#J}constructor(Q,J){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin");this.#Q=Q,this.#J=J}clone(){return this}}var IW=new Map;class k8{#Q;#J;#X;constructor(Q,J){this.#Q=Q,this.#J=d(J),this.#X=new Map}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return this.#Q}set name(Q){this.#Q=Q}get chainId(){return this.#J}set chainId(Q){this.#J=d(Q,"chainId")}matches(Q){if(Q==null)return!1;if(typeof Q==="string"){try{return this.chainId===d(Q)}catch(J){}return this.name===Q}if(typeof Q==="number"||typeof Q==="bigint"){try{return this.chainId===d(Q)}catch(J){}return!1}if(typeof Q==="object"){if(Q.chainId!=null){try{return this.chainId===d(Q.chainId)}catch(J){}return!1}if(Q.name!=null)return this.name===Q.name;return!1}return!1}get plugins(){return Array.from(this.#X.values())}attachPlugin(Q){if(this.#X.get(Q.name))throw Error(`cannot replace existing plugin: ${Q.name} `);return this.#X.set(Q.name,Q.clone()),this}getPlugin(Q){return this.#X.get(Q)||null}getPlugins(Q){return this.plugins.filter((J)=>J.name.split("#")[0]===Q)}clone(){let Q=new k8(this.name,this.chainId);return this.plugins.forEach((J)=>{Q.attachPlugin(J.clone())}),Q}computeIntrinsicGas(Q){let J=this.getPlugin("org.ethers.plugins.network.GasCost")||new T9,X=J.txBase;if(Q.to==null)X+=J.txCreate;if(Q.data)for(let G=2;G<Q.data.length;G+=2)if(Q.data.substring(G,G+2)==="00")X+=J.txDataZero;else X+=J.txDataNonzero;if(Q.accessList){let G=zX(Q.accessList);for(let Y in G)X+=J.txAccessListAddress+J.txAccessListStorageKey*G[Y].storageKeys.length}return X}static from(Q){if(tZ(),Q==null)return k8.from("mainnet");if(typeof Q==="number")Q=BigInt(Q);if(typeof Q==="string"||typeof Q==="bigint"){let J=IW.get(Q);if(J)return J();if(typeof Q==="bigint")return new k8("unknown",Q);B(!1,"unknown network","network",Q)}if(typeof Q.clone==="function")return Q.clone();if(typeof Q==="object"){B(typeof Q.name==="string"&&typeof Q.chainId==="number","invalid network object name or chainId","network",Q);let J=new k8(Q.name,Q.chainId);if(Q.ensAddress||Q.ensNetwork!=null)J.attachPlugin(new x9(Q.ensAddress,Q.ensNetwork));return J}B(!1,"invalid network","network",Q)}static register(Q,J){if(typeof Q==="number")Q=BigInt(Q);let X=IW.get(Q);if(X)B(!1,`conflicting network for ${JSON.stringify(X.name)}`,"nameOrChainId",Q);IW.set(Q,J)}}function _M(Q,J){let X=String(Q);if(!X.match(/^[0-9.]+$/))throw Error(`invalid gwei value: ${Q}`);let G=X.split(".");if(G.length===1)G.push("");if(G.length!==2)throw Error(`invalid gwei value: ${Q}`);while(G[1].length<J)G[1]+="0";if(G[1].length>9){let Y=BigInt(G[1].substring(0,9));if(!G[1].substring(9).match(/^0+$/))Y++;G[1]=Y.toString()}return BigInt(G[0]+G[1])}function FM(Q){return new v7(Q,async(J,X,G)=>{G.setHeader("User-Agent","ethers");let Y;try{let[q,$]=await Promise.all([G.send(),J()]);Y=q;let W=Y.bodyJson.standard;return{gasPrice:$.gasPrice,maxFeePerGas:_M(W.maxFee,9),maxPriorityFeePerGas:_M(W.maxPriorityFee,9)}}catch(q){_(!1,`error encountered with polygon gas station (${JSON.stringify(G.url)})`,"SERVER_ERROR",{request:G,response:Y,error:q})}})}var PM=!1;function tZ(){if(PM)return;PM=!0;function Q(J,X,G){let Y=function(){let q=new k8(J,X);if(G.ensNetwork!=null)q.attachPlugin(new x9(null,G.ensNetwork));return q.attachPlugin(new T9),(G.plugins||[]).forEach(($)=>{q.attachPlugin($)}),q};if(k8.register(J,Y),k8.register(X,Y),G.altNames)G.altNames.forEach((q)=>{k8.register(q,Y)})}Q("mainnet",1,{ensNetwork:1,altNames:["homestead"]}),Q("ropsten",3,{ensNetwork:3}),Q("rinkeby",4,{ensNetwork:4}),Q("goerli",5,{ensNetwork:5}),Q("kovan",42,{ensNetwork:42}),Q("sepolia",11155111,{ensNetwork:11155111}),Q("holesky",17000,{ensNetwork:17000}),Q("classic",61,{}),Q("classicKotti",6,{}),Q("arbitrum",42161,{ensNetwork:1}),Q("arbitrum-goerli",421613,{}),Q("arbitrum-sepolia",421614,{}),Q("base",8453,{ensNetwork:1}),Q("base-goerli",84531,{}),Q("base-sepolia",84532,{}),Q("bnb",56,{ensNetwork:1}),Q("bnbt",97,{}),Q("filecoin",314,{}),Q("filecoin-calibration",314159,{}),Q("linea",59144,{ensNetwork:1}),Q("linea-goerli",59140,{}),Q("linea-sepolia",59141,{}),Q("matic",137,{ensNetwork:1,plugins:[FM("https://gasstation.polygon.technology/v2")]}),Q("matic-amoy",80002,{}),Q("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[FM("https://gasstation-testnet.polygon.technology/v2")]}),Q("optimism",10,{ensNetwork:1,plugins:[]}),Q("optimism-goerli",420,{}),Q("optimism-sepolia",11155420,{}),Q("xdai",100,{ensNetwork:1})}function U5(Q){return JSON.parse(JSON.stringify(Q))}class _7{#Q;#J;#X;#Y;constructor(Q){this.#Q=Q,this.#J=null,this.#X=4000,this.#Y=-2}get pollingInterval(){return this.#X}set pollingInterval(Q){this.#X=Q}async#G(){try{let Q=await this.#Q.getBlockNumber();if(this.#Y===-2){this.#Y=Q;return}if(Q!==this.#Y){for(let J=this.#Y+1;J<=Q;J++){if(this.#J==null)return;await this.#Q.emit("block",J)}this.#Y=Q}}catch(Q){}if(this.#J==null)return;this.#J=this.#Q._setTimeout(this.#G.bind(this),this.#X)}start(){if(this.#J)return;this.#J=this.#Q._setTimeout(this.#G.bind(this),this.#X),this.#G()}stop(){if(!this.#J)return;this.#Q._clearTimeout(this.#J),this.#J=null}pause(Q){if(this.stop(),Q)this.#Y=-2}resume(){this.start()}}class g9{#Q;#J;#X;constructor(Q){this.#Q=Q,this.#X=!1,this.#J=(J)=>{this._poll(J,this.#Q)}}async _poll(Q,J){throw Error("sub-classes must override this")}start(){if(this.#X)return;this.#X=!0,this.#J(-2),this.#Q.on("block",this.#J)}stop(){if(!this.#X)return;this.#X=!1,this.#Q.off("block",this.#J)}pause(Q){this.stop()}resume(){this.start()}}class F7 extends g9{#Q;#J;constructor(Q,J){super(Q);this.#Q=J,this.#J=-2}pause(Q){if(Q)this.#J=-2;super.pause(Q)}async _poll(Q,J){let X=await J.getBlock(this.#Q);if(X==null)return;if(this.#J===-2)this.#J=X.number;else if(X.number>this.#J)J.emit(this.#Q,X.number),this.#J=X.number}}class P7 extends g9{#Q;constructor(Q,J){super(Q);this.#Q=U5(J)}async _poll(Q,J){throw Error("@TODO")}}class k7 extends g9{#Q;constructor(Q,J){super(Q);this.#Q=J}async _poll(Q,J){let X=await J.getTransactionReceipt(this.#Q);if(X)J.emit(this.#Q,X)}}class f9{#Q;#J;#X;#Y;#G;constructor(Q,J){this.#Q=Q,this.#J=U5(J),this.#X=this.#$.bind(this),this.#Y=!1,this.#G=-2}async#$(Q){if(this.#G===-2)return;let J=U5(this.#J);J.fromBlock=this.#G+1,J.toBlock=Q;let X=await this.#Q.getLogs(J);if(X.length===0){if(this.#G<Q-60)this.#G=Q-60;return}for(let G of X)this.#Q.emit(this.#J,G),this.#G=G.blockNumber}start(){if(this.#Y)return;if(this.#Y=!0,this.#G===-2)this.#Q.getBlockNumber().then((Q)=>{this.#G=Q});this.#Q.on("block",this.#X)}stop(){if(!this.#Y)return;this.#Y=!1,this.#Q.off("block",this.#X)}pause(Q){if(this.stop(),Q)this.#G=-2}resume(){this.start()}}var nZ=BigInt(2),aZ=10;function xq(Q){return Q&&typeof Q.then==="function"}function cq(Q,J){return Q+":"+JSON.stringify(J,(X,G)=>{if(G==null)return"null";if(typeof G==="bigint")return`bigint:${G.toString()}`;if(typeof G==="string")return G.toLowerCase();if(typeof G==="object"&&!Array.isArray(G)){let Y=Object.keys(G);return Y.sort(),Y.reduce((q,$)=>{return q[$]=G[$],q},{})}return G})}class Iz{name;constructor(Q){e(this,{name:Q})}start(){}stop(){}pause(Q){}resume(){}}function eZ(Q){return JSON.parse(JSON.stringify(Q))}function M5(Q){return Q=Array.from(new Set(Q).values()),Q.sort(),Q}async function SW(Q,J){if(Q==null)throw Error("invalid event");if(Array.isArray(Q))Q={topics:Q};if(typeof Q==="string")switch(Q){case"block":case"debug":case"error":case"finalized":case"network":case"pending":case"safe":return{type:Q,tag:Q}}if(_0(Q,32)){let X=Q.toLowerCase();return{type:"transaction",tag:cq("tx",{hash:X}),hash:X}}if(Q.orphan){let X=Q;return{type:"orphan",tag:cq("orphan",X),filter:eZ(X)}}if(Q.address||Q.topics){let X=Q,G={topics:(X.topics||[]).map((Y)=>{if(Y==null)return null;if(Array.isArray(Y))return M5(Y.map((q)=>q.toLowerCase()));return Y.toLowerCase()})};if(X.address){let Y=[],q=[],$=(W)=>{if(_0(W))Y.push(W);else q.push((async()=>{Y.push(await D8(W,J))})())};if(Array.isArray(X.address))X.address.forEach($);else $(X.address);if(q.length)await Promise.all(q);G.address=M5(Y.map((W)=>W.toLowerCase()))}return{filter:G,tag:cq("event",G),type:"event"}}B(!1,"unknown ProviderEvent","event",Q)}function vW(){return new Date().getTime()}var QT={cacheTimeout:250,pollingInterval:4000};class Z7{#Q;#J;#X;#Y;#G;#$;#q;#W;#M;#K;#D;#O;constructor(Q,J){if(this.#O=Object.assign({},QT,J||{}),Q==="any")this.#$=!0,this.#G=null;else if(Q){let X=k8.from(Q);this.#$=!1,this.#G=Promise.resolve(X),setTimeout(()=>{this.emit("network",X,null)},0)}else this.#$=!1,this.#G=null;this.#W=-1,this.#q=new Map,this.#Q=new Map,this.#J=new Map,this.#X=null,this.#Y=!1,this.#M=1,this.#K=new Map,this.#D=!1}get pollingInterval(){return this.#O.pollingInterval}get provider(){return this}get plugins(){return Array.from(this.#J.values())}attachPlugin(Q){if(this.#J.get(Q.name))throw Error(`cannot replace existing plugin: ${Q.name} `);return this.#J.set(Q.name,Q.connect(this)),this}getPlugin(Q){return this.#J.get(Q)||null}get disableCcipRead(){return this.#D}set disableCcipRead(Q){this.#D=!!Q}async#j(Q){let J=this.#O.cacheTimeout;if(J<0)return await this._perform(Q);let X=cq(Q.method,Q),G=this.#q.get(X);if(!G)G=this._perform(Q),this.#q.set(X,G),setTimeout(()=>{if(this.#q.get(X)===G)this.#q.delete(X)},J);return await G}async ccipReadFetch(Q,J,X){if(this.disableCcipRead||X.length===0||Q.to==null)return null;let G=Q.to.toLowerCase(),Y=J.toLowerCase(),q=[];for(let $=0;$<X.length;$++){let W=X[$],j=W.replace("{sender}",G).replace("{data}",Y),K=new OQ(j);if(W.indexOf("{data}")===-1)K.body={data:Y,sender:G};this.emit("debug",{action:"sendCcipReadFetchRequest",request:K,index:$,urls:X});let z="unknown error",N;try{N=await K.send()}catch(U){q.push(U.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:K,result:{error:U}});continue}try{let U=N.bodyJson;if(U.data)return this.emit("debug",{action:"receiveCcipReadFetchResult",request:K,result:U}),U.data;if(U.message)z=U.message;this.emit("debug",{action:"receiveCcipReadFetchError",request:K,result:U})}catch(U){}_(N.statusCode<400||N.statusCode>=500,`response not found during CCIP fetch: ${z}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:Q,info:{url:W,errorMessage:z}}),q.push(z)}_(!1,`error encountered during CCIP fetch: ${q.map(($)=>JSON.stringify($)).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:Q,info:{urls:X,errorMessages:q}})}_wrapBlock(Q,J){return new N7(bZ(Q),this)}_wrapLog(Q,J){return new UY(cZ(Q),this)}_wrapTransactionReceipt(Q,J){return new Ez(sZ(Q),this)}_wrapTransactionResponse(Q,J){return new nG(I7(Q),this)}_detectNetwork(){_(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(Q){_(!1,`unsupported method: ${Q.method}`,"UNSUPPORTED_OPERATION",{operation:Q.method,info:Q})}async getBlockNumber(){let Q=W0(await this.#j({method:"getBlockNumber"}),"%response");if(this.#W>=0)this.#W=Q;return Q}_getAddress(Q){return D8(Q,this)}_getBlockTag(Q){if(Q==null)return"latest";switch(Q){case"earliest":return"0x0";case"finalized":case"latest":case"pending":case"safe":return Q}if(_0(Q)){if(_0(Q,32))return Q;return t8(Q)}if(typeof Q==="bigint")Q=W0(Q,"blockTag");if(typeof Q==="number"){if(Q>=0)return t8(Q);if(this.#W>=0)return t8(this.#W+Q);return this.getBlockNumber().then((J)=>t8(J+Q))}B(!1,"invalid blockTag","blockTag",Q)}_getFilter(Q){let J=(Q.topics||[]).map((W)=>{if(W==null)return null;if(Array.isArray(W))return M5(W.map((j)=>j.toLowerCase()));return W.toLowerCase()}),X="blockHash"in Q?Q.blockHash:void 0,G=(W,j,K)=>{let z=void 0;switch(W.length){case 0:break;case 1:z=W[0];break;default:W.sort(),z=W}if(X){if(j!=null||K!=null)throw Error("invalid filter")}let N={};if(z)N.address=z;if(J.length)N.topics=J;if(j)N.fromBlock=j;if(K)N.toBlock=K;if(X)N.blockHash=X;return N},Y=[];if(Q.address)if(Array.isArray(Q.address))for(let W of Q.address)Y.push(this._getAddress(W));else Y.push(this._getAddress(Q.address));let q=void 0;if("fromBlock"in Q)q=this._getBlockTag(Q.fromBlock);let $=void 0;if("toBlock"in Q)$=this._getBlockTag(Q.toBlock);if(Y.filter((W)=>typeof W!=="string").length||q!=null&&typeof q!=="string"||$!=null&&typeof $!=="string")return Promise.all([Promise.all(Y),q,$]).then((W)=>{return G(W[0],W[1],W[2])});return G(Y,q,$)}_getTransactionRequest(Q){let J=E$(Q),X=[];if(["to","from"].forEach((G)=>{if(J[G]==null)return;let Y=D8(J[G],this);if(xq(Y))X.push(async function(){J[G]=await Y}());else J[G]=Y}),J.blockTag!=null){let G=this._getBlockTag(J.blockTag);if(xq(G))X.push(async function(){J.blockTag=await G}());else J.blockTag=G}if(X.length)return async function(){return await Promise.all(X),J}();return J}async getNetwork(){if(this.#G==null){let G=(async()=>{try{let Y=await this._detectNetwork();return this.emit("network",Y,null),Y}catch(Y){if(this.#G===G)this.#G=null;throw Y}})();return this.#G=G,(await G).clone()}let Q=this.#G,[J,X]=await Promise.all([Q,this._detectNetwork()]);if(J.chainId!==X.chainId)if(this.#$){if(this.emit("network",X,J),this.#G===Q)this.#G=Promise.resolve(X)}else _(!1,`network changed: ${J.chainId} => ${X.chainId} `,"NETWORK_ERROR",{event:"changed"});return J.clone()}async getFeeData(){let Q=await this.getNetwork(),J=async()=>{let{_block:G,gasPrice:Y,priorityFee:q}=await N8({_block:this.#H("latest",!1),gasPrice:(async()=>{try{let K=await this.#j({method:"getGasPrice"});return d(K,"%response")}catch(K){}return null})(),priorityFee:(async()=>{try{let K=await this.#j({method:"getPriorityFee"});return d(K,"%response")}catch(K){}return null})()}),$=null,W=null,j=this._wrapBlock(G,Q);if(j&&j.baseFeePerGas)W=q!=null?q:BigInt("1000000000"),$=j.baseFeePerGas*nZ+W;return new K5(Y,$,W)},X=Q.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(X){let G=new OQ(X.url),Y=await X.processFunc(J,this,G);return new K5(Y.gasPrice,Y.maxFeePerGas,Y.maxPriorityFeePerGas)}return await J()}async estimateGas(Q){let J=this._getTransactionRequest(Q);if(xq(J))J=await J;return d(await this.#j({method:"estimateGas",transaction:J}),"%response")}async#z(Q,J,X){_(X<aZ,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},Q,{blockTag:J,enableCcipRead:!0})});let G=E$(Q);try{return l(await this._perform({method:"call",transaction:G,blockTag:J}))}catch(Y){if(!this.disableCcipRead&&Qz(Y)&&Y.data&&X>=0&&J==="latest"&&G.to!=null&&h0(Y.data,0,4)==="0x556f1830"){let q=Y.data,$=await D8(G.to,this),W;try{W=qT(h0(Y.data,4))}catch(z){_(!1,z.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:G,info:{data:q}})}_(W.sender.toLowerCase()===$.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:q,reason:"OffchainLookup",transaction:G,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:W.errorArgs}});let j=await this.ccipReadFetch(G,W.calldata,W.urls);_(j!=null,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:G,info:{data:Y.data,errorArgs:W.errorArgs}});let K={to:$,data:P0([W.selector,GT([j,W.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:K});try{let z=await this.#z(K,J,X+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},K),result:z}),z}catch(z){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},K),error:z}),z}}throw Y}}async#N(Q){let{value:J}=await N8({network:this.getNetwork(),value:Q});return J}async call(Q){let{tx:J,blockTag:X}=await N8({tx:this._getTransactionRequest(Q),blockTag:this._getBlockTag(Q.blockTag)});return await this.#N(this.#z(J,X,Q.enableCcipRead?0:-1))}async#U(Q,J,X){let G=this._getAddress(J),Y=this._getBlockTag(X);if(typeof G!=="string"||typeof Y!=="string")[G,Y]=await Promise.all([G,Y]);return await this.#N(this.#j(Object.assign(Q,{address:G,blockTag:Y})))}async getBalance(Q,J){return d(await this.#U({method:"getBalance"},Q,J),"%response")}async getTransactionCount(Q,J){return W0(await this.#U({method:"getTransactionCount"},Q,J),"%response")}async getCode(Q,J){return l(await this.#U({method:"getCode"},Q,J))}async getStorage(Q,J,X){let G=d(J,"position");return l(await this.#U({method:"getStorage",position:G},Q,X))}async broadcastTransaction(Q){let{blockNumber:J,hash:X,network:G}=await N8({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:Q}),network:this.getNetwork()}),Y=i8.from(Q);if(Y.hash!==X)throw Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(Y,G).replaceableTransaction(J)}async#H(Q,J){if(_0(Q,32))return await this.#j({method:"getBlock",blockHash:Q,includeTransactions:J});let X=this._getBlockTag(Q);if(typeof X!=="string")X=await X;return await this.#j({method:"getBlock",blockTag:X,includeTransactions:J})}async getBlock(Q,J){let{network:X,params:G}=await N8({network:this.getNetwork(),params:this.#H(Q,!!J)});if(G==null)return null;return this._wrapBlock(G,X)}async getTransaction(Q){let{network:J,params:X}=await N8({network:this.getNetwork(),params:this.#j({method:"getTransaction",hash:Q})});if(X==null)return null;return this._wrapTransactionResponse(X,J)}async getTransactionReceipt(Q){let{network:J,params:X}=await N8({network:this.getNetwork(),params:this.#j({method:"getTransactionReceipt",hash:Q})});if(X==null)return null;if(X.gasPrice==null&&X.effectiveGasPrice==null){let G=await this.#j({method:"getTransaction",hash:Q});if(G==null)throw Error("report this; could not find tx or effectiveGasPrice");X.effectiveGasPrice=G.gasPrice}return this._wrapTransactionReceipt(X,J)}async getTransactionResult(Q){let{result:J}=await N8({network:this.getNetwork(),result:this.#j({method:"getTransactionResult",hash:Q})});if(J==null)return null;return l(J)}async getLogs(Q){let J=this._getFilter(Q);if(xq(J))J=await J;let{network:X,params:G}=await N8({network:this.getNetwork(),params:this.#j({method:"getLogs",filter:J})});return G.map((Y)=>this._wrapLog(Y,X))}_getProvider(Q){_(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(Q){return await mX.fromName(this,Q)}async getAvatar(Q){let J=await this.getResolver(Q);if(J)return await J.getAvatar();return null}async resolveName(Q){let J=await this.getResolver(Q);if(J)return await J.getAddress();return null}async lookupAddress(Q){Q=L0(Q);let J=W5(Q.substring(2).toLowerCase()+".addr.reverse");try{let X=await mX.getEnsAddress(this),G=await new hX(X,["function resolver(bytes32) view returns (address)"],this).resolver(J);if(G==null||G===WG)return null;let Y=await new hX(G,["function name(bytes32) view returns (string)"],this).name(J);if(await this.resolveName(Y)!==Q)return null;return Y}catch(X){if(J8(X,"BAD_DATA")&&X.value==="0x")return null;if(J8(X,"CALL_EXCEPTION"))return null;throw X}return null}async waitForTransaction(Q,J,X){let G=J!=null?J:1;if(G===0)return this.getTransactionReceipt(Q);return new Promise(async(Y,q)=>{let $=null,W=async(j)=>{try{let K=await this.getTransactionReceipt(Q);if(K!=null){if(j-K.blockNumber+1>=G){if(Y(K),$)clearTimeout($),$=null;return}}}catch(K){console.log("EEE",K)}this.once("block",W)};if(X!=null)$=setTimeout(()=>{if($==null)return;$=null,this.off("block",W),q(T0("timeout","TIMEOUT",{reason:"timeout"}))},X);W(await this.getBlockNumber())})}async waitForBlock(Q){_(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(Q){let J=this.#K.get(Q);if(!J)return;if(J.timer)clearTimeout(J.timer);this.#K.delete(Q)}_setTimeout(Q,J){if(J==null)J=0;let X=this.#M++,G=()=>{this.#K.delete(X),Q()};if(this.paused)this.#K.set(X,{timer:null,func:G,time:J});else{let Y=setTimeout(G,J);this.#K.set(X,{timer:Y,func:G,time:vW()})}return X}_forEachSubscriber(Q){for(let J of this.#Q.values())Q(J.subscriber)}_getSubscriber(Q){switch(Q.type){case"debug":case"error":case"network":return new Iz(Q.type);case"block":{let J=new _7(this);return J.pollingInterval=this.pollingInterval,J}case"safe":case"finalized":return new F7(this,Q.type);case"event":return new f9(this,Q.filter);case"transaction":return new k7(this,Q.hash);case"orphan":return new P7(this,Q.filter)}throw Error(`unsupported event: ${Q.type}`)}_recoverSubscriber(Q,J){for(let X of this.#Q.values())if(X.subscriber===Q){if(X.started)X.subscriber.stop();if(X.subscriber=J,X.started)J.start();if(this.#X!=null)J.pause(this.#X);break}}async#B(Q,J){let X=await SW(Q,this);if(X.type==="event"&&J&&J.length>0&&J[0].removed===!0)X=await SW({orphan:"drop-log",log:J[0]},this);return this.#Q.get(X.tag)||null}async#R(Q){let J=await SW(Q,this),X=J.tag,G=this.#Q.get(X);if(!G)G={subscriber:this._getSubscriber(J),tag:X,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},this.#Q.set(X,G);return G}async on(Q,J){let X=await this.#R(Q);if(X.listeners.push({listener:J,once:!1}),!X.started){if(X.subscriber.start(),X.started=!0,this.#X!=null)X.subscriber.pause(this.#X)}return this}async once(Q,J){let X=await this.#R(Q);if(X.listeners.push({listener:J,once:!0}),!X.started){if(X.subscriber.start(),X.started=!0,this.#X!=null)X.subscriber.pause(this.#X)}return this}async emit(Q,...J){let X=await this.#B(Q,J);if(!X||X.listeners.length===0)return!1;let G=X.listeners.length;if(X.listeners=X.listeners.filter(({listener:Y,once:q})=>{let $=new Yz(this,q?null:Y,Q);try{Y.call(this,...J,$)}catch(W){}return!q}),X.listeners.length===0){if(X.started)X.subscriber.stop();this.#Q.delete(X.tag)}return G>0}async listenerCount(Q){if(Q){let X=await this.#B(Q);if(!X)return 0;return X.listeners.length}let J=0;for(let{listeners:X}of this.#Q.values())J+=X.length;return J}async listeners(Q){if(Q){let X=await this.#B(Q);if(!X)return[];return X.listeners.map(({listener:G})=>G)}let J=[];for(let{listeners:X}of this.#Q.values())J=J.concat(X.map(({listener:G})=>G));return J}async off(Q,J){let X=await this.#B(Q);if(!X)return this;if(J){let G=X.listeners.map(({listener:Y})=>Y).indexOf(J);if(G>=0)X.listeners.splice(G,1)}if(!J||X.listeners.length===0){if(X.started)X.subscriber.stop();this.#Q.delete(X.tag)}return this}async removeAllListeners(Q){if(Q){let{tag:J,started:X,subscriber:G}=await this.#R(Q);if(X)G.stop();this.#Q.delete(J)}else for(let[J,{started:X,subscriber:G}]of this.#Q){if(X)G.stop();this.#Q.delete(J)}return this}async addListener(Q,J){return await this.on(Q,J)}async removeListener(Q,J){return this.off(Q,J)}get destroyed(){return this.#Y}destroy(){this.removeAllListeners();for(let Q of this.#K.keys())this._clearTimeout(Q);this.#Y=!0}get paused(){return this.#X!=null}set paused(Q){if(!!Q===this.paused)return;if(this.paused)this.resume();else this.pause(!1)}pause(Q){if(this.#W=-1,this.#X!=null){if(this.#X==!!Q)return;_(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber((J)=>J.pause(Q)),this.#X=!!Q;for(let J of this.#K.values()){if(J.timer)clearTimeout(J.timer);J.time=vW()-J.time}}resume(){if(this.#X==null)return;this._forEachSubscriber((Q)=>Q.resume()),this.#X=null;for(let Q of this.#K.values()){let J=Q.time;if(J<0)J=0;Q.time=vW(),setTimeout(Q.func,J)}}}function JT(Q,J){try{let X=D5(Q,J);if(X)return M$(X)}catch(X){}return null}function D5(Q,J){if(Q==="0x")return null;try{let X=W0(h0(Q,J,J+32)),G=W0(h0(Q,X,X+32));return h0(Q,X+32,X+32+G)}catch(X){}return null}function kM(Q){let J=o0(Q);if(J.length>32)throw Error("internal; should not happen");let X=new Uint8Array(32);return X.set(J,32-J.length),X}function XT(Q){if(Q.length%32===0)return Q;let J=new Uint8Array(Math.ceil(Q.length/32)*32);return J.set(Q),J}var YT=new Uint8Array([]);function GT(Q){let J=[],X=0;for(let G=0;G<Q.length;G++)J.push(YT),X+=32;for(let G=0;G<Q.length;G++){let Y=z0(Q[G]);J[G]=kM(X),J.push(kM(Y.length)),J.push(XT(Y)),X+=32+Math.ceil(Y.length/32)*32}return P0(J)}var ZM="0x0000000000000000000000000000000000000000000000000000000000000000";function qT(Q){let J={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};_(xX(Q)>=160,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});let X=h0(Q,0,32);_(h0(X,0,12)===h0(ZM,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),J.sender=h0(X,12);try{let G=[],Y=W0(h0(Q,32,64)),q=W0(h0(Q,Y,Y+32)),$=h0(Q,Y+32);for(let W=0;W<q;W++){let j=JT($,W*32);if(j==null)throw Error("abort");G.push(j)}J.urls=G}catch(G){_(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{let G=D5(Q,64);if(G==null)throw Error("abort");J.calldata=G}catch(G){_(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}_(h0(Q,100,128)===h0(ZM,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),J.selector=h0(Q,96,100);try{let G=D5(Q,128);if(G==null)throw Error("abort");J.extraData=G}catch(G){_(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return J.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map((G)=>J[G]),J}function gJ(Q,J){if(Q.provider)return Q.provider;_(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:J})}async function TM(Q,J){let X=E$(J);if(X.to!=null)X.to=D8(X.to,Q);if(X.from!=null){let G=X.from;X.from=Promise.all([Q.getAddress(),D8(G,Q)]).then(([Y,q])=>{return B(Y.toLowerCase()===q.toLowerCase(),"transaction from mismatch","tx.from",q),Y})}else X.from=Q.getAddress();return await N8(X)}class Sz{provider;constructor(Q){e(this,{provider:Q||null})}async getNonce(Q){return gJ(this,"getTransactionCount").getTransactionCount(await this.getAddress(),Q)}async populateCall(Q){return await TM(this,Q)}async populateTransaction(Q){let J=gJ(this,"populateTransaction"),X=await TM(this,Q);if(X.nonce==null)X.nonce=await this.getNonce("pending");if(X.gasLimit==null)X.gasLimit=await this.estimateGas(X);let G=await this.provider.getNetwork();if(X.chainId!=null){let q=d(X.chainId);B(q===G.chainId,"transaction chainId mismatch","tx.chainId",Q.chainId)}else X.chainId=G.chainId;let Y=X.maxFeePerGas!=null||X.maxPriorityFeePerGas!=null;if(X.gasPrice!=null&&(X.type===2||Y))B(!1,"eip-1559 transaction do not support gasPrice","tx",Q);else if((X.type===0||X.type===1)&&Y)B(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",Q);if((X.type===2||X.type==null)&&(X.maxFeePerGas!=null&&X.maxPriorityFeePerGas!=null))X.type=2;else if(X.type===0||X.type===1){let q=await J.getFeeData();if(_(q.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),X.gasPrice==null)X.gasPrice=q.gasPrice}else{let q=await J.getFeeData();if(X.type==null)if(q.maxFeePerGas!=null&&q.maxPriorityFeePerGas!=null){if(X.authorizationList&&X.authorizationList.length)X.type=4;else X.type=2;if(X.gasPrice!=null){let $=X.gasPrice;delete X.gasPrice,X.maxFeePerGas=$,X.maxPriorityFeePerGas=$}else{if(X.maxFeePerGas==null)X.maxFeePerGas=q.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=q.maxPriorityFeePerGas}}else if(q.gasPrice!=null){if(_(!Y,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),X.gasPrice==null)X.gasPrice=q.gasPrice;X.type=0}else _(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(X.type===2||X.type===3||X.type===4){if(X.maxFeePerGas==null)X.maxFeePerGas=q.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=q.maxPriorityFeePerGas}}return await N8(X)}async populateAuthorization(Q){let J=Object.assign({},Q);if(J.chainId==null)J.chainId=(await gJ(this,"getNetwork").getNetwork()).chainId;if(J.nonce==null)J.nonce=await this.getNonce();return J}async estimateGas(Q){return gJ(this,"estimateGas").estimateGas(await this.populateCall(Q))}async call(Q){return gJ(this,"call").call(await this.populateCall(Q))}async resolveName(Q){return await gJ(this,"resolveName").resolveName(Q)}async sendTransaction(Q){let J=gJ(this,"sendTransaction"),X=await this.populateTransaction(Q);delete X.from;let G=i8.from(X);return await J.broadcastTransaction(await this.signTransaction(G))}authorize(Q){_(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class T7 extends Sz{address;constructor(Q,J){super(J);e(this,{address:Q})}async getAddress(){return this.address}connect(Q){return new T7(this.address,Q)}#Q(Q,J){_(!1,`VoidSigner cannot sign ${Q}`,"UNSUPPORTED_OPERATION",{operation:J})}async signTransaction(Q){this.#Q("transactions","signTransaction")}async signMessage(Q){this.#Q("messages","signMessage")}async signTypedData(Q,J,X){this.#Q("typed-data","signTypedData")}}function $T(Q){return JSON.parse(JSON.stringify(Q))}class vz{#Q;#J;#X;#Y;#G;#$;constructor(Q){this.#Q=Q,this.#J=null,this.#X=this.#q.bind(this),this.#Y=!1,this.#G=null,this.#$=!1}_subscribe(Q){throw Error("subclasses must override this")}_emitResults(Q,J){throw Error("subclasses must override this")}_recover(Q){throw Error("subclasses must override this")}async#q(Q){try{if(this.#J==null)this.#J=this._subscribe(this.#Q);let J=null;try{J=await this.#J}catch(Y){if(!J8(Y,"UNSUPPORTED_OPERATION")||Y.operation!=="eth_newFilter")throw Y}if(J==null){this.#J=null,this.#Q._recoverSubscriber(this,this._recover(this.#Q));return}let X=await this.#Q.getNetwork();if(!this.#G)this.#G=X;if(this.#G.chainId!==X.chainId)throw Error("chaid changed");if(this.#$)return;let G=await this.#Q.send("eth_getFilterChanges",[J]);await this._emitResults(this.#Q,G)}catch(J){console.log("@TODO",J)}this.#Q.once("block",this.#X)}#W(){let Q=this.#J;if(Q)this.#J=null,Q.then((J)=>{if(this.#Q.destroyed)return;this.#Q.send("eth_uninstallFilter",[J])})}start(){if(this.#Y)return;this.#Y=!0,this.#q(-2)}stop(){if(!this.#Y)return;this.#Y=!1,this.#$=!0,this.#W(),this.#Q.off("block",this.#X)}pause(Q){if(Q)this.#W();this.#Q.off("block",this.#X)}resume(){this.start()}}class x7 extends vz{#Q;constructor(Q,J){super(Q);this.#Q=$T(J)}_recover(Q){return new f9(Q,this.#Q)}async _subscribe(Q){return await Q.send("eth_newFilter",[this.#Q])}async _emitResults(Q,J){for(let X of J)Q.emit(this.#Q,Q._wrapLog(X,Q._network))}}class g7 extends vz{async _subscribe(Q){return await Q.send("eth_newPendingTransactionFilter",[])}async _emitResults(Q,J){for(let X of J)Q.emit("pending",X)}}var WT="bigint,boolean,function,number,string,symbol".split(/,/g);function pq(Q){if(Q==null||WT.indexOf(typeof Q)>=0)return Q;if(typeof Q.getAddress==="function")return Q;if(Array.isArray(Q))return Q.map(pq);if(typeof Q==="object")return Object.keys(Q).reduce((J,X)=>{return J[X]=Q[X],J},{});throw Error(`should not happen: ${Q} (${typeof Q})`)}function jT(Q){return new Promise((J)=>{setTimeout(J,Q)})}function _X(Q){if(Q)return Q.toLowerCase();return Q}function xM(Q){return Q&&typeof Q.pollingInterval==="number"}var f7={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1048576,batchMaxCount:100,cacheTimeout:250,pollingInterval:4000};class bq extends Sz{address;constructor(Q,J){super(Q);J=L0(J),e(this,{address:J})}connect(Q){_(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(Q){return await this.populateCall(Q)}async sendUncheckedTransaction(Q){let J=pq(Q),X=[];if(J.from){let Y=J.from;X.push((async()=>{let q=await D8(Y,this.provider);B(q!=null&&q.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",Q),J.from=q})())}else J.from=this.address;if(J.gasLimit==null)X.push((async()=>{J.gasLimit=await this.provider.estimateGas({...J,from:this.address})})());if(J.to!=null){let Y=J.to;X.push((async()=>{J.to=await D8(Y,this.provider)})())}if(X.length)await Promise.all(X);let G=this.provider.getRpcTransaction(J);return this.provider.send("eth_sendTransaction",[G])}async sendTransaction(Q){let J=await this.provider.getBlockNumber(),X=await this.sendUncheckedTransaction(Q);return await new Promise((G,Y)=>{let q=[1000,100],$=0,W=async()=>{try{let j=await this.provider.getTransaction(X);if(j!=null){G(j.replaceableTransaction(J));return}}catch(j){if(J8(j,"CANCELLED")||J8(j,"BAD_DATA")||J8(j,"NETWORK_ERROR")||J8(j,"UNSUPPORTED_OPERATION")){if(j.info==null)j.info={};j.info.sendTransactionHash=X,Y(j);return}if(J8(j,"INVALID_ARGUMENT")){if($++,j.info==null)j.info={};if(j.info.sendTransactionHash=X,$>10){Y(j);return}}this.provider.emit("error",T0("failed to fetch transation after sending (will try again)","UNKNOWN_ERROR",{error:j}))}this.provider._setTimeout(()=>{W()},q.pop()||4000)};W()})}async signTransaction(Q){let J=pq(Q);if(J.from){let G=await D8(J.from,this.provider);B(G!=null&&G.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",Q),J.from=G}else J.from=this.address;let X=this.provider.getRpcTransaction(J);return await this.provider.send("eth_signTransaction",[X])}async signMessage(Q){let J=typeof Q==="string"?fQ(Q):Q;return await this.provider.send("personal_sign",[l(J),this.address.toLowerCase()])}async signTypedData(Q,J,X){let G=pq(X),Y=await _8.resolveNames(Q,J,G,async(q)=>{let $=await D8(q);return B($!=null,"TypedData does not support null address","value",q),$});return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(_8.getPayload(Y.domain,J,Y.value))])}async unlock(Q){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),Q,null])}async _legacySignMessage(Q){let J=typeof Q==="string"?fQ(Q):Q;return await this.provider.send("eth_sign",[this.address.toLowerCase(),l(J)])}}class h7 extends Z7{#Q;#J;#X;#Y;#G;#$;#q;#W(){if(this.#Y)return;let Q=this._getOption("batchMaxCount")===1?0:this._getOption("batchStallTime");this.#Y=setTimeout(()=>{this.#Y=null;let J=this.#X;this.#X=[];while(J.length){let X=[J.shift()];while(J.length){if(X.length===this.#Q.batchMaxCount)break;if(X.push(J.shift()),JSON.stringify(X.map((G)=>G.payload)).length>this.#Q.batchMaxSize){J.unshift(X.pop());break}}(async()=>{let G=X.length===1?X[0].payload:X.map((Y)=>Y.payload);this.emit("debug",{action:"sendRpcPayload",payload:G});try{let Y=await this._send(G);this.emit("debug",{action:"receiveRpcResult",result:Y});for(let{resolve:q,reject:$,payload:W}of X){if(this.destroyed){$(T0("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:W.method}));continue}let j=Y.filter((K)=>K.id===W.id)[0];if(j==null){let K=T0("missing response for request","BAD_DATA",{value:Y,info:{payload:W}});this.emit("error",K),$(K);continue}if("error"in j){$(this.getRpcError(W,j));continue}q(j.result)}}catch(Y){this.emit("debug",{action:"receiveRpcError",error:Y});for(let{reject:q}of X)q(Y)}})()}},Q)}constructor(Q,J){super(Q,J);this.#J=1,this.#Q=Object.assign({},f7,J||{}),this.#X=[],this.#Y=null,this.#$=null,this.#q=null;{let G=null,Y=new Promise((q)=>{G=q});this.#G={promise:Y,resolve:G}}let X=this._getOption("staticNetwork");if(typeof X==="boolean"){if(B(!X||Q!=="any","staticNetwork cannot be used on special network 'any'","options",J),X&&Q!=null)this.#$=k8.from(Q)}else if(X)B(Q==null||X.matches(Q),"staticNetwork MUST match network object","options",J),this.#$=X}_getOption(Q){return this.#Q[Q]}get _network(){return _(this.#$,"network is not available yet","NETWORK_ERROR"),this.#$}async _perform(Q){if(Q.method==="call"||Q.method==="estimateGas"){let X=Q.transaction;if(X&&X.type!=null&&d(X.type)){if(X.maxFeePerGas==null&&X.maxPriorityFeePerGas==null){let G=await this.getFeeData();if(G.maxFeePerGas==null&&G.maxPriorityFeePerGas==null)Q=Object.assign({},Q,{transaction:Object.assign({},X,{type:void 0})})}}}let J=this.getRpcRequest(Q);if(J!=null)return await this.send(J.method,J.args);return super._perform(Q)}async _detectNetwork(){let Q=this._getOption("staticNetwork");if(Q)if(Q===!0){if(this.#$)return this.#$}else return Q;if(this.#q)return await this.#q;if(this.ready)return this.#q=(async()=>{try{let J=k8.from(d(await this.send("eth_chainId",[])));return this.#q=null,J}catch(J){throw this.#q=null,J}})(),await this.#q;return this.#q=(async()=>{let J={id:this.#J++,method:"eth_chainId",params:[],jsonrpc:"2.0"};this.emit("debug",{action:"sendRpcPayload",payload:J});let X;try{X=(await this._send(J))[0],this.#q=null}catch(G){throw this.#q=null,this.emit("debug",{action:"receiveRpcError",error:G}),G}if(this.emit("debug",{action:"receiveRpcResult",result:X}),"result"in X)return k8.from(d(X.result));throw this.getRpcError(J,X)})(),await this.#q}_start(){if(this.#G==null||this.#G.resolve==null)return;this.#G.resolve(),this.#G=null,(async()=>{while(this.#$==null&&!this.destroyed)try{this.#$=await this._detectNetwork()}catch(Q){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",T0("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:Q}})),await jT(1000)}this.#W()})()}async _waitUntilReady(){if(this.#G==null)return;return await this.#G.promise}_getSubscriber(Q){if(Q.type==="pending")return new g7(this);if(Q.type==="event"){if(this._getOption("polling"))return new f9(this,Q.filter);return new x7(this,Q.filter)}if(Q.type==="orphan"&&Q.filter.orphan==="drop-log")return new Iz("orphan");return super._getSubscriber(Q)}get ready(){return this.#G==null}getRpcTransaction(Q){let J={};if(["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((X)=>{if(Q[X]==null)return;let G=X;if(X==="gasLimit")G="gas";J[G]=t8(d(Q[X],`tx.${X}`))}),["from","to","data"].forEach((X)=>{if(Q[X]==null)return;J[X]=l(Q[X])}),Q.accessList)J.accessList=zX(Q.accessList);if(Q.blobVersionedHashes)J.blobVersionedHashes=Q.blobVersionedHashes.map((X)=>X.toLowerCase());if(Q.authorizationList)J.authorizationList=Q.authorizationList.map((X)=>{let G=v6(X);return{address:G.address,nonce:t8(G.nonce),chainId:t8(G.chainId),yParity:t8(G.signature.yParity),r:t8(G.signature.r),s:t8(G.signature.s)}});return J}getRpcRequest(Q){switch(Q.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:[_X(Q.address),Q.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[_X(Q.address),Q.blockTag]};case"getCode":return{method:"eth_getCode",args:[_X(Q.address),Q.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[_X(Q.address),"0x"+Q.position.toString(16),Q.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[Q.signedTransaction]};case"getBlock":if("blockTag"in Q)return{method:"eth_getBlockByNumber",args:[Q.blockTag,!!Q.includeTransactions]};else if("blockHash"in Q)return{method:"eth_getBlockByHash",args:[Q.blockHash,!!Q.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[Q.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[Q.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(Q.transaction),Q.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(Q.transaction)]};case"getLogs":if(Q.filter&&Q.filter.address!=null)if(Array.isArray(Q.filter.address))Q.filter.address=Q.filter.address.map(_X);else Q.filter.address=_X(Q.filter.address);return{method:"eth_getLogs",args:[Q.filter]}}return null}getRpcError(Q,J){let{method:X}=Q,{error:G}=J;if(X==="eth_estimateGas"&&G.message){let $=G.message;if(!$.match(/revert/i)&&$.match(/insufficient funds/i))return T0("insufficient funds","INSUFFICIENT_FUNDS",{transaction:Q.params[0],info:{payload:Q,error:G}});else if($.match(/nonce/i)&&$.match(/too low/i))return T0("nonce has already been used","NONCE_EXPIRED",{transaction:Q.params[0],info:{payload:Q,error:G}})}if(X==="eth_call"||X==="eth_estimateGas"){let $=O5(G),W=QY.getBuiltinCallException(X==="eth_call"?"call":"estimateGas",Q.params[0],$?$.data:null);return W.info={error:G,payload:Q},W}let Y=JSON.stringify(zT(G));if(typeof G.message==="string"&&G.message.match(/user denied|ethers-user-denied/i))return T0("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"}[X]||"unknown",reason:"rejected",info:{payload:Q,error:G}});if(X==="eth_sendRawTransaction"||X==="eth_sendTransaction"){let $=Q.params[0];if(Y.match(/insufficient funds|base fee exceeds gas limit/i))return T0("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:$,info:{error:G}});if(Y.match(/nonce/i)&&Y.match(/too low/i))return T0("nonce has already been used","NONCE_EXPIRED",{transaction:$,info:{error:G}});if(Y.match(/replacement transaction/i)&&Y.match(/underpriced/i))return T0("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:$,info:{error:G}});if(Y.match(/only replay-protected/i))return T0("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:X,info:{transaction:$,info:{error:G}}})}let q=!!Y.match(/the method .* does not exist/i);if(!q){if(G&&G.details&&G.details.startsWith("Unauthorized method:"))q=!0}if(q)return T0("unsupported operation","UNSUPPORTED_OPERATION",{operation:Q.method,info:{error:G,payload:Q}});return T0("could not coalesce error","UNKNOWN_ERROR",{error:G,payload:Q})}send(Q,J){if(this.destroyed)return Promise.reject(T0("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:Q}));let X=this.#J++,G=new Promise((Y,q)=>{this.#X.push({resolve:Y,reject:q,payload:{method:Q,params:J,id:X,jsonrpc:"2.0"}})});return this.#W(),G}async getSigner(Q){if(Q==null)Q=0;let J=this.send("eth_accounts",[]);if(typeof Q==="number"){let G=await J;if(Q>=G.length)throw Error("no such account");return new bq(this,G[Q])}let{accounts:X}=await N8({network:this.getNetwork(),accounts:J});Q=L0(Q);for(let G of X)if(L0(G)===Q)return new bq(this,Q);throw Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map((Q)=>new bq(this,Q))}destroy(){if(this.#Y)clearTimeout(this.#Y),this.#Y=null;for(let{payload:Q,reject:J}of this.#X)J(T0("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:Q.method}));this.#X=[],super.destroy()}}class m7 extends h7{#Q;constructor(Q,J){super(Q,J);let X=this._getOption("pollingInterval");if(X==null)X=f7.pollingInterval;this.#Q=X}_getSubscriber(Q){let J=super._getSubscriber(Q);if(xM(J))J.pollingInterval=this.#Q;return J}get pollingInterval(){return this.#Q}set pollingInterval(Q){if(!Number.isInteger(Q)||Q<0)throw Error("invalid interval");this.#Q=Q,this._forEachSubscriber((J)=>{if(xM(J))J.pollingInterval=this.#Q})}}class KT extends m7{#Q;constructor(Q,J,X){if(Q==null)Q="http://localhost:8545";super(J,X);if(typeof Q==="string")this.#Q=new OQ(Q);else this.#Q=Q.clone()}_getConnection(){return this.#Q.clone()}async send(Q,J){return await this._start(),await super.send(Q,J)}async _send(Q){let J=this._getConnection();J.body=JSON.stringify(Q),J.setHeader("content-type","application/json");let X=await J.send();X.assertOk();let G=X.bodyJson;if(!Array.isArray(G))G=[G];return G}}function O5(Q){if(Q==null)return null;if(typeof Q.message==="string"&&Q.message.match(/revert/i)&&_0(Q.data))return{message:Q.message,data:Q.data};if(typeof Q==="object"){for(let J in Q){let X=O5(Q[J]);if(X)return X}return null}if(typeof Q==="string")try{return O5(JSON.parse(Q))}catch(J){}return null}function B5(Q,J){if(Q==null)return;if(typeof Q.message==="string")J.push(Q.message);if(typeof Q==="object")for(let X in Q)B5(Q[X],J);if(typeof Q==="string")try{return B5(JSON.parse(Q),J)}catch(X){}}function zT(Q){let J=[];return B5(Q,J),J}var y7=async(Q,J,X)=>{let G=J instanceof u0?J.toJSON():J,Y=await Q.getChainId();if(G.chainId!=Y)await Q.switchChain(G.chainId);return Q.writeContract({contractAbi:[G.functionAbi],contractAddress:G.contractAddress,args:G.args,functionName:G.functionName,gas:X?.gas})};d7();EJ();var RT=BigInt(0),eG=BigInt(1),HT=BigInt(2),VT=BigInt(7),LT=BigInt(256),ET=BigInt(113),e7=[],QE=[],JE=[];for(let Q=0,J=eG,X=1,G=0;Q<24;Q++){[X,G]=[G,(2*X+3*G)%5],e7.push(2*(5*G+X)),QE.push((Q+1)*(Q+2)/2%64);let Y=RT;for(let q=0;q<7;q++)if(J=(J<<eG^(J>>VT)*ET)%LT,J&HT)Y^=eG<<(eG<<BigInt(q))-eG;JE.push(Y)}var XE=u7(JE,!0),wT=XE[0],CT=XE[1],n7=(Q,J,X)=>X>32?b7(Q,J,X):c7(Q,J,X),a7=(Q,J,X)=>X>32?o7(Q,J,X):p7(Q,J,X);function AT(Q,J=24){let X=new Uint32Array(10);for(let G=24-J;G<24;G++){for(let $=0;$<10;$++)X[$]=Q[$]^Q[$+10]^Q[$+20]^Q[$+30]^Q[$+40];for(let $=0;$<10;$+=2){let W=($+8)%10,j=($+2)%10,K=X[j],z=X[j+1],N=n7(K,z,1)^X[W],U=a7(K,z,1)^X[W+1];for(let M=0;M<50;M+=10)Q[$+M]^=N,Q[$+M+1]^=U}let Y=Q[2],q=Q[3];for(let $=0;$<24;$++){let W=QE[$],j=n7(Y,q,W),K=a7(Y,q,W),z=e7[$];Y=Q[z],q=Q[z+1],Q[z]=j,Q[z+1]=K}for(let $=0;$<50;$+=10){for(let W=0;W<10;W++)X[W]=Q[$+W];for(let W=0;W<10;W++)Q[$+W]^=~X[(W+2)%10]&X[(W+4)%10]}Q[0]^=wT[G],Q[1]^=CT[G]}VQ(X)}class Fz extends OX{constructor(Q,J,X,G=!1,Y=24){super();if(this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=Q,this.suffix=J,this.outputLen=X,this.enableXOF=G,this.rounds=Y,MX(X),!(0<Q&&Q<200))throw Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=i7(this.state)}clone(){return this._cloneInto()}keccak(){_z(this.state32),AT(this.state32,this.rounds),_z(this.state32),this.posOut=0,this.pos=0}update(Q){rQ(this),Q=DX(Q),HQ(Q);let{blockLen:J,state:X}=this,G=Q.length;for(let Y=0;Y<G;){let q=Math.min(J-this.pos,G-Y);for(let $=0;$<q;$++)X[this.pos++]^=Q[Y++];if(this.pos===J)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:Q,suffix:J,pos:X,blockLen:G}=this;if(Q[X]^=J,(J&128)!==0&&X===G-1)this.keccak();Q[G-1]^=128,this.keccak()}writeInto(Q){rQ(this,!1),HQ(Q),this.finish();let J=this.state,{blockLen:X}=this;for(let G=0,Y=Q.length;G<Y;){if(this.posOut>=X)this.keccak();let q=Math.min(X-this.posOut,Y-G);Q.set(J.subarray(this.posOut,this.posOut+q),G),this.posOut+=q,G+=q}return Q}xofInto(Q){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(Q)}xof(Q){return MX(Q),this.xofInto(new Uint8Array(Q))}digestInto(Q){if(m9(Q,this),this.finished)throw Error("digest() was already called");return this.writeInto(Q),this.destroy(),Q}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,VQ(this.state)}_cloneInto(Q){let{blockLen:J,suffix:X,outputLen:G,rounds:Y,enableXOF:q}=this;return Q||(Q=new Fz(J,X,G,q,Y)),Q.state32.set(this.state32),Q.pos=this.pos,Q.posOut=this.posOut,Q.finished=this.finished,Q.rounds=Y,Q.suffix=X,Q.outputLen=G,Q.enableXOF=q,Q.destroyed=this.destroyed,Q}}var IT=(Q,J,X)=>l9(()=>new Fz(J,Q,X));var YE=(()=>IT(1,136,32))();function sQ(Q,{strict:J=!0}={}){if(!Q)return!1;if(typeof Q!=="string")return!1;return J?/^0x[0-9a-fA-F]*$/.test(Q):Q.startsWith("0x")}var Pz="2.47.2";var kz={getDocsUrl:({docsBaseUrl:Q,docsPath:J="",docsSlug:X})=>J?`${Q??"https://viem.sh"}${J}${X?`#${X}`:""}`:void 0,version:`viem@${Pz}`};class LQ extends Error{constructor(Q,J={}){let X=(()=>{if(J.cause instanceof LQ)return J.cause.details;if(J.cause?.message)return J.cause.message;return J.details})(),G=(()=>{if(J.cause instanceof LQ)return J.cause.docsPath||J.docsPath;return J.docsPath})(),Y=kz.getDocsUrl?.({...J,docsPath:G}),q=[Q||"An error occurred.","",...J.metaMessages?[...J.metaMessages,""]:[],...Y?[`Docs: ${Y}`]:[],...X?[`Details: ${X}`]:[],...kz.version?[`Version: ${kz.version}`]:[]].join(`
|
|
75
|
+
`);super(q,J.cause?{cause:J.cause}:void 0);Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=X,this.docsPath=G,this.metaMessages=J.metaMessages,this.name=J.name??this.name,this.shortMessage=Q,this.version=Pz}walk(Q){return GE(this,Q)}}function GE(Q,J){if(J?.(Q))return Q;if(Q&&typeof Q==="object"&&"cause"in Q&&Q.cause!==void 0)return GE(Q.cause,J);return J?null:Q}class c9 extends LQ{constructor({size:Q,targetSize:J,type:X}){super(`${X.charAt(0).toUpperCase()}${X.slice(1).toLowerCase()} size (${Q}) exceeds padding size (${J}).`,{name:"SizeExceedsPaddingSizeError"})}}function wJ(Q,{dir:J,size:X=32}={}){if(typeof Q==="string")return ST(Q,{dir:J,size:X});return vT(Q,{dir:J,size:X})}function ST(Q,{dir:J,size:X=32}={}){if(X===null)return Q;let G=Q.replace("0x","");if(G.length>X*2)throw new c9({size:Math.ceil(G.length/2),targetSize:X,type:"hex"});return`0x${G[J==="right"?"padEnd":"padStart"](X*2,"0")}`}function vT(Q,{dir:J,size:X=32}={}){if(X===null)return Q;if(Q.length>X)throw new c9({size:Q.length,targetSize:X,type:"bytes"});let G=new Uint8Array(X);for(let Y=0;Y<X;Y++){let q=J==="right";G[q?Y:X-Y-1]=Q[q?Y:Q.length-Y-1]}return G}class Qq extends LQ{constructor({max:Q,min:J,signed:X,size:G,value:Y}){super(`Number "${Y}" is not in safe ${G?`${G*8}-bit ${X?"signed":"unsigned"} `:""}integer range ${Q?`(${J} to ${Q})`:`(above ${J})`}`,{name:"IntegerOutOfRangeError"})}}class Zz extends LQ{constructor({givenSize:Q,maxSize:J}){super(`Size cannot exceed ${J} bytes. Given size: ${Q} bytes.`,{name:"SizeOverflowError"})}}function BX(Q){if(sQ(Q,{strict:!1}))return Math.ceil((Q.length-2)/2);return Q.length}function CJ(Q,{size:J}){if(BX(Q)>J)throw new Zz({givenSize:BX(Q),maxSize:J})}function p9(Q,J={}){let{signed:X}=J;if(J.size)CJ(Q,{size:J.size});let G=BigInt(Q);if(!X)return G;let Y=(Q.length-2)/2,q=(1n<<BigInt(Y)*8n-1n)-1n;if(G<=q)return G;return G-BigInt(`0x${"f".padStart(Y*2,"f")}`)-1n}function qE(Q,J={}){let X=p9(Q,J),G=Number(X);if(!Number.isSafeInteger(G))throw new Qq({max:`${Number.MAX_SAFE_INTEGER}`,min:`${Number.MIN_SAFE_INTEGER}`,signed:J.signed,size:J.size,value:`${X}n`});return G}var _T=Array.from({length:256},(Q,J)=>J.toString(16).padStart(2,"0"));function Jq(Q,J={}){if(typeof Q==="number"||typeof Q==="bigint")return Tz(Q,J);if(typeof Q==="string")return o9(Q,J);if(typeof Q==="boolean")return FT(Q,J);return b9(Q,J)}function FT(Q,J={}){let X=`0x${Number(Q)}`;if(typeof J.size==="number")return CJ(X,{size:J.size}),wJ(X,{size:J.size});return X}function b9(Q,J={}){let X="";for(let Y=0;Y<Q.length;Y++)X+=_T[Q[Y]];let G=`0x${X}`;if(typeof J.size==="number")return CJ(G,{size:J.size}),wJ(G,{dir:"right",size:J.size});return G}function Tz(Q,J={}){let{signed:X,size:G}=J,Y=BigInt(Q),q;if(G)if(X)q=(1n<<BigInt(G)*8n-1n)-1n;else q=2n**(BigInt(G)*8n)-1n;else if(typeof Q==="number")q=BigInt(Number.MAX_SAFE_INTEGER);let $=typeof q==="bigint"&&X?-q-1n:0;if(q&&Y>q||Y<$){let j=typeof Q==="bigint"?"n":"";throw new Qq({max:q?`${q}${j}`:void 0,min:`${$}${j}`,signed:X,size:G,value:`${Q}${j}`})}let W=`0x${(X&&Y<0?(1n<<BigInt(G*8))+BigInt(Y):Y).toString(16)}`;if(G)return wJ(W,{size:G});return W}var PT=new TextEncoder;function o9(Q,J={}){let X=PT.encode(Q);return b9(X,J)}var kT=new TextEncoder;function WE(Q,J={}){if(typeof Q==="number"||typeof Q==="bigint")return TT(Q,J);if(typeof Q==="boolean")return ZT(Q,J);if(sQ(Q))return jE(Q,J);return xz(Q,J)}function ZT(Q,J={}){let X=new Uint8Array(1);if(X[0]=Number(Q),typeof J.size==="number")return CJ(X,{size:J.size}),wJ(X,{size:J.size});return X}var iQ={zero:48,nine:57,A:65,F:70,a:97,f:102};function $E(Q){if(Q>=iQ.zero&&Q<=iQ.nine)return Q-iQ.zero;if(Q>=iQ.A&&Q<=iQ.F)return Q-(iQ.A-10);if(Q>=iQ.a&&Q<=iQ.f)return Q-(iQ.a-10);return}function jE(Q,J={}){let X=Q;if(J.size)CJ(X,{size:J.size}),X=wJ(X,{dir:"right",size:J.size});let G=X.slice(2);if(G.length%2)G=`0${G}`;let Y=G.length/2,q=new Uint8Array(Y);for(let $=0,W=0;$<Y;$++){let j=$E(G.charCodeAt(W++)),K=$E(G.charCodeAt(W++));if(j===void 0||K===void 0)throw new LQ(`Invalid byte sequence ("${G[W-2]}${G[W-1]}" in "${G}").`);q[$]=j*16+K}return q}function TT(Q,J){let X=Tz(Q,J);return jE(X)}function xz(Q,J={}){let X=kT.encode(Q);if(typeof J.size==="number")return CJ(X,{size:J.size}),wJ(X,{dir:"right",size:J.size});return X}function DY(Q,J){let X=J||"hex",G=YE(sQ(Q,{strict:!1})?WE(Q):Q);if(X==="bytes")return G;return Jq(G)}var KE=`\x19Ethereum Signed Message:
|
|
76
|
+
`;function zE(Q){if(typeof Q[0]==="string")return gT(Q);return xT(Q)}function xT(Q){let J=0;for(let Y of Q)J+=Y.length;let X=new Uint8Array(J),G=0;for(let Y of Q)X.set(Y,G),G+=Y.length;return X}function gT(Q){return`0x${Q.reduce((J,X)=>J+X.replace("0x",""),"")}`}function NE(Q){let J=(()=>{if(typeof Q==="string")return o9(Q);if(typeof Q.raw==="string")return Q.raw;return b9(Q.raw)})(),X=o9(`${KE}${BX(J)}`);return zE([X,J])}function UE(Q,J){return DY(NE(Q),J)}class gz extends Map{constructor(Q){super();Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=Q}get(Q){let J=super.get(Q);if(super.has(Q)&&J!==void 0)this.delete(Q),super.set(Q,J);return J}set(Q,J){if(super.set(Q,J),this.maxSize&&this.size>this.maxSize){let X=this.keys().next().value;if(X)this.delete(X)}return this}}var fz=new gz(8192);function ME(Q,J){if(fz.has(`${Q}.${J}`))return fz.get(`${Q}.${J}`);let X=J?`${J}${Q.toLowerCase()}`:Q.substring(2).toLowerCase(),G=DY(xz(X),"bytes"),Y=(J?X.substring(`${J}0x`.length):X).split("");for(let $=0;$<40;$+=2){if(G[$>>1]>>4>=8&&Y[$])Y[$]=Y[$].toUpperCase();if((G[$>>1]&15)>=8&&Y[$+1])Y[$+1]=Y[$+1].toUpperCase()}let q=`0x${Y.join("")}`;return fz.set(`${Q}.${J}`,q),q}function DE(Q){let J=DY(`0x${Q.substring(4)}`).substring(26);return ME(`0x${J}`)}async function $w({hash:Q,signature:J}){let X=sQ(Q)?Q:Jq(Q),{secp256k1:G}=await Promise.resolve().then(() => (Gw(),Yw));return`0x${(()=>{if(typeof J==="object"&&"r"in J&&"s"in J){let{r:K,s:z,v:N,yParity:U}=J,M=Number(U??N),D=qw(M);return new G.Signature(p9(K),p9(z)).addRecoveryBit(D)}let $=sQ(J)?J:Jq(J);if(BX($)!==65)throw Error("invalid signature length");let W=qE(`0x${$.slice(130)}`),j=qw(W);return G.Signature.fromCompact($.substring(2,130)).addRecoveryBit(j)})().recoverPublicKey(X.substring(2)).toHex(!1)}`}function qw(Q){if(Q===0||Q===1)return Q;if(Q===27)return 0;if(Q===28)return 1;throw Error("Invalid yParityOrV value")}async function Ww({hash:Q,signature:J}){return DE(await $w({hash:Q,signature:J}))}async function NN({message:Q,signature:J}){return Ww({hash:UE(Q),signature:J})}class Nx{signer;constructor(Q){this.signer=Q}async verifyPaySignature(Q){if(Q.functionName!=="pay")throw Error("verifyPaySignature can only verify core.pay signatures");let{success:J,error:X}=KY(jY).safeParse(Q);if(!J)throw Error(`The provided signedAction is not valid: ${X.message}`);let G=new qG({address:Q.contractAddress,signer:this.signer,chainId:Q.chainId}),Y=await G.getEvvmID(),q=G.buildHashPayload(Q.functionName,{to_address:Q.data.to_address,to_identity:Q.data.to_identity,token:Q.data.token,amount:Q.data.amount,priorityFee:Q.data.priorityFee}),$=G.buildMessageToSign(Y,Q.data.senderExecutor,q,Q.data.originExecutor,Q.data.nonce,Q.data.isAsyncExec);if(await NN({message:$,signature:Q.data.signature})!==Q.data.from)return console.error("Couldn't recover address from signature"),!1;if(Q.data.isAsyncExec){if(await G.getIfUsedAsyncNonce(Q.data.nonce))return console.error("Invalid async nonce"),!1}else if((await G.getNextCurrentSyncNonce()).toString()!=Q.data.nonce.toString())return console.error("Invalid sync nonce"),!1;if(await G.getBalance(Q.data.from,Q.data.token)<=Q.data.amount)return console.error("Insufficient balance"),!1;return!0}async settlePayment(Q){try{return await y7(this.signer,Q)}catch(J){return console.error("Failed to settle payment"),console.error(J),null}}}var R0={};HN(R0,{void:()=>ix,util:()=>D0,unknown:()=>rx,union:()=>ex,undefined:()=>bx,tuple:()=>Xg,transformer:()=>Ug,symbol:()=>px,string:()=>Bw,strictObject:()=>ax,setErrorMap:()=>Dx,set:()=>qg,record:()=>Yg,quotelessJson:()=>Ux,promise:()=>Ng,preprocess:()=>Og,pipeline:()=>Bg,ostring:()=>Rg,optional:()=>Mg,onumber:()=>Hg,oboolean:()=>Vg,objectUtil:()=>UN,object:()=>nx,number:()=>Rw,nullable:()=>Dg,null:()=>ox,never:()=>sx,nativeEnum:()=>zg,nan:()=>lx,map:()=>Gg,makeIssue:()=>Mq,literal:()=>jg,lazy:()=>Wg,late:()=>mx,isValid:()=>_J,isDirty:()=>e9,isAsync:()=>wY,isAborted:()=>a9,intersection:()=>Jg,instanceof:()=>yx,getParsedType:()=>wQ,getErrorMap:()=>EY,function:()=>$g,enum:()=>Kg,effect:()=>Ug,discriminatedUnion:()=>Qg,defaultErrorMap:()=>XJ,datetimeRegex:()=>Mw,date:()=>cx,custom:()=>Ow,coerce:()=>Lg,boolean:()=>Hw,bigint:()=>ux,array:()=>tx,any:()=>dx,addIssueToContext:()=>m,ZodVoid:()=>Oq,ZodUnknown:()=>FJ,ZodUnion:()=>_Y,ZodUndefined:()=>SY,ZodType:()=>U0,ZodTuple:()=>AQ,ZodTransformer:()=>jQ,ZodSymbol:()=>Dq,ZodString:()=>GQ,ZodSet:()=>CX,ZodSchema:()=>U0,ZodRecord:()=>Bq,ZodReadonly:()=>gY,ZodPromise:()=>AX,ZodPipeline:()=>Vq,ZodParsedType:()=>x,ZodOptional:()=>$Q,ZodObject:()=>f0,ZodNumber:()=>PJ,ZodNullable:()=>GJ,ZodNull:()=>vY,ZodNever:()=>CQ,ZodNativeEnum:()=>ZY,ZodNaN:()=>Hq,ZodMap:()=>Rq,ZodLiteral:()=>kY,ZodLazy:()=>PY,ZodIssueCode:()=>F,ZodIntersection:()=>FY,ZodFunction:()=>AY,ZodFirstPartyTypeKind:()=>X0,ZodError:()=>I8,ZodEnum:()=>ZJ,ZodEffects:()=>jQ,ZodDiscriminatedUnion:()=>QW,ZodDefault:()=>TY,ZodDate:()=>EX,ZodCatch:()=>xY,ZodBranded:()=>JW,ZodBoolean:()=>IY,ZodBigInt:()=>kJ,ZodArray:()=>qQ,ZodAny:()=>wX,Schema:()=>U0,ParseStatus:()=>X8,OK:()=>j8,NEVER:()=>Eg,INVALID:()=>Q0,EMPTY_PATH:()=>Ox,DIRTY:()=>LX,BRAND:()=>hx});var D0;(function(Q){Q.assertEqual=(Y)=>{};function J(Y){}Q.assertIs=J;function X(Y){throw Error()}Q.assertNever=X,Q.arrayToEnum=(Y)=>{let q={};for(let $ of Y)q[$]=$;return q},Q.getValidEnumValues=(Y)=>{let q=Q.objectKeys(Y).filter((W)=>typeof Y[Y[W]]!=="number"),$={};for(let W of q)$[W]=Y[W];return Q.objectValues($)},Q.objectValues=(Y)=>{return Q.objectKeys(Y).map(function(q){return Y[q]})},Q.objectKeys=typeof Object.keys==="function"?(Y)=>Object.keys(Y):(Y)=>{let q=[];for(let $ in Y)if(Object.prototype.hasOwnProperty.call(Y,$))q.push($);return q},Q.find=(Y,q)=>{for(let $ of Y)if(q($))return $;return},Q.isInteger=typeof Number.isInteger==="function"?(Y)=>Number.isInteger(Y):(Y)=>typeof Y==="number"&&Number.isFinite(Y)&&Math.floor(Y)===Y;function G(Y,q=" | "){return Y.map(($)=>typeof $==="string"?`'${$}'`:$).join(q)}Q.joinValues=G,Q.jsonStringifyReplacer=(Y,q)=>{if(typeof q==="bigint")return q.toString();return q}})(D0||(D0={}));var UN;(function(Q){Q.mergeShapes=(J,X)=>{return{...J,...X}}})(UN||(UN={}));var x=D0.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),wQ=(Q)=>{switch(typeof Q){case"undefined":return x.undefined;case"string":return x.string;case"number":return Number.isNaN(Q)?x.nan:x.number;case"boolean":return x.boolean;case"function":return x.function;case"bigint":return x.bigint;case"symbol":return x.symbol;case"object":if(Array.isArray(Q))return x.array;if(Q===null)return x.null;if(Q.then&&typeof Q.then==="function"&&Q.catch&&typeof Q.catch==="function")return x.promise;if(typeof Map<"u"&&Q instanceof Map)return x.map;if(typeof Set<"u"&&Q instanceof Set)return x.set;if(typeof Date<"u"&&Q instanceof Date)return x.date;return x.object;default:return x.unknown}};var F=D0.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Ux=(Q)=>{return JSON.stringify(Q,null,2).replace(/"([^"]+)":/g,"$1:")};class I8 extends Error{get errors(){return this.issues}constructor(Q){super();this.issues=[],this.addIssue=(X)=>{this.issues=[...this.issues,X]},this.addIssues=(X=[])=>{this.issues=[...this.issues,...X]};let J=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,J);else this.__proto__=J;this.name="ZodError",this.issues=Q}format(Q){let J=Q||function(Y){return Y.message},X={_errors:[]},G=(Y)=>{for(let q of Y.issues)if(q.code==="invalid_union")q.unionErrors.map(G);else if(q.code==="invalid_return_type")G(q.returnTypeError);else if(q.code==="invalid_arguments")G(q.argumentsError);else if(q.path.length===0)X._errors.push(J(q));else{let $=X,W=0;while(W<q.path.length){let j=q.path[W];if(W!==q.path.length-1)$[j]=$[j]||{_errors:[]};else $[j]=$[j]||{_errors:[]},$[j]._errors.push(J(q));$=$[j],W++}}};return G(this),X}static assert(Q){if(!(Q instanceof I8))throw Error(`Not a ZodError: ${Q}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,D0.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(Q=(J)=>J.message){let J={},X=[];for(let G of this.issues)if(G.path.length>0){let Y=G.path[0];J[Y]=J[Y]||[],J[Y].push(Q(G))}else X.push(Q(G));return{formErrors:X,fieldErrors:J}}get formErrors(){return this.flatten()}}I8.create=(Q)=>{return new I8(Q)};var Mx=(Q,J)=>{let X;switch(Q.code){case F.invalid_type:if(Q.received===x.undefined)X="Required";else X=`Expected ${Q.expected}, received ${Q.received}`;break;case F.invalid_literal:X=`Invalid literal value, expected ${JSON.stringify(Q.expected,D0.jsonStringifyReplacer)}`;break;case F.unrecognized_keys:X=`Unrecognized key(s) in object: ${D0.joinValues(Q.keys,", ")}`;break;case F.invalid_union:X="Invalid input";break;case F.invalid_union_discriminator:X=`Invalid discriminator value. Expected ${D0.joinValues(Q.options)}`;break;case F.invalid_enum_value:X=`Invalid enum value. Expected ${D0.joinValues(Q.options)}, received '${Q.received}'`;break;case F.invalid_arguments:X="Invalid function arguments";break;case F.invalid_return_type:X="Invalid function return type";break;case F.invalid_date:X="Invalid date";break;case F.invalid_string:if(typeof Q.validation==="object")if("includes"in Q.validation){if(X=`Invalid input: must include "${Q.validation.includes}"`,typeof Q.validation.position==="number")X=`${X} at one or more positions greater than or equal to ${Q.validation.position}`}else if("startsWith"in Q.validation)X=`Invalid input: must start with "${Q.validation.startsWith}"`;else if("endsWith"in Q.validation)X=`Invalid input: must end with "${Q.validation.endsWith}"`;else D0.assertNever(Q.validation);else if(Q.validation!=="regex")X=`Invalid ${Q.validation}`;else X="Invalid";break;case F.too_small:if(Q.type==="array")X=`Array must contain ${Q.exact?"exactly":Q.inclusive?"at least":"more than"} ${Q.minimum} element(s)`;else if(Q.type==="string")X=`String must contain ${Q.exact?"exactly":Q.inclusive?"at least":"over"} ${Q.minimum} character(s)`;else if(Q.type==="number")X=`Number must be ${Q.exact?"exactly equal to ":Q.inclusive?"greater than or equal to ":"greater than "}${Q.minimum}`;else if(Q.type==="bigint")X=`Number must be ${Q.exact?"exactly equal to ":Q.inclusive?"greater than or equal to ":"greater than "}${Q.minimum}`;else if(Q.type==="date")X=`Date must be ${Q.exact?"exactly equal to ":Q.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(Q.minimum))}`;else X="Invalid input";break;case F.too_big:if(Q.type==="array")X=`Array must contain ${Q.exact?"exactly":Q.inclusive?"at most":"less than"} ${Q.maximum} element(s)`;else if(Q.type==="string")X=`String must contain ${Q.exact?"exactly":Q.inclusive?"at most":"under"} ${Q.maximum} character(s)`;else if(Q.type==="number")X=`Number must be ${Q.exact?"exactly":Q.inclusive?"less than or equal to":"less than"} ${Q.maximum}`;else if(Q.type==="bigint")X=`BigInt must be ${Q.exact?"exactly":Q.inclusive?"less than or equal to":"less than"} ${Q.maximum}`;else if(Q.type==="date")X=`Date must be ${Q.exact?"exactly":Q.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(Q.maximum))}`;else X="Invalid input";break;case F.custom:X="Invalid input";break;case F.invalid_intersection_types:X="Intersection results could not be merged";break;case F.not_multiple_of:X=`Number must be a multiple of ${Q.multipleOf}`;break;case F.not_finite:X="Number must be finite";break;default:X=J.defaultError,D0.assertNever(Q)}return{message:X}},XJ=Mx;var jw=XJ;function Dx(Q){jw=Q}function EY(){return jw}var Mq=(Q)=>{let{data:J,path:X,errorMaps:G,issueData:Y}=Q,q=[...X,...Y.path||[]],$={...Y,path:q};if(Y.message!==void 0)return{...Y,path:q,message:Y.message};let W="",j=G.filter((K)=>!!K).slice().reverse();for(let K of j)W=K($,{data:J,defaultError:W}).message;return{...Y,path:q,message:W}},Ox=[];function m(Q,J){let X=EY(),G=Mq({issueData:J,data:Q.data,path:Q.path,errorMaps:[Q.common.contextualErrorMap,Q.schemaErrorMap,X,X===XJ?void 0:XJ].filter((Y)=>!!Y)});Q.common.issues.push(G)}class X8{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(Q,J){let X=[];for(let G of J){if(G.status==="aborted")return Q0;if(G.status==="dirty")Q.dirty();X.push(G.value)}return{status:Q.value,value:X}}static async mergeObjectAsync(Q,J){let X=[];for(let G of J){let Y=await G.key,q=await G.value;X.push({key:Y,value:q})}return X8.mergeObjectSync(Q,X)}static mergeObjectSync(Q,J){let X={};for(let G of J){let{key:Y,value:q}=G;if(Y.status==="aborted")return Q0;if(q.status==="aborted")return Q0;if(Y.status==="dirty")Q.dirty();if(q.status==="dirty")Q.dirty();if(Y.value!=="__proto__"&&(typeof q.value<"u"||G.alwaysSet))X[Y.value]=q.value}return{status:Q.value,value:X}}}var Q0=Object.freeze({status:"aborted"}),LX=(Q)=>({status:"dirty",value:Q}),j8=(Q)=>({status:"valid",value:Q}),a9=(Q)=>Q.status==="aborted",e9=(Q)=>Q.status==="dirty",_J=(Q)=>Q.status==="valid",wY=(Q)=>typeof Promise<"u"&&Q instanceof Promise;var t;(function(Q){Q.errToObj=(J)=>typeof J==="string"?{message:J}:J||{},Q.toString=(J)=>typeof J==="string"?J:J?.message})(t||(t={}));class WQ{constructor(Q,J,X,G){this._cachedPath=[],this.parent=Q,this.data=J,this._path=X,this._key=G}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var Kw=(Q,J)=>{if(_J(J))return{success:!0,data:J.value};else{if(!Q.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let X=new I8(Q.common.issues);return this._error=X,this._error}}}};function $0(Q){if(!Q)return{};let{errorMap:J,invalid_type_error:X,required_error:G,description:Y}=Q;if(J&&(X||G))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(J)return{errorMap:J,description:Y};return{errorMap:($,W)=>{let{message:j}=Q;if($.code==="invalid_enum_value")return{message:j??W.defaultError};if(typeof W.data>"u")return{message:j??G??W.defaultError};if($.code!=="invalid_type")return{message:W.defaultError};return{message:j??X??W.defaultError}},description:Y}}class U0{get description(){return this._def.description}_getType(Q){return wQ(Q.data)}_getOrReturnCtx(Q,J){return J||{common:Q.parent.common,data:Q.data,parsedType:wQ(Q.data),schemaErrorMap:this._def.errorMap,path:Q.path,parent:Q.parent}}_processInputParams(Q){return{status:new X8,ctx:{common:Q.parent.common,data:Q.data,parsedType:wQ(Q.data),schemaErrorMap:this._def.errorMap,path:Q.path,parent:Q.parent}}}_parseSync(Q){let J=this._parse(Q);if(wY(J))throw Error("Synchronous parse encountered promise.");return J}_parseAsync(Q){let J=this._parse(Q);return Promise.resolve(J)}parse(Q,J){let X=this.safeParse(Q,J);if(X.success)return X.data;throw X.error}safeParse(Q,J){let X={common:{issues:[],async:J?.async??!1,contextualErrorMap:J?.errorMap},path:J?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:Q,parsedType:wQ(Q)},G=this._parseSync({data:Q,path:X.path,parent:X});return Kw(X,G)}"~validate"(Q){let J={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:Q,parsedType:wQ(Q)};if(!this["~standard"].async)try{let X=this._parseSync({data:Q,path:[],parent:J});return _J(X)?{value:X.value}:{issues:J.common.issues}}catch(X){if(X?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;J.common={issues:[],async:!0}}return this._parseAsync({data:Q,path:[],parent:J}).then((X)=>_J(X)?{value:X.value}:{issues:J.common.issues})}async parseAsync(Q,J){let X=await this.safeParseAsync(Q,J);if(X.success)return X.data;throw X.error}async safeParseAsync(Q,J){let X={common:{issues:[],contextualErrorMap:J?.errorMap,async:!0},path:J?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:Q,parsedType:wQ(Q)},G=this._parse({data:Q,path:X.path,parent:X}),Y=await(wY(G)?G:Promise.resolve(G));return Kw(X,Y)}refine(Q,J){let X=(G)=>{if(typeof J==="string"||typeof J>"u")return{message:J};else if(typeof J==="function")return J(G);else return J};return this._refinement((G,Y)=>{let q=Q(G),$=()=>Y.addIssue({code:F.custom,...X(G)});if(typeof Promise<"u"&&q instanceof Promise)return q.then((W)=>{if(!W)return $(),!1;else return!0});if(!q)return $(),!1;else return!0})}refinement(Q,J){return this._refinement((X,G)=>{if(!Q(X))return G.addIssue(typeof J==="function"?J(X,G):J),!1;else return!0})}_refinement(Q){return new jQ({schema:this,typeName:X0.ZodEffects,effect:{type:"refinement",refinement:Q}})}superRefine(Q){return this._refinement(Q)}constructor(Q){this.spa=this.safeParseAsync,this._def=Q,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(J)=>this["~validate"](J)}}optional(){return $Q.create(this,this._def)}nullable(){return GJ.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return qQ.create(this)}promise(){return AX.create(this,this._def)}or(Q){return _Y.create([this,Q],this._def)}and(Q){return FY.create(this,Q,this._def)}transform(Q){return new jQ({...$0(this._def),schema:this,typeName:X0.ZodEffects,effect:{type:"transform",transform:Q}})}default(Q){let J=typeof Q==="function"?Q:()=>Q;return new TY({...$0(this._def),innerType:this,defaultValue:J,typeName:X0.ZodDefault})}brand(){return new JW({typeName:X0.ZodBranded,type:this,...$0(this._def)})}catch(Q){let J=typeof Q==="function"?Q:()=>Q;return new xY({...$0(this._def),innerType:this,catchValue:J,typeName:X0.ZodCatch})}describe(Q){return new this.constructor({...this._def,description:Q})}pipe(Q){return Vq.create(this,Q)}readonly(){return gY.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var Bx=/^c[^\s-]{8,}$/i,Rx=/^[0-9a-z]+$/,Hx=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Vx=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Lx=/^[a-z0-9_-]{21}$/i,Ex=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,wx=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Cx=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Ax="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",MN,Ix=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Sx=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,vx=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,_x=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Fx=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Px=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Nw="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",kx=new RegExp(`^${Nw}$`);function Uw(Q){let J="[0-5]\\d";if(Q.precision)J=`${J}\\.\\d{${Q.precision}}`;else if(Q.precision==null)J=`${J}(\\.\\d+)?`;let X=Q.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${J})${X}`}function Zx(Q){return new RegExp(`^${Uw(Q)}$`)}function Mw(Q){let J=`${Nw}T${Uw(Q)}`,X=[];if(X.push(Q.local?"Z?":"Z"),Q.offset)X.push("([+-]\\d{2}:?\\d{2})");return J=`${J}(${X.join("|")})`,new RegExp(`^${J}$`)}function Tx(Q,J){if((J==="v4"||!J)&&Ix.test(Q))return!0;if((J==="v6"||!J)&&vx.test(Q))return!0;return!1}function xx(Q,J){if(!Ex.test(Q))return!1;try{let[X]=Q.split(".");if(!X)return!1;let G=X.replace(/-/g,"+").replace(/_/g,"/").padEnd(X.length+(4-X.length%4)%4,"="),Y=JSON.parse(atob(G));if(typeof Y!=="object"||Y===null)return!1;if("typ"in Y&&Y?.typ!=="JWT")return!1;if(!Y.alg)return!1;if(J&&Y.alg!==J)return!1;return!0}catch{return!1}}function gx(Q,J){if((J==="v4"||!J)&&Sx.test(Q))return!0;if((J==="v6"||!J)&&_x.test(Q))return!0;return!1}class GQ extends U0{_parse(Q){if(this._def.coerce)Q.data=String(Q.data);if(this._getType(Q)!==x.string){let Y=this._getOrReturnCtx(Q);return m(Y,{code:F.invalid_type,expected:x.string,received:Y.parsedType}),Q0}let X=new X8,G=void 0;for(let Y of this._def.checks)if(Y.kind==="min"){if(Q.data.length<Y.value)G=this._getOrReturnCtx(Q,G),m(G,{code:F.too_small,minimum:Y.value,type:"string",inclusive:!0,exact:!1,message:Y.message}),X.dirty()}else if(Y.kind==="max"){if(Q.data.length>Y.value)G=this._getOrReturnCtx(Q,G),m(G,{code:F.too_big,maximum:Y.value,type:"string",inclusive:!0,exact:!1,message:Y.message}),X.dirty()}else if(Y.kind==="length"){let q=Q.data.length>Y.value,$=Q.data.length<Y.value;if(q||$){if(G=this._getOrReturnCtx(Q,G),q)m(G,{code:F.too_big,maximum:Y.value,type:"string",inclusive:!0,exact:!0,message:Y.message});else if($)m(G,{code:F.too_small,minimum:Y.value,type:"string",inclusive:!0,exact:!0,message:Y.message});X.dirty()}}else if(Y.kind==="email"){if(!Cx.test(Q.data))G=this._getOrReturnCtx(Q,G),m(G,{validation:"email",code:F.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="emoji"){if(!MN)MN=new RegExp(Ax,"u");if(!MN.test(Q.data))G=this._getOrReturnCtx(Q,G),m(G,{validation:"emoji",code:F.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="uuid"){if(!Vx.test(Q.data))G=this._getOrReturnCtx(Q,G),m(G,{validation:"uuid",code:F.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="nanoid"){if(!Lx.test(Q.data))G=this._getOrReturnCtx(Q,G),m(G,{validation:"nanoid",code:F.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="cuid"){if(!Bx.test(Q.data))G=this._getOrReturnCtx(Q,G),m(G,{validation:"cuid",code:F.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="cuid2"){if(!Rx.test(Q.data))G=this._getOrReturnCtx(Q,G),m(G,{validation:"cuid2",code:F.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="ulid"){if(!Hx.test(Q.data))G=this._getOrReturnCtx(Q,G),m(G,{validation:"ulid",code:F.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="url")try{new URL(Q.data)}catch{G=this._getOrReturnCtx(Q,G),m(G,{validation:"url",code:F.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="regex"){if(Y.regex.lastIndex=0,!Y.regex.test(Q.data))G=this._getOrReturnCtx(Q,G),m(G,{validation:"regex",code:F.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="trim")Q.data=Q.data.trim();else if(Y.kind==="includes"){if(!Q.data.includes(Y.value,Y.position))G=this._getOrReturnCtx(Q,G),m(G,{code:F.invalid_string,validation:{includes:Y.value,position:Y.position},message:Y.message}),X.dirty()}else if(Y.kind==="toLowerCase")Q.data=Q.data.toLowerCase();else if(Y.kind==="toUpperCase")Q.data=Q.data.toUpperCase();else if(Y.kind==="startsWith"){if(!Q.data.startsWith(Y.value))G=this._getOrReturnCtx(Q,G),m(G,{code:F.invalid_string,validation:{startsWith:Y.value},message:Y.message}),X.dirty()}else if(Y.kind==="endsWith"){if(!Q.data.endsWith(Y.value))G=this._getOrReturnCtx(Q,G),m(G,{code:F.invalid_string,validation:{endsWith:Y.value},message:Y.message}),X.dirty()}else if(Y.kind==="datetime"){if(!Mw(Y).test(Q.data))G=this._getOrReturnCtx(Q,G),m(G,{code:F.invalid_string,validation:"datetime",message:Y.message}),X.dirty()}else if(Y.kind==="date"){if(!kx.test(Q.data))G=this._getOrReturnCtx(Q,G),m(G,{code:F.invalid_string,validation:"date",message:Y.message}),X.dirty()}else if(Y.kind==="time"){if(!Zx(Y).test(Q.data))G=this._getOrReturnCtx(Q,G),m(G,{code:F.invalid_string,validation:"time",message:Y.message}),X.dirty()}else if(Y.kind==="duration"){if(!wx.test(Q.data))G=this._getOrReturnCtx(Q,G),m(G,{validation:"duration",code:F.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="ip"){if(!Tx(Q.data,Y.version))G=this._getOrReturnCtx(Q,G),m(G,{validation:"ip",code:F.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="jwt"){if(!xx(Q.data,Y.alg))G=this._getOrReturnCtx(Q,G),m(G,{validation:"jwt",code:F.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="cidr"){if(!gx(Q.data,Y.version))G=this._getOrReturnCtx(Q,G),m(G,{validation:"cidr",code:F.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="base64"){if(!Fx.test(Q.data))G=this._getOrReturnCtx(Q,G),m(G,{validation:"base64",code:F.invalid_string,message:Y.message}),X.dirty()}else if(Y.kind==="base64url"){if(!Px.test(Q.data))G=this._getOrReturnCtx(Q,G),m(G,{validation:"base64url",code:F.invalid_string,message:Y.message}),X.dirty()}else D0.assertNever(Y);return{status:X.value,value:Q.data}}_regex(Q,J,X){return this.refinement((G)=>Q.test(G),{validation:J,code:F.invalid_string,...t.errToObj(X)})}_addCheck(Q){return new GQ({...this._def,checks:[...this._def.checks,Q]})}email(Q){return this._addCheck({kind:"email",...t.errToObj(Q)})}url(Q){return this._addCheck({kind:"url",...t.errToObj(Q)})}emoji(Q){return this._addCheck({kind:"emoji",...t.errToObj(Q)})}uuid(Q){return this._addCheck({kind:"uuid",...t.errToObj(Q)})}nanoid(Q){return this._addCheck({kind:"nanoid",...t.errToObj(Q)})}cuid(Q){return this._addCheck({kind:"cuid",...t.errToObj(Q)})}cuid2(Q){return this._addCheck({kind:"cuid2",...t.errToObj(Q)})}ulid(Q){return this._addCheck({kind:"ulid",...t.errToObj(Q)})}base64(Q){return this._addCheck({kind:"base64",...t.errToObj(Q)})}base64url(Q){return this._addCheck({kind:"base64url",...t.errToObj(Q)})}jwt(Q){return this._addCheck({kind:"jwt",...t.errToObj(Q)})}ip(Q){return this._addCheck({kind:"ip",...t.errToObj(Q)})}cidr(Q){return this._addCheck({kind:"cidr",...t.errToObj(Q)})}datetime(Q){if(typeof Q==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:Q});return this._addCheck({kind:"datetime",precision:typeof Q?.precision>"u"?null:Q?.precision,offset:Q?.offset??!1,local:Q?.local??!1,...t.errToObj(Q?.message)})}date(Q){return this._addCheck({kind:"date",message:Q})}time(Q){if(typeof Q==="string")return this._addCheck({kind:"time",precision:null,message:Q});return this._addCheck({kind:"time",precision:typeof Q?.precision>"u"?null:Q?.precision,...t.errToObj(Q?.message)})}duration(Q){return this._addCheck({kind:"duration",...t.errToObj(Q)})}regex(Q,J){return this._addCheck({kind:"regex",regex:Q,...t.errToObj(J)})}includes(Q,J){return this._addCheck({kind:"includes",value:Q,position:J?.position,...t.errToObj(J?.message)})}startsWith(Q,J){return this._addCheck({kind:"startsWith",value:Q,...t.errToObj(J)})}endsWith(Q,J){return this._addCheck({kind:"endsWith",value:Q,...t.errToObj(J)})}min(Q,J){return this._addCheck({kind:"min",value:Q,...t.errToObj(J)})}max(Q,J){return this._addCheck({kind:"max",value:Q,...t.errToObj(J)})}length(Q,J){return this._addCheck({kind:"length",value:Q,...t.errToObj(J)})}nonempty(Q){return this.min(1,t.errToObj(Q))}trim(){return new GQ({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new GQ({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new GQ({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((Q)=>Q.kind==="datetime")}get isDate(){return!!this._def.checks.find((Q)=>Q.kind==="date")}get isTime(){return!!this._def.checks.find((Q)=>Q.kind==="time")}get isDuration(){return!!this._def.checks.find((Q)=>Q.kind==="duration")}get isEmail(){return!!this._def.checks.find((Q)=>Q.kind==="email")}get isURL(){return!!this._def.checks.find((Q)=>Q.kind==="url")}get isEmoji(){return!!this._def.checks.find((Q)=>Q.kind==="emoji")}get isUUID(){return!!this._def.checks.find((Q)=>Q.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((Q)=>Q.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((Q)=>Q.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((Q)=>Q.kind==="cuid2")}get isULID(){return!!this._def.checks.find((Q)=>Q.kind==="ulid")}get isIP(){return!!this._def.checks.find((Q)=>Q.kind==="ip")}get isCIDR(){return!!this._def.checks.find((Q)=>Q.kind==="cidr")}get isBase64(){return!!this._def.checks.find((Q)=>Q.kind==="base64")}get isBase64url(){return!!this._def.checks.find((Q)=>Q.kind==="base64url")}get minLength(){let Q=null;for(let J of this._def.checks)if(J.kind==="min"){if(Q===null||J.value>Q)Q=J.value}return Q}get maxLength(){let Q=null;for(let J of this._def.checks)if(J.kind==="max"){if(Q===null||J.value<Q)Q=J.value}return Q}}GQ.create=(Q)=>{return new GQ({checks:[],typeName:X0.ZodString,coerce:Q?.coerce??!1,...$0(Q)})};function fx(Q,J){let X=(Q.toString().split(".")[1]||"").length,G=(J.toString().split(".")[1]||"").length,Y=X>G?X:G,q=Number.parseInt(Q.toFixed(Y).replace(".","")),$=Number.parseInt(J.toFixed(Y).replace(".",""));return q%$/10**Y}class PJ extends U0{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(Q){if(this._def.coerce)Q.data=Number(Q.data);if(this._getType(Q)!==x.number){let Y=this._getOrReturnCtx(Q);return m(Y,{code:F.invalid_type,expected:x.number,received:Y.parsedType}),Q0}let X=void 0,G=new X8;for(let Y of this._def.checks)if(Y.kind==="int"){if(!D0.isInteger(Q.data))X=this._getOrReturnCtx(Q,X),m(X,{code:F.invalid_type,expected:"integer",received:"float",message:Y.message}),G.dirty()}else if(Y.kind==="min"){if(Y.inclusive?Q.data<Y.value:Q.data<=Y.value)X=this._getOrReturnCtx(Q,X),m(X,{code:F.too_small,minimum:Y.value,type:"number",inclusive:Y.inclusive,exact:!1,message:Y.message}),G.dirty()}else if(Y.kind==="max"){if(Y.inclusive?Q.data>Y.value:Q.data>=Y.value)X=this._getOrReturnCtx(Q,X),m(X,{code:F.too_big,maximum:Y.value,type:"number",inclusive:Y.inclusive,exact:!1,message:Y.message}),G.dirty()}else if(Y.kind==="multipleOf"){if(fx(Q.data,Y.value)!==0)X=this._getOrReturnCtx(Q,X),m(X,{code:F.not_multiple_of,multipleOf:Y.value,message:Y.message}),G.dirty()}else if(Y.kind==="finite"){if(!Number.isFinite(Q.data))X=this._getOrReturnCtx(Q,X),m(X,{code:F.not_finite,message:Y.message}),G.dirty()}else D0.assertNever(Y);return{status:G.value,value:Q.data}}gte(Q,J){return this.setLimit("min",Q,!0,t.toString(J))}gt(Q,J){return this.setLimit("min",Q,!1,t.toString(J))}lte(Q,J){return this.setLimit("max",Q,!0,t.toString(J))}lt(Q,J){return this.setLimit("max",Q,!1,t.toString(J))}setLimit(Q,J,X,G){return new PJ({...this._def,checks:[...this._def.checks,{kind:Q,value:J,inclusive:X,message:t.toString(G)}]})}_addCheck(Q){return new PJ({...this._def,checks:[...this._def.checks,Q]})}int(Q){return this._addCheck({kind:"int",message:t.toString(Q)})}positive(Q){return this._addCheck({kind:"min",value:0,inclusive:!1,message:t.toString(Q)})}negative(Q){return this._addCheck({kind:"max",value:0,inclusive:!1,message:t.toString(Q)})}nonpositive(Q){return this._addCheck({kind:"max",value:0,inclusive:!0,message:t.toString(Q)})}nonnegative(Q){return this._addCheck({kind:"min",value:0,inclusive:!0,message:t.toString(Q)})}multipleOf(Q,J){return this._addCheck({kind:"multipleOf",value:Q,message:t.toString(J)})}finite(Q){return this._addCheck({kind:"finite",message:t.toString(Q)})}safe(Q){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:t.toString(Q)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:t.toString(Q)})}get minValue(){let Q=null;for(let J of this._def.checks)if(J.kind==="min"){if(Q===null||J.value>Q)Q=J.value}return Q}get maxValue(){let Q=null;for(let J of this._def.checks)if(J.kind==="max"){if(Q===null||J.value<Q)Q=J.value}return Q}get isInt(){return!!this._def.checks.find((Q)=>Q.kind==="int"||Q.kind==="multipleOf"&&D0.isInteger(Q.value))}get isFinite(){let Q=null,J=null;for(let X of this._def.checks)if(X.kind==="finite"||X.kind==="int"||X.kind==="multipleOf")return!0;else if(X.kind==="min"){if(J===null||X.value>J)J=X.value}else if(X.kind==="max"){if(Q===null||X.value<Q)Q=X.value}return Number.isFinite(J)&&Number.isFinite(Q)}}PJ.create=(Q)=>{return new PJ({checks:[],typeName:X0.ZodNumber,coerce:Q?.coerce||!1,...$0(Q)})};class kJ extends U0{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(Q){if(this._def.coerce)try{Q.data=BigInt(Q.data)}catch{return this._getInvalidInput(Q)}if(this._getType(Q)!==x.bigint)return this._getInvalidInput(Q);let X=void 0,G=new X8;for(let Y of this._def.checks)if(Y.kind==="min"){if(Y.inclusive?Q.data<Y.value:Q.data<=Y.value)X=this._getOrReturnCtx(Q,X),m(X,{code:F.too_small,type:"bigint",minimum:Y.value,inclusive:Y.inclusive,message:Y.message}),G.dirty()}else if(Y.kind==="max"){if(Y.inclusive?Q.data>Y.value:Q.data>=Y.value)X=this._getOrReturnCtx(Q,X),m(X,{code:F.too_big,type:"bigint",maximum:Y.value,inclusive:Y.inclusive,message:Y.message}),G.dirty()}else if(Y.kind==="multipleOf"){if(Q.data%Y.value!==BigInt(0))X=this._getOrReturnCtx(Q,X),m(X,{code:F.not_multiple_of,multipleOf:Y.value,message:Y.message}),G.dirty()}else D0.assertNever(Y);return{status:G.value,value:Q.data}}_getInvalidInput(Q){let J=this._getOrReturnCtx(Q);return m(J,{code:F.invalid_type,expected:x.bigint,received:J.parsedType}),Q0}gte(Q,J){return this.setLimit("min",Q,!0,t.toString(J))}gt(Q,J){return this.setLimit("min",Q,!1,t.toString(J))}lte(Q,J){return this.setLimit("max",Q,!0,t.toString(J))}lt(Q,J){return this.setLimit("max",Q,!1,t.toString(J))}setLimit(Q,J,X,G){return new kJ({...this._def,checks:[...this._def.checks,{kind:Q,value:J,inclusive:X,message:t.toString(G)}]})}_addCheck(Q){return new kJ({...this._def,checks:[...this._def.checks,Q]})}positive(Q){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:t.toString(Q)})}negative(Q){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:t.toString(Q)})}nonpositive(Q){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:t.toString(Q)})}nonnegative(Q){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:t.toString(Q)})}multipleOf(Q,J){return this._addCheck({kind:"multipleOf",value:Q,message:t.toString(J)})}get minValue(){let Q=null;for(let J of this._def.checks)if(J.kind==="min"){if(Q===null||J.value>Q)Q=J.value}return Q}get maxValue(){let Q=null;for(let J of this._def.checks)if(J.kind==="max"){if(Q===null||J.value<Q)Q=J.value}return Q}}kJ.create=(Q)=>{return new kJ({checks:[],typeName:X0.ZodBigInt,coerce:Q?.coerce??!1,...$0(Q)})};class IY extends U0{_parse(Q){if(this._def.coerce)Q.data=Boolean(Q.data);if(this._getType(Q)!==x.boolean){let X=this._getOrReturnCtx(Q);return m(X,{code:F.invalid_type,expected:x.boolean,received:X.parsedType}),Q0}return j8(Q.data)}}IY.create=(Q)=>{return new IY({typeName:X0.ZodBoolean,coerce:Q?.coerce||!1,...$0(Q)})};class EX extends U0{_parse(Q){if(this._def.coerce)Q.data=new Date(Q.data);if(this._getType(Q)!==x.date){let Y=this._getOrReturnCtx(Q);return m(Y,{code:F.invalid_type,expected:x.date,received:Y.parsedType}),Q0}if(Number.isNaN(Q.data.getTime())){let Y=this._getOrReturnCtx(Q);return m(Y,{code:F.invalid_date}),Q0}let X=new X8,G=void 0;for(let Y of this._def.checks)if(Y.kind==="min"){if(Q.data.getTime()<Y.value)G=this._getOrReturnCtx(Q,G),m(G,{code:F.too_small,message:Y.message,inclusive:!0,exact:!1,minimum:Y.value,type:"date"}),X.dirty()}else if(Y.kind==="max"){if(Q.data.getTime()>Y.value)G=this._getOrReturnCtx(Q,G),m(G,{code:F.too_big,message:Y.message,inclusive:!0,exact:!1,maximum:Y.value,type:"date"}),X.dirty()}else D0.assertNever(Y);return{status:X.value,value:new Date(Q.data.getTime())}}_addCheck(Q){return new EX({...this._def,checks:[...this._def.checks,Q]})}min(Q,J){return this._addCheck({kind:"min",value:Q.getTime(),message:t.toString(J)})}max(Q,J){return this._addCheck({kind:"max",value:Q.getTime(),message:t.toString(J)})}get minDate(){let Q=null;for(let J of this._def.checks)if(J.kind==="min"){if(Q===null||J.value>Q)Q=J.value}return Q!=null?new Date(Q):null}get maxDate(){let Q=null;for(let J of this._def.checks)if(J.kind==="max"){if(Q===null||J.value<Q)Q=J.value}return Q!=null?new Date(Q):null}}EX.create=(Q)=>{return new EX({checks:[],coerce:Q?.coerce||!1,typeName:X0.ZodDate,...$0(Q)})};class Dq extends U0{_parse(Q){if(this._getType(Q)!==x.symbol){let X=this._getOrReturnCtx(Q);return m(X,{code:F.invalid_type,expected:x.symbol,received:X.parsedType}),Q0}return j8(Q.data)}}Dq.create=(Q)=>{return new Dq({typeName:X0.ZodSymbol,...$0(Q)})};class SY extends U0{_parse(Q){if(this._getType(Q)!==x.undefined){let X=this._getOrReturnCtx(Q);return m(X,{code:F.invalid_type,expected:x.undefined,received:X.parsedType}),Q0}return j8(Q.data)}}SY.create=(Q)=>{return new SY({typeName:X0.ZodUndefined,...$0(Q)})};class vY extends U0{_parse(Q){if(this._getType(Q)!==x.null){let X=this._getOrReturnCtx(Q);return m(X,{code:F.invalid_type,expected:x.null,received:X.parsedType}),Q0}return j8(Q.data)}}vY.create=(Q)=>{return new vY({typeName:X0.ZodNull,...$0(Q)})};class wX extends U0{constructor(){super(...arguments);this._any=!0}_parse(Q){return j8(Q.data)}}wX.create=(Q)=>{return new wX({typeName:X0.ZodAny,...$0(Q)})};class FJ extends U0{constructor(){super(...arguments);this._unknown=!0}_parse(Q){return j8(Q.data)}}FJ.create=(Q)=>{return new FJ({typeName:X0.ZodUnknown,...$0(Q)})};class CQ extends U0{_parse(Q){let J=this._getOrReturnCtx(Q);return m(J,{code:F.invalid_type,expected:x.never,received:J.parsedType}),Q0}}CQ.create=(Q)=>{return new CQ({typeName:X0.ZodNever,...$0(Q)})};class Oq extends U0{_parse(Q){if(this._getType(Q)!==x.undefined){let X=this._getOrReturnCtx(Q);return m(X,{code:F.invalid_type,expected:x.void,received:X.parsedType}),Q0}return j8(Q.data)}}Oq.create=(Q)=>{return new Oq({typeName:X0.ZodVoid,...$0(Q)})};class qQ extends U0{_parse(Q){let{ctx:J,status:X}=this._processInputParams(Q),G=this._def;if(J.parsedType!==x.array)return m(J,{code:F.invalid_type,expected:x.array,received:J.parsedType}),Q0;if(G.exactLength!==null){let q=J.data.length>G.exactLength.value,$=J.data.length<G.exactLength.value;if(q||$)m(J,{code:q?F.too_big:F.too_small,minimum:$?G.exactLength.value:void 0,maximum:q?G.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:G.exactLength.message}),X.dirty()}if(G.minLength!==null){if(J.data.length<G.minLength.value)m(J,{code:F.too_small,minimum:G.minLength.value,type:"array",inclusive:!0,exact:!1,message:G.minLength.message}),X.dirty()}if(G.maxLength!==null){if(J.data.length>G.maxLength.value)m(J,{code:F.too_big,maximum:G.maxLength.value,type:"array",inclusive:!0,exact:!1,message:G.maxLength.message}),X.dirty()}if(J.common.async)return Promise.all([...J.data].map((q,$)=>{return G.type._parseAsync(new WQ(J,q,J.path,$))})).then((q)=>{return X8.mergeArray(X,q)});let Y=[...J.data].map((q,$)=>{return G.type._parseSync(new WQ(J,q,J.path,$))});return X8.mergeArray(X,Y)}get element(){return this._def.type}min(Q,J){return new qQ({...this._def,minLength:{value:Q,message:t.toString(J)}})}max(Q,J){return new qQ({...this._def,maxLength:{value:Q,message:t.toString(J)}})}length(Q,J){return new qQ({...this._def,exactLength:{value:Q,message:t.toString(J)}})}nonempty(Q){return this.min(1,Q)}}qQ.create=(Q,J)=>{return new qQ({type:Q,minLength:null,maxLength:null,exactLength:null,typeName:X0.ZodArray,...$0(J)})};function CY(Q){if(Q instanceof f0){let J={};for(let X in Q.shape){let G=Q.shape[X];J[X]=$Q.create(CY(G))}return new f0({...Q._def,shape:()=>J})}else if(Q instanceof qQ)return new qQ({...Q._def,type:CY(Q.element)});else if(Q instanceof $Q)return $Q.create(CY(Q.unwrap()));else if(Q instanceof GJ)return GJ.create(CY(Q.unwrap()));else if(Q instanceof AQ)return AQ.create(Q.items.map((J)=>CY(J)));else return Q}class f0 extends U0{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let Q=this._def.shape(),J=D0.objectKeys(Q);return this._cached={shape:Q,keys:J},this._cached}_parse(Q){if(this._getType(Q)!==x.object){let j=this._getOrReturnCtx(Q);return m(j,{code:F.invalid_type,expected:x.object,received:j.parsedType}),Q0}let{status:X,ctx:G}=this._processInputParams(Q),{shape:Y,keys:q}=this._getCached(),$=[];if(!(this._def.catchall instanceof CQ&&this._def.unknownKeys==="strip")){for(let j in G.data)if(!q.includes(j))$.push(j)}let W=[];for(let j of q){let K=Y[j],z=G.data[j];W.push({key:{status:"valid",value:j},value:K._parse(new WQ(G,z,G.path,j)),alwaysSet:j in G.data})}if(this._def.catchall instanceof CQ){let j=this._def.unknownKeys;if(j==="passthrough")for(let K of $)W.push({key:{status:"valid",value:K},value:{status:"valid",value:G.data[K]}});else if(j==="strict"){if($.length>0)m(G,{code:F.unrecognized_keys,keys:$}),X.dirty()}else if(j==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let j=this._def.catchall;for(let K of $){let z=G.data[K];W.push({key:{status:"valid",value:K},value:j._parse(new WQ(G,z,G.path,K)),alwaysSet:K in G.data})}}if(G.common.async)return Promise.resolve().then(async()=>{let j=[];for(let K of W){let z=await K.key,N=await K.value;j.push({key:z,value:N,alwaysSet:K.alwaysSet})}return j}).then((j)=>{return X8.mergeObjectSync(X,j)});else return X8.mergeObjectSync(X,W)}get shape(){return this._def.shape()}strict(Q){return t.errToObj,new f0({...this._def,unknownKeys:"strict",...Q!==void 0?{errorMap:(J,X)=>{let G=this._def.errorMap?.(J,X).message??X.defaultError;if(J.code==="unrecognized_keys")return{message:t.errToObj(Q).message??G};return{message:G}}}:{}})}strip(){return new f0({...this._def,unknownKeys:"strip"})}passthrough(){return new f0({...this._def,unknownKeys:"passthrough"})}extend(Q){return new f0({...this._def,shape:()=>({...this._def.shape(),...Q})})}merge(Q){return new f0({unknownKeys:Q._def.unknownKeys,catchall:Q._def.catchall,shape:()=>({...this._def.shape(),...Q._def.shape()}),typeName:X0.ZodObject})}setKey(Q,J){return this.augment({[Q]:J})}catchall(Q){return new f0({...this._def,catchall:Q})}pick(Q){let J={};for(let X of D0.objectKeys(Q))if(Q[X]&&this.shape[X])J[X]=this.shape[X];return new f0({...this._def,shape:()=>J})}omit(Q){let J={};for(let X of D0.objectKeys(this.shape))if(!Q[X])J[X]=this.shape[X];return new f0({...this._def,shape:()=>J})}deepPartial(){return CY(this)}partial(Q){let J={};for(let X of D0.objectKeys(this.shape)){let G=this.shape[X];if(Q&&!Q[X])J[X]=G;else J[X]=G.optional()}return new f0({...this._def,shape:()=>J})}required(Q){let J={};for(let X of D0.objectKeys(this.shape))if(Q&&!Q[X])J[X]=this.shape[X];else{let Y=this.shape[X];while(Y instanceof $Q)Y=Y._def.innerType;J[X]=Y}return new f0({...this._def,shape:()=>J})}keyof(){return Dw(D0.objectKeys(this.shape))}}f0.create=(Q,J)=>{return new f0({shape:()=>Q,unknownKeys:"strip",catchall:CQ.create(),typeName:X0.ZodObject,...$0(J)})};f0.strictCreate=(Q,J)=>{return new f0({shape:()=>Q,unknownKeys:"strict",catchall:CQ.create(),typeName:X0.ZodObject,...$0(J)})};f0.lazycreate=(Q,J)=>{return new f0({shape:Q,unknownKeys:"strip",catchall:CQ.create(),typeName:X0.ZodObject,...$0(J)})};class _Y extends U0{_parse(Q){let{ctx:J}=this._processInputParams(Q),X=this._def.options;function G(Y){for(let $ of Y)if($.result.status==="valid")return $.result;for(let $ of Y)if($.result.status==="dirty")return J.common.issues.push(...$.ctx.common.issues),$.result;let q=Y.map(($)=>new I8($.ctx.common.issues));return m(J,{code:F.invalid_union,unionErrors:q}),Q0}if(J.common.async)return Promise.all(X.map(async(Y)=>{let q={...J,common:{...J.common,issues:[]},parent:null};return{result:await Y._parseAsync({data:J.data,path:J.path,parent:q}),ctx:q}})).then(G);else{let Y=void 0,q=[];for(let W of X){let j={...J,common:{...J.common,issues:[]},parent:null},K=W._parseSync({data:J.data,path:J.path,parent:j});if(K.status==="valid")return K;else if(K.status==="dirty"&&!Y)Y={result:K,ctx:j};if(j.common.issues.length)q.push(j.common.issues)}if(Y)return J.common.issues.push(...Y.ctx.common.issues),Y.result;let $=q.map((W)=>new I8(W));return m(J,{code:F.invalid_union,unionErrors:$}),Q0}}get options(){return this._def.options}}_Y.create=(Q,J)=>{return new _Y({options:Q,typeName:X0.ZodUnion,...$0(J)})};var YJ=(Q)=>{if(Q instanceof PY)return YJ(Q.schema);else if(Q instanceof jQ)return YJ(Q.innerType());else if(Q instanceof kY)return[Q.value];else if(Q instanceof ZJ)return Q.options;else if(Q instanceof ZY)return D0.objectValues(Q.enum);else if(Q instanceof TY)return YJ(Q._def.innerType);else if(Q instanceof SY)return[void 0];else if(Q instanceof vY)return[null];else if(Q instanceof $Q)return[void 0,...YJ(Q.unwrap())];else if(Q instanceof GJ)return[null,...YJ(Q.unwrap())];else if(Q instanceof JW)return YJ(Q.unwrap());else if(Q instanceof gY)return YJ(Q.unwrap());else if(Q instanceof xY)return YJ(Q._def.innerType);else return[]};class QW extends U0{_parse(Q){let{ctx:J}=this._processInputParams(Q);if(J.parsedType!==x.object)return m(J,{code:F.invalid_type,expected:x.object,received:J.parsedType}),Q0;let X=this.discriminator,G=J.data[X],Y=this.optionsMap.get(G);if(!Y)return m(J,{code:F.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[X]}),Q0;if(J.common.async)return Y._parseAsync({data:J.data,path:J.path,parent:J});else return Y._parseSync({data:J.data,path:J.path,parent:J})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(Q,J,X){let G=new Map;for(let Y of J){let q=YJ(Y.shape[Q]);if(!q.length)throw Error(`A discriminator value for key \`${Q}\` could not be extracted from all schema options`);for(let $ of q){if(G.has($))throw Error(`Discriminator property ${String(Q)} has duplicate value ${String($)}`);G.set($,Y)}}return new QW({typeName:X0.ZodDiscriminatedUnion,discriminator:Q,options:J,optionsMap:G,...$0(X)})}}function DN(Q,J){let X=wQ(Q),G=wQ(J);if(Q===J)return{valid:!0,data:Q};else if(X===x.object&&G===x.object){let Y=D0.objectKeys(J),q=D0.objectKeys(Q).filter((W)=>Y.indexOf(W)!==-1),$={...Q,...J};for(let W of q){let j=DN(Q[W],J[W]);if(!j.valid)return{valid:!1};$[W]=j.data}return{valid:!0,data:$}}else if(X===x.array&&G===x.array){if(Q.length!==J.length)return{valid:!1};let Y=[];for(let q=0;q<Q.length;q++){let $=Q[q],W=J[q],j=DN($,W);if(!j.valid)return{valid:!1};Y.push(j.data)}return{valid:!0,data:Y}}else if(X===x.date&&G===x.date&&+Q===+J)return{valid:!0,data:Q};else return{valid:!1}}class FY extends U0{_parse(Q){let{status:J,ctx:X}=this._processInputParams(Q),G=(Y,q)=>{if(a9(Y)||a9(q))return Q0;let $=DN(Y.value,q.value);if(!$.valid)return m(X,{code:F.invalid_intersection_types}),Q0;if(e9(Y)||e9(q))J.dirty();return{status:J.value,value:$.data}};if(X.common.async)return Promise.all([this._def.left._parseAsync({data:X.data,path:X.path,parent:X}),this._def.right._parseAsync({data:X.data,path:X.path,parent:X})]).then(([Y,q])=>G(Y,q));else return G(this._def.left._parseSync({data:X.data,path:X.path,parent:X}),this._def.right._parseSync({data:X.data,path:X.path,parent:X}))}}FY.create=(Q,J,X)=>{return new FY({left:Q,right:J,typeName:X0.ZodIntersection,...$0(X)})};class AQ extends U0{_parse(Q){let{status:J,ctx:X}=this._processInputParams(Q);if(X.parsedType!==x.array)return m(X,{code:F.invalid_type,expected:x.array,received:X.parsedType}),Q0;if(X.data.length<this._def.items.length)return m(X,{code:F.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Q0;if(!this._def.rest&&X.data.length>this._def.items.length)m(X,{code:F.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J.dirty();let Y=[...X.data].map((q,$)=>{let W=this._def.items[$]||this._def.rest;if(!W)return null;return W._parse(new WQ(X,q,X.path,$))}).filter((q)=>!!q);if(X.common.async)return Promise.all(Y).then((q)=>{return X8.mergeArray(J,q)});else return X8.mergeArray(J,Y)}get items(){return this._def.items}rest(Q){return new AQ({...this._def,rest:Q})}}AQ.create=(Q,J)=>{if(!Array.isArray(Q))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new AQ({items:Q,typeName:X0.ZodTuple,rest:null,...$0(J)})};class Bq extends U0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(Q){let{status:J,ctx:X}=this._processInputParams(Q);if(X.parsedType!==x.object)return m(X,{code:F.invalid_type,expected:x.object,received:X.parsedType}),Q0;let G=[],Y=this._def.keyType,q=this._def.valueType;for(let $ in X.data)G.push({key:Y._parse(new WQ(X,$,X.path,$)),value:q._parse(new WQ(X,X.data[$],X.path,$)),alwaysSet:$ in X.data});if(X.common.async)return X8.mergeObjectAsync(J,G);else return X8.mergeObjectSync(J,G)}get element(){return this._def.valueType}static create(Q,J,X){if(J instanceof U0)return new Bq({keyType:Q,valueType:J,typeName:X0.ZodRecord,...$0(X)});return new Bq({keyType:GQ.create(),valueType:Q,typeName:X0.ZodRecord,...$0(J)})}}class Rq extends U0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(Q){let{status:J,ctx:X}=this._processInputParams(Q);if(X.parsedType!==x.map)return m(X,{code:F.invalid_type,expected:x.map,received:X.parsedType}),Q0;let G=this._def.keyType,Y=this._def.valueType,q=[...X.data.entries()].map(([$,W],j)=>{return{key:G._parse(new WQ(X,$,X.path,[j,"key"])),value:Y._parse(new WQ(X,W,X.path,[j,"value"]))}});if(X.common.async){let $=new Map;return Promise.resolve().then(async()=>{for(let W of q){let j=await W.key,K=await W.value;if(j.status==="aborted"||K.status==="aborted")return Q0;if(j.status==="dirty"||K.status==="dirty")J.dirty();$.set(j.value,K.value)}return{status:J.value,value:$}})}else{let $=new Map;for(let W of q){let{key:j,value:K}=W;if(j.status==="aborted"||K.status==="aborted")return Q0;if(j.status==="dirty"||K.status==="dirty")J.dirty();$.set(j.value,K.value)}return{status:J.value,value:$}}}}Rq.create=(Q,J,X)=>{return new Rq({valueType:J,keyType:Q,typeName:X0.ZodMap,...$0(X)})};class CX extends U0{_parse(Q){let{status:J,ctx:X}=this._processInputParams(Q);if(X.parsedType!==x.set)return m(X,{code:F.invalid_type,expected:x.set,received:X.parsedType}),Q0;let G=this._def;if(G.minSize!==null){if(X.data.size<G.minSize.value)m(X,{code:F.too_small,minimum:G.minSize.value,type:"set",inclusive:!0,exact:!1,message:G.minSize.message}),J.dirty()}if(G.maxSize!==null){if(X.data.size>G.maxSize.value)m(X,{code:F.too_big,maximum:G.maxSize.value,type:"set",inclusive:!0,exact:!1,message:G.maxSize.message}),J.dirty()}let Y=this._def.valueType;function q(W){let j=new Set;for(let K of W){if(K.status==="aborted")return Q0;if(K.status==="dirty")J.dirty();j.add(K.value)}return{status:J.value,value:j}}let $=[...X.data.values()].map((W,j)=>Y._parse(new WQ(X,W,X.path,j)));if(X.common.async)return Promise.all($).then((W)=>q(W));else return q($)}min(Q,J){return new CX({...this._def,minSize:{value:Q,message:t.toString(J)}})}max(Q,J){return new CX({...this._def,maxSize:{value:Q,message:t.toString(J)}})}size(Q,J){return this.min(Q,J).max(Q,J)}nonempty(Q){return this.min(1,Q)}}CX.create=(Q,J)=>{return new CX({valueType:Q,minSize:null,maxSize:null,typeName:X0.ZodSet,...$0(J)})};class AY extends U0{constructor(){super(...arguments);this.validate=this.implement}_parse(Q){let{ctx:J}=this._processInputParams(Q);if(J.parsedType!==x.function)return m(J,{code:F.invalid_type,expected:x.function,received:J.parsedType}),Q0;function X($,W){return Mq({data:$,path:J.path,errorMaps:[J.common.contextualErrorMap,J.schemaErrorMap,EY(),XJ].filter((j)=>!!j),issueData:{code:F.invalid_arguments,argumentsError:W}})}function G($,W){return Mq({data:$,path:J.path,errorMaps:[J.common.contextualErrorMap,J.schemaErrorMap,EY(),XJ].filter((j)=>!!j),issueData:{code:F.invalid_return_type,returnTypeError:W}})}let Y={errorMap:J.common.contextualErrorMap},q=J.data;if(this._def.returns instanceof AX){let $=this;return j8(async function(...W){let j=new I8([]),K=await $._def.args.parseAsync(W,Y).catch((U)=>{throw j.addIssue(X(W,U)),j}),z=await Reflect.apply(q,this,K);return await $._def.returns._def.type.parseAsync(z,Y).catch((U)=>{throw j.addIssue(G(z,U)),j})})}else{let $=this;return j8(function(...W){let j=$._def.args.safeParse(W,Y);if(!j.success)throw new I8([X(W,j.error)]);let K=Reflect.apply(q,this,j.data),z=$._def.returns.safeParse(K,Y);if(!z.success)throw new I8([G(K,z.error)]);return z.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...Q){return new AY({...this._def,args:AQ.create(Q).rest(FJ.create())})}returns(Q){return new AY({...this._def,returns:Q})}implement(Q){return this.parse(Q)}strictImplement(Q){return this.parse(Q)}static create(Q,J,X){return new AY({args:Q?Q:AQ.create([]).rest(FJ.create()),returns:J||FJ.create(),typeName:X0.ZodFunction,...$0(X)})}}class PY extends U0{get schema(){return this._def.getter()}_parse(Q){let{ctx:J}=this._processInputParams(Q);return this._def.getter()._parse({data:J.data,path:J.path,parent:J})}}PY.create=(Q,J)=>{return new PY({getter:Q,typeName:X0.ZodLazy,...$0(J)})};class kY extends U0{_parse(Q){if(Q.data!==this._def.value){let J=this._getOrReturnCtx(Q);return m(J,{received:J.data,code:F.invalid_literal,expected:this._def.value}),Q0}return{status:"valid",value:Q.data}}get value(){return this._def.value}}kY.create=(Q,J)=>{return new kY({value:Q,typeName:X0.ZodLiteral,...$0(J)})};function Dw(Q,J){return new ZJ({values:Q,typeName:X0.ZodEnum,...$0(J)})}class ZJ extends U0{_parse(Q){if(typeof Q.data!=="string"){let J=this._getOrReturnCtx(Q),X=this._def.values;return m(J,{expected:D0.joinValues(X),received:J.parsedType,code:F.invalid_type}),Q0}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(Q.data)){let J=this._getOrReturnCtx(Q),X=this._def.values;return m(J,{received:J.data,code:F.invalid_enum_value,options:X}),Q0}return j8(Q.data)}get options(){return this._def.values}get enum(){let Q={};for(let J of this._def.values)Q[J]=J;return Q}get Values(){let Q={};for(let J of this._def.values)Q[J]=J;return Q}get Enum(){let Q={};for(let J of this._def.values)Q[J]=J;return Q}extract(Q,J=this._def){return ZJ.create(Q,{...this._def,...J})}exclude(Q,J=this._def){return ZJ.create(this.options.filter((X)=>!Q.includes(X)),{...this._def,...J})}}ZJ.create=Dw;class ZY extends U0{_parse(Q){let J=D0.getValidEnumValues(this._def.values),X=this._getOrReturnCtx(Q);if(X.parsedType!==x.string&&X.parsedType!==x.number){let G=D0.objectValues(J);return m(X,{expected:D0.joinValues(G),received:X.parsedType,code:F.invalid_type}),Q0}if(!this._cache)this._cache=new Set(D0.getValidEnumValues(this._def.values));if(!this._cache.has(Q.data)){let G=D0.objectValues(J);return m(X,{received:X.data,code:F.invalid_enum_value,options:G}),Q0}return j8(Q.data)}get enum(){return this._def.values}}ZY.create=(Q,J)=>{return new ZY({values:Q,typeName:X0.ZodNativeEnum,...$0(J)})};class AX extends U0{unwrap(){return this._def.type}_parse(Q){let{ctx:J}=this._processInputParams(Q);if(J.parsedType!==x.promise&&J.common.async===!1)return m(J,{code:F.invalid_type,expected:x.promise,received:J.parsedType}),Q0;let X=J.parsedType===x.promise?J.data:Promise.resolve(J.data);return j8(X.then((G)=>{return this._def.type.parseAsync(G,{path:J.path,errorMap:J.common.contextualErrorMap})}))}}AX.create=(Q,J)=>{return new AX({type:Q,typeName:X0.ZodPromise,...$0(J)})};class jQ extends U0{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===X0.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(Q){let{status:J,ctx:X}=this._processInputParams(Q),G=this._def.effect||null,Y={addIssue:(q)=>{if(m(X,q),q.fatal)J.abort();else J.dirty()},get path(){return X.path}};if(Y.addIssue=Y.addIssue.bind(Y),G.type==="preprocess"){let q=G.transform(X.data,Y);if(X.common.async)return Promise.resolve(q).then(async($)=>{if(J.value==="aborted")return Q0;let W=await this._def.schema._parseAsync({data:$,path:X.path,parent:X});if(W.status==="aborted")return Q0;if(W.status==="dirty")return LX(W.value);if(J.value==="dirty")return LX(W.value);return W});else{if(J.value==="aborted")return Q0;let $=this._def.schema._parseSync({data:q,path:X.path,parent:X});if($.status==="aborted")return Q0;if($.status==="dirty")return LX($.value);if(J.value==="dirty")return LX($.value);return $}}if(G.type==="refinement"){let q=($)=>{let W=G.refinement($,Y);if(X.common.async)return Promise.resolve(W);if(W instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return $};if(X.common.async===!1){let $=this._def.schema._parseSync({data:X.data,path:X.path,parent:X});if($.status==="aborted")return Q0;if($.status==="dirty")J.dirty();return q($.value),{status:J.value,value:$.value}}else return this._def.schema._parseAsync({data:X.data,path:X.path,parent:X}).then(($)=>{if($.status==="aborted")return Q0;if($.status==="dirty")J.dirty();return q($.value).then(()=>{return{status:J.value,value:$.value}})})}if(G.type==="transform")if(X.common.async===!1){let q=this._def.schema._parseSync({data:X.data,path:X.path,parent:X});if(!_J(q))return Q0;let $=G.transform(q.value,Y);if($ instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:J.value,value:$}}else return this._def.schema._parseAsync({data:X.data,path:X.path,parent:X}).then((q)=>{if(!_J(q))return Q0;return Promise.resolve(G.transform(q.value,Y)).then(($)=>({status:J.value,value:$}))});D0.assertNever(G)}}jQ.create=(Q,J,X)=>{return new jQ({schema:Q,typeName:X0.ZodEffects,effect:J,...$0(X)})};jQ.createWithPreprocess=(Q,J,X)=>{return new jQ({schema:J,effect:{type:"preprocess",transform:Q},typeName:X0.ZodEffects,...$0(X)})};class $Q extends U0{_parse(Q){if(this._getType(Q)===x.undefined)return j8(void 0);return this._def.innerType._parse(Q)}unwrap(){return this._def.innerType}}$Q.create=(Q,J)=>{return new $Q({innerType:Q,typeName:X0.ZodOptional,...$0(J)})};class GJ extends U0{_parse(Q){if(this._getType(Q)===x.null)return j8(null);return this._def.innerType._parse(Q)}unwrap(){return this._def.innerType}}GJ.create=(Q,J)=>{return new GJ({innerType:Q,typeName:X0.ZodNullable,...$0(J)})};class TY extends U0{_parse(Q){let{ctx:J}=this._processInputParams(Q),X=J.data;if(J.parsedType===x.undefined)X=this._def.defaultValue();return this._def.innerType._parse({data:X,path:J.path,parent:J})}removeDefault(){return this._def.innerType}}TY.create=(Q,J)=>{return new TY({innerType:Q,typeName:X0.ZodDefault,defaultValue:typeof J.default==="function"?J.default:()=>J.default,...$0(J)})};class xY extends U0{_parse(Q){let{ctx:J}=this._processInputParams(Q),X={...J,common:{...J.common,issues:[]}},G=this._def.innerType._parse({data:X.data,path:X.path,parent:{...X}});if(wY(G))return G.then((Y)=>{return{status:"valid",value:Y.status==="valid"?Y.value:this._def.catchValue({get error(){return new I8(X.common.issues)},input:X.data})}});else return{status:"valid",value:G.status==="valid"?G.value:this._def.catchValue({get error(){return new I8(X.common.issues)},input:X.data})}}removeCatch(){return this._def.innerType}}xY.create=(Q,J)=>{return new xY({innerType:Q,typeName:X0.ZodCatch,catchValue:typeof J.catch==="function"?J.catch:()=>J.catch,...$0(J)})};class Hq extends U0{_parse(Q){if(this._getType(Q)!==x.nan){let X=this._getOrReturnCtx(Q);return m(X,{code:F.invalid_type,expected:x.nan,received:X.parsedType}),Q0}return{status:"valid",value:Q.data}}}Hq.create=(Q)=>{return new Hq({typeName:X0.ZodNaN,...$0(Q)})};var hx=Symbol("zod_brand");class JW extends U0{_parse(Q){let{ctx:J}=this._processInputParams(Q),X=J.data;return this._def.type._parse({data:X,path:J.path,parent:J})}unwrap(){return this._def.type}}class Vq extends U0{_parse(Q){let{status:J,ctx:X}=this._processInputParams(Q);if(X.common.async)return(async()=>{let Y=await this._def.in._parseAsync({data:X.data,path:X.path,parent:X});if(Y.status==="aborted")return Q0;if(Y.status==="dirty")return J.dirty(),LX(Y.value);else return this._def.out._parseAsync({data:Y.value,path:X.path,parent:X})})();else{let G=this._def.in._parseSync({data:X.data,path:X.path,parent:X});if(G.status==="aborted")return Q0;if(G.status==="dirty")return J.dirty(),{status:"dirty",value:G.value};else return this._def.out._parseSync({data:G.value,path:X.path,parent:X})}}static create(Q,J){return new Vq({in:Q,out:J,typeName:X0.ZodPipeline})}}class gY extends U0{_parse(Q){let J=this._def.innerType._parse(Q),X=(G)=>{if(_J(G))G.value=Object.freeze(G.value);return G};return wY(J)?J.then((G)=>X(G)):X(J)}unwrap(){return this._def.innerType}}gY.create=(Q,J)=>{return new gY({innerType:Q,typeName:X0.ZodReadonly,...$0(J)})};function zw(Q,J){let X=typeof Q==="function"?Q(J):typeof Q==="string"?{message:Q}:Q;return typeof X==="string"?{message:X}:X}function Ow(Q,J={},X){if(Q)return wX.create().superRefine((G,Y)=>{let q=Q(G);if(q instanceof Promise)return q.then(($)=>{if(!$){let W=zw(J,G),j=W.fatal??X??!0;Y.addIssue({code:"custom",...W,fatal:j})}});if(!q){let $=zw(J,G),W=$.fatal??X??!0;Y.addIssue({code:"custom",...$,fatal:W})}return});return wX.create()}var mx={object:f0.lazycreate},X0;(function(Q){Q.ZodString="ZodString",Q.ZodNumber="ZodNumber",Q.ZodNaN="ZodNaN",Q.ZodBigInt="ZodBigInt",Q.ZodBoolean="ZodBoolean",Q.ZodDate="ZodDate",Q.ZodSymbol="ZodSymbol",Q.ZodUndefined="ZodUndefined",Q.ZodNull="ZodNull",Q.ZodAny="ZodAny",Q.ZodUnknown="ZodUnknown",Q.ZodNever="ZodNever",Q.ZodVoid="ZodVoid",Q.ZodArray="ZodArray",Q.ZodObject="ZodObject",Q.ZodUnion="ZodUnion",Q.ZodDiscriminatedUnion="ZodDiscriminatedUnion",Q.ZodIntersection="ZodIntersection",Q.ZodTuple="ZodTuple",Q.ZodRecord="ZodRecord",Q.ZodMap="ZodMap",Q.ZodSet="ZodSet",Q.ZodFunction="ZodFunction",Q.ZodLazy="ZodLazy",Q.ZodLiteral="ZodLiteral",Q.ZodEnum="ZodEnum",Q.ZodEffects="ZodEffects",Q.ZodNativeEnum="ZodNativeEnum",Q.ZodOptional="ZodOptional",Q.ZodNullable="ZodNullable",Q.ZodDefault="ZodDefault",Q.ZodCatch="ZodCatch",Q.ZodPromise="ZodPromise",Q.ZodBranded="ZodBranded",Q.ZodPipeline="ZodPipeline",Q.ZodReadonly="ZodReadonly"})(X0||(X0={}));var yx=(Q,J={message:`Input not instance of ${Q.name}`})=>Ow((X)=>X instanceof Q,J),Bw=GQ.create,Rw=PJ.create,lx=Hq.create,ux=kJ.create,Hw=IY.create,cx=EX.create,px=Dq.create,bx=SY.create,ox=vY.create,dx=wX.create,rx=FJ.create,sx=CQ.create,ix=Oq.create,tx=qQ.create,nx=f0.create,ax=f0.strictCreate,ex=_Y.create,Qg=QW.create,Jg=FY.create,Xg=AQ.create,Yg=Bq.create,Gg=Rq.create,qg=CX.create,$g=AY.create,Wg=PY.create,jg=kY.create,Kg=ZJ.create,zg=ZY.create,Ng=AX.create,Ug=jQ.create,Mg=$Q.create,Dg=GJ.create,Og=jQ.createWithPreprocess,Bg=Vq.create,Rg=()=>Bw().optional(),Hg=()=>Rw().optional(),Vg=()=>Hw().optional(),Lg={string:(Q)=>GQ.create({...Q,coerce:!0}),number:(Q)=>PJ.create({...Q,coerce:!0}),boolean:(Q)=>IY.create({...Q,coerce:!0}),bigint:(Q)=>kJ.create({...Q,coerce:!0}),date:(Q)=>EX.create({...Q,coerce:!0})};var Eg=Q0;var o8=R0.string().min(1),ON=R0.record(R0.unknown()),XW=R0.record(R0.unknown()).optional().nullable(),BN=o8,Vw=R0.string().min(3).refine((Q)=>Q.includes(":"),{message:"Network must be in CAIP-2 format (e.g., 'eip155:84532')"}),As=R0.union([BN,Vw]),Lw=R0.object({url:o8,description:R0.string().optional(),mimeType:R0.string().optional()}),Ew=R0.object({scheme:o8,network:BN,maxAmountRequired:o8,resource:o8,description:R0.string(),mimeType:R0.string().optional(),outputSchema:ON.optional().nullable(),payTo:o8,maxTimeoutSeconds:R0.number().positive(),asset:o8,extra:XW}),wg=R0.object({x402Version:R0.literal(1),error:R0.string().optional(),accepts:R0.array(Ew).min(1)}),Cg=R0.object({x402Version:R0.literal(1),scheme:o8,network:BN,payload:ON}),RN=R0.object({scheme:o8,network:Vw,amount:o8,asset:o8,payTo:o8,maxTimeoutSeconds:R0.number().positive(),extra:XW}),Ag=R0.object({x402Version:R0.literal(2),error:R0.string().optional(),resource:Lw,accepts:R0.array(RN).min(1),extensions:XW}),Lq=R0.object({x402Version:R0.literal(2),resource:Lw.optional(),accepted:RN,payload:ON,extensions:XW}),Is=R0.union([Ew,RN]),Ss=R0.discriminatedUnion("x402Version",[wg,Ag]),vs=R0.discriminatedUnion("x402Version",[Cg,Lq]);var ww=(Q)=>{let J=Buffer.from(Q,"base64").toString("utf-8"),X=null;try{X=Lq.parse(JSON.parse(J))}catch(G){return console.error("Failed to parse payment payload"),console.error(G),null}return X};var YW=(Q)=>{let J=JSON.stringify({offers:Q}),X=Buffer.from(J).toString("base64"),G=new Headers;return G.set("PAYMENT-REQUIRED",X),G.set("Access-Control-Expose-Headers","PAYMENT-REQUIRED"),G.set("Content-Type","application/json"),console.log("Payment required"),new Response("Payment Required",{headers:G,status:402})},IQ=(Q)=>{let X=JSON.stringify({success:!1,errorMessage:"Invalid Payment",errorReason:Q,transaction:"",network:":"}),G=Buffer.from(X).toString("base64"),Y=new Headers;return Y.set("PAYMENT-RESPONSE",G),console.log("Payment invalid"),new Response(`Payment Invalid: ${Q}`,{status:400,headers:Y})};var Eq=async(Q,J)=>{Q.status(J.status),J.headers.forEach((G,Y)=>{Q.setHeader(Y,G)});let X=await J.text();Q.send(X)},ms=(Q,J)=>async(X,G,Y)=>{let q=X.header("PAYMENT-SIGNATURE");if(!q)return Eq(G,YW(J));let $=ww(q);if(!$)return Eq(G,IQ("Invalid payment"));let{success:W,data:j}=KY(jY).safeParse($.payload);if(!W)return Eq(G,IQ("Not an evvm payment"));if(!await Q.verifyPaySignature(j))return Eq(G,IQ("Invalid signature"));let K=await Q.settlePayment(j);if(!K)return Eq(G,IQ("Settlement failed"));let z={success:!0,payer:j.data.from,transaction:K,network:$.accepted.network},N=JSON.stringify(z),U=Buffer.from(N).toString("base64");G.setHeader("PAYMENT-RESPONSE",U),Y()};var Ig=(Q)=>{let J=atob(Q),X=null;try{X=Lq.parse(JSON.parse(J))}catch(G){return console.error("Failed to parse payment payload"),console.error(G),null}return X},ps=(Q,J)=>async(X)=>{let G=X.headers.get("PAYMENT-SIGNATURE");if(!G)return YW(J);let Y=Ig(G);if(!Y)return IQ("Invalid payment");let{success:q,data:$}=KY(jY).safeParse(Y.payload);if(!q)return IQ("Not an evvm payment");if(!await Q.verifyPaySignature($))return IQ("Invalid signature");let W=await Q.settlePayment($);if(!W)return IQ("Settlement failed");let j={success:!0,payer:$.data.from,transaction:W,network:Y.accepted.network},K=JSON.stringify(j),z=btoa(K);X.headers.set("PAYMENT-RESPONSE",z)};export{ms as requireEvvmPaymentExpress,YW as paymentRequiredResponse,ww as parseHeader,IQ as invalidPaymentResponse,ps as createEvvmMiddlewareNext,Nx as LocalFacilitator};
|