genosdb 0.35.1 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/dist/gdb.min.js +1 -1
- package/dist/gdb.min.js.gz +0 -0
- package/dist/genossrv.min.js +46 -46
- package/dist/genossrv.min.js.gz +0 -0
- package/dist/index.d.ts +33 -4
- package/dist/index.js +1 -1
- package/dist/index.js.gz +0 -0
- package/dist/sm.min.js +3 -3
- package/dist/sm.min.js.gz +0 -0
- package/llms.txt +2 -1
- package/package.json +1 -1
package/dist/sm.min.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var log=(()=>{const n=()=>{};return new Proxy(console,{get:(c,m)=>globalThis.__gdbDebug?c[m].bind(c):n})})();
|
|
2
|
-
var uX=Object.defineProperty;var pX=($)=>$;function lX($,Q){this[$]=pX.bind(null,Q)}var dX=($,Q)=>{for(var J in Q)uX($,J,{get:Q[J],enumerable:!0,configurable:!0,set:lX.bind(Q,J)})};var w8="6.15.0";function nX($,Q,J){let Y=Q.split("|").map((Z)=>Z.trim());for(let Z=0;Z<Y.length;Z++)switch(Q){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof $===Q)return}let X=Error(`invalid value for type ${Q}`);throw X.code="INVALID_ARGUMENT",X.argument=`value.${J}`,X.value=$,X}async function p$($){let Q=Object.keys($);return(await Promise.all(Q.map((Y)=>Promise.resolve($[Y])))).reduce((Y,X,Z)=>{return Y[Q[Z]]=X,Y},{})}function r($,Q,J){for(let Y in Q){let X=Q[Y],Z=J?J[Y]:null;if(Z)nX(X,Z,Y);Object.defineProperty($,Y,{enumerable:!0,value:X,writable:!1})}}function c0($,Q){if($==null)return"null";if(Q==null)Q=new Set;if(typeof $==="object"){if(Q.has($))return"[Circular]";Q.add($)}if(Array.isArray($))return"[ "+$.map((J)=>c0(J,Q)).join(", ")+" ]";if($ instanceof Uint8Array){let Y="0x";for(let X=0;X<$.length;X++)Y+="0123456789abcdef"[$[X]>>4],Y+="0123456789abcdef"[$[X]&15];return Y}if(typeof $==="object"&&typeof $.toJSON==="function")return c0($.toJSON(),Q);switch(typeof $){case"boolean":case"number":case"symbol":return $.toString();case"bigint":return BigInt($).toString();case"string":return JSON.stringify($);case"object":{let J=Object.keys($);return J.sort(),"{ "+J.map((Y)=>`${c0(Y,Q)}: ${c0($[Y],Q)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function B8($,Q){return $&&$.code===Q}function X8($,Q,J){let Y=$;{let Z=[];if(J){if("message"in J||"code"in J||"name"in J)throw Error(`value will overwrite populated values: ${c0(J)}`);for(let q in J){if(q==="shortMessage")continue;let G=J[q];Z.push(q+"="+c0(G))}}if(Z.push(`code=${Q}`),Z.push(`version=${w8}`),Z.length)$+=" ("+Z.join(", ")+")"}let X;switch(Q){case"INVALID_ARGUMENT":X=TypeError($);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":X=RangeError($);break;default:X=Error($)}if(r(X,{code:Q}),J)Object.assign(X,J);if(X.shortMessage==null)r(X,{shortMessage:Y});return X}function b($,Q,J,Y){if(!$)throw X8(Q,J,Y)}function O($,Q,J,Y){b($,Q,"INVALID_ARGUMENT",{argument:J,value:Y})}var oX=["NFD","NFC","NFKD","NFKC"].reduce(($,Q)=>{try{if("test".normalize(Q)!=="test")throw Error("bad");if(Q==="NFD"){let J=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(J!==Y)throw Error("broken")}$.push(Q)}catch(J){}return $},[]);function u0($){b(oX.indexOf($)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:$}})}function r$($,Q,J){if(J==null)J="";if($!==Q){let Y=J,X="new";if(J)Y+=".",X+=" "+J;b(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:X})}}function fJ($,Q,J){if($ instanceof Uint8Array){if(J)return new Uint8Array($);return $}if(typeof $==="string"&&$.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let Y=new Uint8Array(($.length-2)/2),X=2;for(let Z=0;Z<Y.length;Z++)Y[Z]=parseInt($.substring(X,X+2),16),X+=2;return Y}O(!1,"invalid BytesLike value",Q||"value",$)}function E($,Q){return fJ($,Q,!1)}function y$($,Q){return fJ($,Q,!0)}function I$($,Q){if(typeof $!=="string"||!$.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof Q==="number"&&$.length!==2+2*Q)return!1;if(Q===!0&&$.length%2!==0)return!1;return!0}function l$($){return I$($,!0)||$ instanceof Uint8Array}var _J="0123456789abcdef";function C($){let Q=E($),J="0x";for(let Y=0;Y<Q.length;Y++){let X=Q[Y];J+=_J[(X&240)>>4]+_J[X&15]}return J}function o($){return"0x"+$.map((Q)=>C(Q).substring(2)).join("")}function a$($){if(I$($,!0))return($.length-2)/2;return E($).length}function p0($,Q,J){let Y=E($);if(J!=null&&J>Y.length)b(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:J});return C(Y.slice(Q==null?0:Q,J==null?Y.length:J))}function iX($,Q,J){let Y=E($);b(Q>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:Q,offset:Q+1});let X=new Uint8Array(Q);if(X.fill(0),J)X.set(Y,Q-Y.length);else X.set(Y,0);return C(X)}function j$($,Q){return iX($,Q,!0)}var BQ=BigInt(0),S0=BigInt(1),l0=9007199254740991;function F8($,Q){let J=p($,"value"),Y=BigInt(z$(Q,"width")),X=S0<<Y-S0;if(J<BQ){J=-J,b(J<=X,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:$});let Z=(S0<<Y)-S0;return(~J&Z)+S0}else b(J<X,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:$});return J}function A8($,Q){let J=Z8($,"value"),Y=BigInt(z$(Q,"bits"));return J&(S0<<Y)-S0}function p($,Q){switch(typeof $){case"bigint":return $;case"number":return O(Number.isInteger($),"underflow",Q||"value",$),O($>=-l0&&$<=l0,"overflow",Q||"value",$),BigInt($);case"string":try{if($==="")throw Error("empty string");if($[0]==="-"&&$[1]!=="-")return-BigInt($.substring(1));return BigInt($)}catch(J){O(!1,`invalid BigNumberish string: ${J.message}`,Q||"value",$)}}O(!1,"invalid BigNumberish value",Q||"value",$)}function Z8($,Q){let J=p($,Q);return b(J>=BQ,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:$}),J}var bJ="0123456789abcdef";function d0($){if($ instanceof Uint8Array){let Q="0x0";for(let J of $)Q+=bJ[J>>4],Q+=bJ[J&15];return BigInt(Q)}return p($)}function z$($,Q){switch(typeof $){case"bigint":return O($>=-l0&&$<=l0,"overflow",Q||"value",$),Number($);case"number":return O(Number.isInteger($),"underflow",Q||"value",$),O($>=-l0&&$<=l0,"overflow",Q||"value",$),$;case"string":try{if($==="")throw Error("empty string");return z$(BigInt($),Q)}catch(J){O(!1,`invalid numeric string: ${J.message}`,Q||"value",$)}}O(!1,"invalid numeric value",Q||"value",$)}function g$($,Q){let Y=Z8($,"value").toString(16);if(Q==null){if(Y.length%2)Y="0"+Y}else{let X=z$(Q,"width");b(X*2>=Y.length,`value exceeds width (${X} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:$});while(Y.length<X*2)Y="0"+Y}return"0x"+Y}function a($){let Q=Z8($,"value");if(Q===BQ)return new Uint8Array([]);let J=Q.toString(16);if(J.length%2)J="0"+J;let Y=new Uint8Array(J.length/2);for(let X=0;X<Y.length;X++){let Z=X*2;Y[X]=parseInt(J.substring(Z,Z+2),16)}return Y}function k8($){let Q=C(l$($)?$:a($)).substring(2);while(Q.startsWith("0"))Q=Q.substring(1);if(Q==="")Q="0";return"0x"+Q}var f8="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",_8=null;function rX($){if(_8==null){_8={};for(let J=0;J<f8.length;J++)_8[f8[J]]=BigInt(J)}let Q=_8[$];return O(Q!=null,"invalid base58 value","letter",$),Q}var aX=BigInt(0),FQ=BigInt(58);function b8($){let Q=E($),J=d0(Q),Y="";while(J)Y=f8[Number(J%FQ)]+Y,J/=FQ;for(let X=0;X<Q.length;X++){if(Q[X])break;Y=f8[0]+Y}return Y}function x8($){let Q=aX;for(let J=0;J<$.length;J++)Q*=FQ,Q+=rX($[J]);return Q}function sX($,Q,J,Y,X){O(!1,`invalid codepoint at offset ${Q}; ${$}`,"bytes",J)}function xJ($,Q,J,Y,X){if($==="BAD_PREFIX"||$==="UNEXPECTED_CONTINUE"){let Z=0;for(let q=Q+1;q<J.length;q++){if(J[q]>>6!==2)break;Z++}return Z}if($==="OVERRUN")return J.length-Q-1;return 0}function tX($,Q,J,Y,X){if($==="OVERLONG")return O(typeof X==="number","invalid bad code point for replacement","badCodepoint",X),Y.push(X),0;return Y.push(65533),xJ($,Q,J,Y,X)}var vJ=Object.freeze({error:sX,ignore:xJ,replace:tX});function G$($,Q){if(O(typeof $==="string","invalid string value","str",$),Q!=null)u0(Q),$=$.normalize(Q);let J=[];for(let Y=0;Y<$.length;Y++){let X=$.charCodeAt(Y);if(X<128)J.push(X);else if(X<2048)J.push(X>>6|192),J.push(X&63|128);else if((X&64512)==55296){Y++;let Z=$.charCodeAt(Y);O(Y<$.length&&(Z&64512)===56320,"invalid surrogate pair","str",$);let q=65536+((X&1023)<<10)+(Z&1023);J.push(q>>18|240),J.push(q>>12&63|128),J.push(q>>6&63|128),J.push(q&63|128)}else J.push(X>>12|224),J.push(X>>6&63|128),J.push(X&63|128)}return new Uint8Array(J)}function eX($){let Q=$.toString(16);while(Q.length<2)Q="0"+Q;return"0x"+Q}function yJ($,Q,J){let Y=0;for(let X=0;X<J;X++)Y=Y*256+$[Q+X];return Y}function gJ($,Q,J,Y){let X=[];while(J<Q+1+Y){let Z=hJ($,J);X.push(Z.result),J+=Z.consumed,b(J<=Q+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:$,length:Y,offset:Q})}return{consumed:1+Y,result:X}}function hJ($,Q){b($.length!==0,"data too short","BUFFER_OVERRUN",{buffer:$,length:0,offset:1});let J=(Y)=>{b(Y<=$.length,"data short segment too short","BUFFER_OVERRUN",{buffer:$,length:$.length,offset:Y})};if($[Q]>=248){let Y=$[Q]-247;J(Q+1+Y);let X=yJ($,Q+1,Y);return J(Q+1+Y+X),gJ($,Q,Q+1+Y,Y+X)}else if($[Q]>=192){let Y=$[Q]-192;return J(Q+1+Y),gJ($,Q,Q+1,Y)}else if($[Q]>=184){let Y=$[Q]-183;J(Q+1+Y);let X=yJ($,Q+1,Y);J(Q+1+Y+X);let Z=C($.slice(Q+1+Y,Q+1+Y+X));return{consumed:1+Y+X,result:Z}}else if($[Q]>=128){let Y=$[Q]-128;J(Q+1+Y);let X=C($.slice(Q+1,Q+1+Y));return{consumed:1+Y,result:X}}return{consumed:1,result:eX($[Q])}}function D0($){let Q=E($,"data"),J=hJ(Q,0);return O(J.consumed===Q.length,"unexpected junk after rlp payload","data",$),J.result}function mJ($){let Q=[];while($)Q.unshift($&255),$>>=8;return Q}function uJ($){if(Array.isArray($)){let Y=[];if($.forEach(function(Z){Y=Y.concat(uJ(Z))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let X=mJ(Y.length);return X.unshift(247+X.length),X.concat(Y)}let Q=Array.prototype.slice.call(E($,"object"));if(Q.length===1&&Q[0]<=127)return Q;else if(Q.length<=55)return Q.unshift(128+Q.length),Q;let J=mJ(Q.length);return J.unshift(183+J.length),J.concat(Q)}var cJ="0123456789abcdef";function F$($){let Q="0x";for(let J of uJ($))Q+=cJ[J>>4],Q+=cJ[J&15];return Q}function v8($){let Q=E($,"randomBytes");Q[6]=Q[6]&15|64,Q[8]=Q[8]&63|128;let J=C(Q);return[J.substring(2,10),J.substring(10,14),J.substring(14,18),J.substring(18,22),J.substring(22,34)].join("-")}function T$($){if(!Number.isSafeInteger($)||$<0)throw Error(`Wrong positive integer: ${$}`)}function q8($,...Q){if(!($ instanceof Uint8Array))throw Error("Expected Uint8Array");if(Q.length>0&&!Q.includes($.length))throw Error(`Expected Uint8Array of length ${Q}, not of length=${$.length}`)}function y8($){if(typeof $!=="function"||typeof $.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");T$($.outputLen),T$($.blockLen)}function s$($,Q=!0){if($.destroyed)throw Error("Hash instance has been destroyed");if(Q&&$.finished)throw Error("Hash#digest() has already been called")}function g8($,Q){q8($);let J=Q.outputLen;if($.length<J)throw Error(`digestInto() expects output buffer of length at least ${J}`)}var h8=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var pJ=($)=>$ instanceof Uint8Array;var n0=($)=>new Uint32Array($.buffer,$.byteOffset,Math.floor($.byteLength/4)),o0=($)=>new DataView($.buffer,$.byteOffset,$.byteLength),h$=($,Q)=>$<<32-Q|$>>>Q,MZ=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!MZ)throw Error("Non little-endian hardware is not supported");var WZ=async()=>{};async function m8($,Q,J){let Y=Date.now();for(let X=0;X<$;X++){J(X);let Z=Date.now()-Y;if(Z>=0&&Z<Q)continue;await WZ(),Y+=Z}}function VZ($){if(typeof $!=="string")throw Error(`utf8ToBytes expected string, got ${typeof $}`);return new Uint8Array(new TextEncoder().encode($))}function d$($){if(typeof $==="string")$=VZ($);if(!pJ($))throw Error(`expected Uint8Array, got ${typeof $}`);return $}function lJ(...$){let Q=new Uint8Array($.reduce((Y,X)=>Y+X.length,0)),J=0;return $.forEach((Y)=>{if(!pJ(Y))throw Error("Uint8Array expected");Q.set(Y,J),J+=Y.length}),Q}class w0{clone(){return this._cloneInto()}}var zZ={}.toString;function c8($,Q){if(Q!==void 0&&zZ.call(Q)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign($,Q)}function O0($){let Q=(Y)=>$().update(d$(Y)).digest(),J=$();return Q.outputLen=J.outputLen,Q.blockLen=J.blockLen,Q.create=()=>$(),Q}function dJ($=32){if(h8&&typeof h8.getRandomValues==="function")return h8.getRandomValues(new Uint8Array($));throw Error("crypto.getRandomValues must be defined")}class AQ extends w0{constructor($,Q){super();this.finished=!1,this.destroyed=!1,y8($);let J=d$(Q);if(this.iHash=$.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 Y=this.blockLen,X=new Uint8Array(Y);X.set(J.length>Y?$.create().update(J).digest():J);for(let Z=0;Z<X.length;Z++)X[Z]^=54;this.iHash.update(X),this.oHash=$.create();for(let Z=0;Z<X.length;Z++)X[Z]^=106;this.oHash.update(X),X.fill(0)}update($){return s$(this),this.iHash.update($),this}digestInto($){s$(this),q8($,this.outputLen),this.finished=!0,this.iHash.digestInto($),this.oHash.update($),this.oHash.digestInto($),this.destroy()}digest(){let $=new Uint8Array(this.oHash.outputLen);return this.digestInto($),$}_cloneInto($){$||($=Object.create(Object.getPrototypeOf(this),{}));let{oHash:Q,iHash:J,finished:Y,destroyed:X,blockLen:Z,outputLen:q}=this;return $=$,$.finished=Y,$.destroyed=X,$.blockLen=Z,$.outputLen=q,$.oHash=Q._cloneInto($.oHash),$.iHash=J._cloneInto($.iHash),$}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var B0=($,Q,J)=>new AQ($,Q).update(J).digest();B0.create=($,Q)=>new AQ($,Q);function DZ($,Q,J,Y){y8($);let X=c8({dkLen:32,asyncTick:10},Y),{c:Z,dkLen:q,asyncTick:G}=X;if(T$(Z),T$(q),T$(G),Z<1)throw Error("PBKDF2: iterations (c) should be >= 1");let M=d$(Q),W=d$(J),V=new Uint8Array(q),D=B0.create($,M),I=D._cloneInto().update(W);return{c:Z,dkLen:q,asyncTick:G,DK:V,PRF:D,PRFSalt:I}}function OZ($,Q,J,Y,X){if($.destroy(),Q.destroy(),Y)Y.destroy();return X.fill(0),J}function G8($,Q,J,Y){let{c:X,dkLen:Z,DK:q,PRF:G,PRFSalt:M}=DZ($,Q,J,Y),W,V=new Uint8Array(4),D=o0(V),I=new Uint8Array(G.outputLen);for(let P=1,K=0;K<Z;P++,K+=G.outputLen){let H=q.subarray(K,K+G.outputLen);D.setInt32(0,P,!1),(W=M._cloneInto(W)).update(V).digestInto(I),H.set(I.subarray(0,H.length));for(let L=1;L<X;L++){G._cloneInto(W).update(I).digestInto(I);for(let z=0;z<H.length;z++)H[z]^=I[z]}}return OZ(G,M,q,W,I)}function KZ($,Q,J,Y){if(typeof $.setBigUint64==="function")return $.setBigUint64(Q,J,Y);let X=BigInt(32),Z=BigInt(4294967295),q=Number(J>>X&Z),G=Number(J&Z),M=Y?4:0,W=Y?0:4;$.setUint32(Q+M,q,Y),$.setUint32(Q+W,G,Y)}class F0 extends w0{constructor($,Q,J,Y){super();this.blockLen=$,this.outputLen=Q,this.padOffset=J,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array($),this.view=o0(this.buffer)}update($){s$(this);let{view:Q,buffer:J,blockLen:Y}=this;$=d$($);let X=$.length;for(let Z=0;Z<X;){let q=Math.min(Y-this.pos,X-Z);if(q===Y){let G=o0($);for(;Y<=X-Z;Z+=Y)this.process(G,Z);continue}if(J.set($.subarray(Z,Z+q),this.pos),this.pos+=q,Z+=q,this.pos===Y)this.process(Q,0),this.pos=0}return this.length+=$.length,this.roundClean(),this}digestInto($){s$(this),g8($,this),this.finished=!0;let{buffer:Q,view:J,blockLen:Y,isLE:X}=this,{pos:Z}=this;if(Q[Z++]=128,this.buffer.subarray(Z).fill(0),this.padOffset>Y-Z)this.process(J,0),Z=0;for(let V=Z;V<Y;V++)Q[V]=0;KZ(J,Y-8,BigInt(this.length*8),X),this.process(J,0);let q=o0($),G=this.outputLen;if(G%4)throw Error("_sha2: outputLen should be aligned to 32bit");let M=G/4,W=this.get();if(M>W.length)throw Error("_sha2: outputLen bigger than state");for(let V=0;V<M;V++)q.setUint32(4*V,W[V],X)}digest(){let{buffer:$,outputLen:Q}=this;this.digestInto($);let J=$.slice(0,Q);return this.destroy(),J}_cloneInto($){$||($=new this.constructor),$.set(...this.get());let{blockLen:Q,buffer:J,length:Y,finished:X,destroyed:Z,pos:q}=this;if($.length=Y,$.pos=q,$.finished=X,$.destroyed=Z,Y%Q)$.buffer.set(J);return $}}var IZ=($,Q,J)=>$&Q^~$&J,TZ=($,Q,J)=>$&Q^$&J^Q&J,UZ=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]),K0=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),I0=new Uint32Array(64);class nJ extends F0{constructor(){super(64,32,8,!1);this.A=K0[0]|0,this.B=K0[1]|0,this.C=K0[2]|0,this.D=K0[3]|0,this.E=K0[4]|0,this.F=K0[5]|0,this.G=K0[6]|0,this.H=K0[7]|0}get(){let{A:$,B:Q,C:J,D:Y,E:X,F:Z,G:q,H:G}=this;return[$,Q,J,Y,X,Z,q,G]}set($,Q,J,Y,X,Z,q,G){this.A=$|0,this.B=Q|0,this.C=J|0,this.D=Y|0,this.E=X|0,this.F=Z|0,this.G=q|0,this.H=G|0}process($,Q){for(let V=0;V<16;V++,Q+=4)I0[V]=$.getUint32(Q,!1);for(let V=16;V<64;V++){let D=I0[V-15],I=I0[V-2],P=h$(D,7)^h$(D,18)^D>>>3,K=h$(I,17)^h$(I,19)^I>>>10;I0[V]=K+I0[V-7]+P+I0[V-16]|0}let{A:J,B:Y,C:X,D:Z,E:q,F:G,G:M,H:W}=this;for(let V=0;V<64;V++){let D=h$(q,6)^h$(q,11)^h$(q,25),I=W+D+IZ(q,G,M)+UZ[V]+I0[V]|0,K=(h$(J,2)^h$(J,13)^h$(J,22))+TZ(J,Y,X)|0;W=M,M=G,G=q,q=Z+I|0,Z=X,X=Y,Y=J,J=I+K|0}J=J+this.A|0,Y=Y+this.B|0,X=X+this.C|0,Z=Z+this.D|0,q=q+this.E|0,G=G+this.F|0,M=M+this.G|0,W=W+this.H|0,this.set(J,Y,X,Z,q,G,M,W)}roundClean(){I0.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var t$=O0(()=>new nJ);var u8=BigInt(4294967295),kQ=BigInt(32);function oJ($,Q=!1){if(Q)return{h:Number($&u8),l:Number($>>kQ&u8)};return{h:Number($>>kQ&u8)|0,l:Number($&u8)|0}}function _Q($,Q=!1){let J=new Uint32Array($.length),Y=new Uint32Array($.length);for(let X=0;X<$.length;X++){let{h:Z,l:q}=oJ($[X],Q);[J[X],Y[X]]=[Z,q]}return[J,Y]}var HZ=($,Q)=>BigInt($>>>0)<<kQ|BigInt(Q>>>0),LZ=($,Q,J)=>$>>>J,NZ=($,Q,J)=>$<<32-J|Q>>>J,RZ=($,Q,J)=>$>>>J|Q<<32-J,CZ=($,Q,J)=>$<<32-J|Q>>>J,EZ=($,Q,J)=>$<<64-J|Q>>>J-32,jZ=($,Q,J)=>$>>>J-32|Q<<64-J,PZ=($,Q)=>Q,SZ=($,Q)=>$,fQ=($,Q,J)=>$<<J|Q>>>32-J,bQ=($,Q,J)=>Q<<J|$>>>32-J,xQ=($,Q,J)=>Q<<J-32|$>>>64-J,vQ=($,Q,J)=>$<<J-32|Q>>>64-J;function wZ($,Q,J,Y){let X=(Q>>>0)+(Y>>>0);return{h:$+J+(X/4294967296|0)|0,l:X|0}}var BZ=($,Q,J)=>($>>>0)+(Q>>>0)+(J>>>0),FZ=($,Q,J,Y)=>Q+J+Y+($/4294967296|0)|0,AZ=($,Q,J,Y)=>($>>>0)+(Q>>>0)+(J>>>0)+(Y>>>0),kZ=($,Q,J,Y,X)=>Q+J+Y+X+($/4294967296|0)|0,_Z=($,Q,J,Y,X)=>($>>>0)+(Q>>>0)+(J>>>0)+(Y>>>0)+(X>>>0),fZ=($,Q,J,Y,X,Z)=>Q+J+Y+X+Z+($/4294967296|0)|0;var bZ={fromBig:oJ,split:_Q,toBig:HZ,shrSH:LZ,shrSL:NZ,rotrSH:RZ,rotrSL:CZ,rotrBH:EZ,rotrBL:jZ,rotr32H:PZ,rotr32L:SZ,rotlSH:fQ,rotlSL:bQ,rotlBH:xQ,rotlBL:vQ,add:wZ,add3L:BZ,add3H:FZ,add4L:AZ,add4H:kZ,add5H:fZ,add5L:_Z},g=bZ;var[xZ,vZ]=(()=>g.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(($)=>BigInt($))))(),T0=new Uint32Array(80),U0=new Uint32Array(80);class iJ extends F0{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:$,Al:Q,Bh:J,Bl:Y,Ch:X,Cl:Z,Dh:q,Dl:G,Eh:M,El:W,Fh:V,Fl:D,Gh:I,Gl:P,Hh:K,Hl:H}=this;return[$,Q,J,Y,X,Z,q,G,M,W,V,D,I,P,K,H]}set($,Q,J,Y,X,Z,q,G,M,W,V,D,I,P,K,H){this.Ah=$|0,this.Al=Q|0,this.Bh=J|0,this.Bl=Y|0,this.Ch=X|0,this.Cl=Z|0,this.Dh=q|0,this.Dl=G|0,this.Eh=M|0,this.El=W|0,this.Fh=V|0,this.Fl=D|0,this.Gh=I|0,this.Gl=P|0,this.Hh=K|0,this.Hl=H|0}process($,Q){for(let U=0;U<16;U++,Q+=4)T0[U]=$.getUint32(Q),U0[U]=$.getUint32(Q+=4);for(let U=16;U<80;U++){let N=T0[U-15]|0,w=U0[U-15]|0,S=g.rotrSH(N,w,1)^g.rotrSH(N,w,8)^g.shrSH(N,w,7),R=g.rotrSL(N,w,1)^g.rotrSL(N,w,8)^g.shrSL(N,w,7),j=T0[U-2]|0,_=U0[U-2]|0,x=g.rotrSH(j,_,19)^g.rotrBH(j,_,61)^g.shrSH(j,_,6),v=g.rotrSL(j,_,19)^g.rotrBL(j,_,61)^g.shrSL(j,_,6),c=g.add4L(R,v,U0[U-7],U0[U-16]),F=g.add4H(c,S,x,T0[U-7],T0[U-16]);T0[U]=F|0,U0[U]=c|0}let{Ah:J,Al:Y,Bh:X,Bl:Z,Ch:q,Cl:G,Dh:M,Dl:W,Eh:V,El:D,Fh:I,Fl:P,Gh:K,Gl:H,Hh:L,Hl:z}=this;for(let U=0;U<80;U++){let N=g.rotrSH(V,D,14)^g.rotrSH(V,D,18)^g.rotrBH(V,D,41),w=g.rotrSL(V,D,14)^g.rotrSL(V,D,18)^g.rotrBL(V,D,41),S=V&I^~V&K,R=D&P^~D&H,j=g.add5L(z,w,R,vZ[U],U0[U]),_=g.add5H(j,L,N,S,xZ[U],T0[U]),x=j|0,v=g.rotrSH(J,Y,28)^g.rotrBH(J,Y,34)^g.rotrBH(J,Y,39),c=g.rotrSL(J,Y,28)^g.rotrBL(J,Y,34)^g.rotrBL(J,Y,39),F=J&X^J&q^X&q,A=Y&Z^Y&G^Z&G;L=K|0,z=H|0,K=I|0,H=P|0,I=V|0,P=D|0,{h:V,l:D}=g.add(M|0,W|0,_|0,x|0),M=q|0,W=G|0,q=X|0,G=Z|0,X=J|0,Z=Y|0;let k=g.add3L(x,c,A);J=g.add3H(k,_,v,F),Y=k|0}({h:J,l:Y}=g.add(this.Ah|0,this.Al|0,J|0,Y|0)),{h:X,l:Z}=g.add(this.Bh|0,this.Bl|0,X|0,Z|0),{h:q,l:G}=g.add(this.Ch|0,this.Cl|0,q|0,G|0),{h:M,l:W}=g.add(this.Dh|0,this.Dl|0,M|0,W|0),{h:V,l:D}=g.add(this.Eh|0,this.El|0,V|0,D|0),{h:I,l:P}=g.add(this.Fh|0,this.Fl|0,I|0,P|0),{h:K,l:H}=g.add(this.Gh|0,this.Gl|0,K|0,H|0),{h:L,l:z}=g.add(this.Hh|0,this.Hl|0,L|0,z|0),this.set(J,Y,X,Z,q,G,M,W,V,D,I,P,K,H,L,z)}roundClean(){T0.fill(0),U0.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 p8=O0(()=>new iJ);function yZ(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof window<"u")return window;throw Error("unable to locate global object")}var rJ=yZ(),aJ=rJ.crypto||rJ.msCrypto;function yQ($){switch($){case"sha256":return t$.create();case"sha512":return p8.create()}O(!1,"invalid hashing algorithm name","algorithm",$)}function sJ($,Q){let J={sha256:t$,sha512:p8}[$];return O(J!=null,"invalid hmac algorithm","algorithm",$),B0.create(J,Q)}function tJ($,Q,J,Y,X){let Z={sha256:t$,sha512:p8}[X];return O(Z!=null,"invalid pbkdf2 algorithm","algorithm",X),G8(Z,$,Q,{c:J,dkLen:Y})}function eJ($){b(aJ!=null,"platform does not support secure random numbers","UNSUPPORTED_OPERATION",{operation:"randomBytes"}),O(Number.isInteger($)&&$>0&&$<=1024,"invalid length","length",$);let Q=new Uint8Array($);return aJ.getRandomValues(Q),Q}var $Y=!1,QY=function($,Q,J){return sJ($,Q).update(J).digest()},JY=QY;function e$($,Q,J){let Y=E(Q,"key"),X=E(J,"data");return C(JY($,Y,X))}e$._=QY;e$.lock=function(){$Y=!0};e$.register=function($){if($Y)throw Error("computeHmac is locked");JY=$};Object.freeze(e$);var[ZY,qY,GY]=[[],[],[]],gZ=BigInt(0),M8=BigInt(1),hZ=BigInt(2),mZ=BigInt(7),cZ=BigInt(256),uZ=BigInt(113);for(let $=0,Q=M8,J=1,Y=0;$<24;$++){[J,Y]=[Y,(2*J+3*Y)%5],ZY.push(2*(5*Y+J)),qY.push(($+1)*($+2)/2%64);let X=gZ;for(let Z=0;Z<7;Z++)if(Q=(Q<<M8^(Q>>mZ)*uZ)%cZ,Q&hZ)X^=M8<<(M8<<BigInt(Z))-M8;GY.push(X)}var[pZ,lZ]=_Q(GY,!0),YY=($,Q,J)=>J>32?xQ($,Q,J):fQ($,Q,J),XY=($,Q,J)=>J>32?vQ($,Q,J):bQ($,Q,J);function dZ($,Q=24){let J=new Uint32Array(10);for(let Y=24-Q;Y<24;Y++){for(let q=0;q<10;q++)J[q]=$[q]^$[q+10]^$[q+20]^$[q+30]^$[q+40];for(let q=0;q<10;q+=2){let G=(q+8)%10,M=(q+2)%10,W=J[M],V=J[M+1],D=YY(W,V,1)^J[G],I=XY(W,V,1)^J[G+1];for(let P=0;P<50;P+=10)$[q+P]^=D,$[q+P+1]^=I}let X=$[2],Z=$[3];for(let q=0;q<24;q++){let G=qY[q],M=YY(X,Z,G),W=XY(X,Z,G),V=ZY[q];X=$[V],Z=$[V+1],$[V]=M,$[V+1]=W}for(let q=0;q<50;q+=10){for(let G=0;G<10;G++)J[G]=$[q+G];for(let G=0;G<10;G++)$[q+G]^=~J[(G+2)%10]&J[(G+4)%10]}$[0]^=pZ[Y],$[1]^=lZ[Y]}J.fill(0)}class gQ extends w0{constructor($,Q,J,Y=!1,X=24){super();if(this.blockLen=$,this.suffix=Q,this.outputLen=J,this.enableXOF=Y,this.rounds=X,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,T$(J),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=n0(this.state)}keccak(){dZ(this.state32,this.rounds),this.posOut=0,this.pos=0}update($){s$(this);let{blockLen:Q,state:J}=this;$=d$($);let Y=$.length;for(let X=0;X<Y;){let Z=Math.min(Q-this.pos,Y-X);for(let q=0;q<Z;q++)J[this.pos++]^=$[X++];if(this.pos===Q)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:$,suffix:Q,pos:J,blockLen:Y}=this;if($[J]^=Q,(Q&128)!==0&&J===Y-1)this.keccak();$[Y-1]^=128,this.keccak()}writeInto($){s$(this,!1),q8($),this.finish();let Q=this.state,{blockLen:J}=this;for(let Y=0,X=$.length;Y<X;){if(this.posOut>=J)this.keccak();let Z=Math.min(J-this.posOut,X-Y);$.set(Q.subarray(this.posOut,this.posOut+Z),Y),this.posOut+=Z,Y+=Z}return $}xofInto($){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto($)}xof($){return T$($),this.xofInto(new Uint8Array($))}digestInto($){if(g8($,this),this.finished)throw Error("digest() was already called");return this.writeInto($),this.destroy(),$}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto($){let{blockLen:Q,suffix:J,outputLen:Y,rounds:X,enableXOF:Z}=this;return $||($=new gQ(Q,J,Y,Z,X)),$.state32.set(this.state32),$.pos=this.pos,$.posOut=this.posOut,$.finished=this.finished,$.rounds=X,$.suffix=J,$.outputLen=Y,$.enableXOF=Z,$.destroyed=this.destroyed,$}}var nZ=($,Q,J)=>O0(()=>new gQ(Q,$,J));var MY=nZ(1,136,32);var WY=!1,VY=function($){return MY($)},zY=VY;function n($){let Q=E($,"data");return C(zY(Q))}n._=VY;n.lock=function(){WY=!0};n.register=function($){if(WY)throw TypeError("keccak256 is locked");zY=$};Object.freeze(n);var oZ=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),OY=Uint8Array.from({length:16},($,Q)=>Q),iZ=OY.map(($)=>(9*$+5)%16),hQ=[OY],mQ=[iZ];for(let $=0;$<4;$++)for(let Q of[hQ,mQ])Q.push(Q[$].map((J)=>oZ[J]));var KY=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(($)=>new Uint8Array($)),rZ=hQ.map(($,Q)=>$.map((J)=>KY[Q][J])),aZ=mQ.map(($,Q)=>$.map((J)=>KY[Q][J])),sZ=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),tZ=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),l8=($,Q)=>$<<Q|$>>>32-Q;function DY($,Q,J,Y){if($===0)return Q^J^Y;else if($===1)return Q&J|~Q&Y;else if($===2)return(Q|~J)^Y;else if($===3)return Q&Y|J&~Y;else return Q^(J|~Y)}var d8=new Uint32Array(16);class IY extends F0{constructor(){super(64,20,8,!0);this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){let{h0:$,h1:Q,h2:J,h3:Y,h4:X}=this;return[$,Q,J,Y,X]}set($,Q,J,Y,X){this.h0=$|0,this.h1=Q|0,this.h2=J|0,this.h3=Y|0,this.h4=X|0}process($,Q){for(let I=0;I<16;I++,Q+=4)d8[I]=$.getUint32(Q,!0);let J=this.h0|0,Y=J,X=this.h1|0,Z=X,q=this.h2|0,G=q,M=this.h3|0,W=M,V=this.h4|0,D=V;for(let I=0;I<5;I++){let P=4-I,K=sZ[I],H=tZ[I],L=hQ[I],z=mQ[I],U=rZ[I],N=aZ[I];for(let w=0;w<16;w++){let S=l8(J+DY(I,X,q,M)+d8[L[w]]+K,U[w])+V|0;J=V,V=M,M=l8(q,10)|0,q=X,X=S}for(let w=0;w<16;w++){let S=l8(Y+DY(P,Z,G,W)+d8[z[w]]+H,N[w])+D|0;Y=D,D=W,W=l8(G,10)|0,G=Z,Z=S}}this.set(this.h1+q+W|0,this.h2+M+D|0,this.h3+V+Y|0,this.h4+J+Z|0,this.h0+X+G|0)}roundClean(){d8.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var TY=O0(()=>new IY);var UY=!1,HY=function($){return TY($)},LY=HY;function $0($){let Q=E($,"data");return C(LY(Q))}$0._=HY;$0.lock=function(){UY=!0};$0.register=function($){if(UY)throw TypeError("ripemd160 is locked");LY=$};Object.freeze($0);var NY=!1,RY=function($,Q,J,Y,X){return tJ($,Q,J,Y,X)},CY=RY;function P$($,Q,J,Y,X){let Z=E($,"password"),q=E(Q,"salt");return C(CY(Z,q,J,Y,X))}P$._=RY;P$.lock=function(){NY=!0};P$.register=function($){if(NY)throw Error("pbkdf2 is locked");CY=$};Object.freeze(P$);var EY=!1,jY=function($){return new Uint8Array(eJ($))},PY=jY;function J$($){return PY($)}J$._=jY;J$.lock=function(){EY=!0};J$.register=function($){if(EY)throw Error("randomBytes is locked");PY=$};Object.freeze(J$);var d=($,Q)=>$<<Q|$>>>32-Q;function SY($,Q,J,Y,X,Z){let q=$[Q++]^J[Y++],G=$[Q++]^J[Y++],M=$[Q++]^J[Y++],W=$[Q++]^J[Y++],V=$[Q++]^J[Y++],D=$[Q++]^J[Y++],I=$[Q++]^J[Y++],P=$[Q++]^J[Y++],K=$[Q++]^J[Y++],H=$[Q++]^J[Y++],L=$[Q++]^J[Y++],z=$[Q++]^J[Y++],U=$[Q++]^J[Y++],N=$[Q++]^J[Y++],w=$[Q++]^J[Y++],S=$[Q++]^J[Y++],R=q,j=G,_=M,x=W,v=V,c=D,F=I,A=P,k=K,T=H,B=L,f=z,y=U,h=N,u=w,t=S;for(let V$=0;V$<8;V$+=2)v^=d(R+y|0,7),k^=d(v+R|0,9),y^=d(k+v|0,13),R^=d(y+k|0,18),T^=d(c+j|0,7),h^=d(T+c|0,9),j^=d(h+T|0,13),c^=d(j+h|0,18),u^=d(B+F|0,7),_^=d(u+B|0,9),F^=d(_+u|0,13),B^=d(F+_|0,18),x^=d(t+f|0,7),A^=d(x+t|0,9),f^=d(A+x|0,13),t^=d(f+A|0,18),j^=d(R+x|0,7),_^=d(j+R|0,9),x^=d(_+j|0,13),R^=d(x+_|0,18),F^=d(c+v|0,7),A^=d(F+c|0,9),v^=d(A+F|0,13),c^=d(v+A|0,18),f^=d(B+T|0,7),k^=d(f+B|0,9),T^=d(k+f|0,13),B^=d(T+k|0,18),y^=d(t+u|0,7),h^=d(y+t|0,9),u^=d(h+y|0,13),t^=d(u+h|0,18);X[Z++]=q+R|0,X[Z++]=G+j|0,X[Z++]=M+_|0,X[Z++]=W+x|0,X[Z++]=V+v|0,X[Z++]=D+c|0,X[Z++]=I+F|0,X[Z++]=P+A|0,X[Z++]=K+k|0,X[Z++]=H+T|0,X[Z++]=L+B|0,X[Z++]=z+f|0,X[Z++]=U+y|0,X[Z++]=N+h|0,X[Z++]=w+u|0,X[Z++]=S+t|0}function i0($,Q,J,Y,X){let Z=Y+0,q=Y+16*X;for(let G=0;G<16;G++)J[q+G]=$[Q+(2*X-1)*16+G];for(let G=0;G<X;G++,Z+=16,Q+=16){if(SY(J,q,$,Q,J,Z),G>0)q+=16;SY(J,Z,$,Q+=16,J,q)}}function wY($,Q,J){let Y=c8({dkLen:32,asyncTick:10,maxmem:1073742848},J),{N:X,r:Z,p:q,dkLen:G,asyncTick:M,maxmem:W,onProgress:V}=Y;if(T$(X),T$(Z),T$(q),T$(G),T$(M),T$(W),V!==void 0&&typeof V!=="function")throw Error("progressCb should be function");let D=128*Z,I=D/4;if(X<=1||(X&X-1)!==0||X>=2**(D/8)||X>4294967296)throw Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(q<0||q>137438953440/D)throw Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(G<0||G>137438953440)throw Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");let P=D*(X+q);if(P>W)throw Error(`Scrypt: parameters too large, ${P} (128 * r * (N + p)) > ${W} (maxmem)`);let K=G8(t$,$,Q,{c:1,dkLen:D*q}),H=n0(K),L=n0(new Uint8Array(D*X)),z=n0(new Uint8Array(D)),U=()=>{};if(V){let N=2*X*q,w=Math.max(Math.floor(N/1e4),1),S=0;U=()=>{if(S++,V&&(!(S%w)||S===N))V(S/N)}}return{N:X,r:Z,p:q,dkLen:G,blockSize32:I,V:L,B32:H,B:K,tmp:z,blockMixCb:U,asyncTick:M}}function BY($,Q,J,Y,X){let Z=G8(t$,$,J,{c:1,dkLen:Q});return J.fill(0),Y.fill(0),X.fill(0),Z}function FY($,Q,J){let{N:Y,r:X,p:Z,dkLen:q,blockSize32:G,V:M,B32:W,B:V,tmp:D,blockMixCb:I}=wY($,Q,J);for(let P=0;P<Z;P++){let K=G*P;for(let H=0;H<G;H++)M[H]=W[K+H];for(let H=0,L=0;H<Y-1;H++)i0(M,L,M,L+=G,X),I();i0(M,(Y-1)*G,W,K,X),I();for(let H=0;H<Y;H++){let L=W[K+G-16]%Y;for(let z=0;z<G;z++)D[z]=W[K+z]^M[L*G+z];i0(D,0,W,K,X),I()}}return BY($,q,V,M,D)}async function AY($,Q,J){let{N:Y,r:X,p:Z,dkLen:q,blockSize32:G,V:M,B32:W,B:V,tmp:D,blockMixCb:I,asyncTick:P}=wY($,Q,J);for(let K=0;K<Z;K++){let H=G*K;for(let z=0;z<G;z++)M[z]=W[H+z];let L=0;await m8(Y-1,P,()=>{i0(M,L,M,L+=G,X),I()}),i0(M,(Y-1)*G,W,H,X),I(),await m8(Y,P,()=>{let z=W[H+G-16]%Y;for(let U=0;U<G;U++)D[U]=W[H+U]^M[z*G+U];i0(D,0,W,H,X),I()})}return BY($,q,V,M,D)}var kY=!1,_Y=!1,fY=async function($,Q,J,Y,X,Z,q){return await AY($,Q,{N:J,r:Y,p:X,dkLen:Z,onProgress:q})},bY=function($,Q,J,Y,X,Z){return FY($,Q,{N:J,r:Y,p:X,dkLen:Z})},xY=fY,vY=bY;async function Q0($,Q,J,Y,X,Z,q){let G=E($,"passwd"),M=E(Q,"salt");return C(await xY(G,M,J,Y,X,Z,q))}Q0._=fY;Q0.lock=function(){_Y=!0};Q0.register=function($){if(_Y)throw Error("scrypt is locked");xY=$};Object.freeze(Q0);function J0($,Q,J,Y,X,Z){let q=E($,"passwd"),G=E(Q,"salt");return C(vY(q,G,J,Y,X,Z))}J0._=bY;J0.lock=function(){kY=!0};J0.register=function($){if(kY)throw Error("scryptSync is locked");vY=$};Object.freeze(J0);var yY=function($){return yQ("sha256").update($).digest()},gY=function($){return yQ("sha512").update($).digest()},hY=yY,mY=gY,cY=!1,uY=!1;function M$($){let Q=E($,"data");return C(hY(Q))}M$._=yY;M$.lock=function(){cY=!0};M$.register=function($){if(cY)throw Error("sha256 is locked");hY=$};Object.freeze(M$);function W8($){let Q=E($,"data");return C(mY(Q))}W8._=gY;W8.lock=function(){uY=!0};W8.register=function($){if(uY)throw Error("sha512 is locked");mY=$};Object.freeze(M$);var lQ={};dX(lQ,{validateObject:()=>L0,utf8ToBytes:()=>Y9,numberToVarBytesBE:()=>Q9,numberToHexUnpadded:()=>dY,numberToBytesLE:()=>r8,numberToBytesBE:()=>H0,hexToNumber:()=>uQ,hexToBytes:()=>k0,equalBytes:()=>J9,ensureBytes:()=>S$,createHmacDrbg:()=>pQ,concatBytes:()=>r0,bytesToNumberLE:()=>i8,bytesToNumberBE:()=>Y0,bytesToHex:()=>A0,bitSet:()=>q9,bitMask:()=>V8,bitLen:()=>X9,bitGet:()=>Z9});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var lY=BigInt(0),n8=BigInt(1),eZ=BigInt(2),o8=($)=>$ instanceof Uint8Array,$9=Array.from({length:256},($,Q)=>Q.toString(16).padStart(2,"0"));function A0($){if(!o8($))throw Error("Uint8Array expected");let Q="";for(let J=0;J<$.length;J++)Q+=$9[$[J]];return Q}function dY($){let Q=$.toString(16);return Q.length&1?`0${Q}`:Q}function uQ($){if(typeof $!=="string")throw Error("hex string expected, got "+typeof $);return BigInt($===""?"0":`0x${$}`)}function k0($){if(typeof $!=="string")throw Error("hex string expected, got "+typeof $);let Q=$.length;if(Q%2)throw Error("padded hex string expected, got unpadded hex of length "+Q);let J=new Uint8Array(Q/2);for(let Y=0;Y<J.length;Y++){let X=Y*2,Z=$.slice(X,X+2),q=Number.parseInt(Z,16);if(Number.isNaN(q)||q<0)throw Error("Invalid byte sequence");J[Y]=q}return J}function Y0($){return uQ(A0($))}function i8($){if(!o8($))throw Error("Uint8Array expected");return uQ(A0(Uint8Array.from($).reverse()))}function H0($,Q){return k0($.toString(16).padStart(Q*2,"0"))}function r8($,Q){return H0($,Q).reverse()}function Q9($){return k0(dY($))}function S$($,Q,J){let Y;if(typeof Q==="string")try{Y=k0(Q)}catch(Z){throw Error(`${$} must be valid hex string, got "${Q}". Cause: ${Z}`)}else if(o8(Q))Y=Uint8Array.from(Q);else throw Error(`${$} must be hex string or Uint8Array`);let X=Y.length;if(typeof J==="number"&&X!==J)throw Error(`${$} expected ${J} bytes, got ${X}`);return Y}function r0(...$){let Q=new Uint8Array($.reduce((Y,X)=>Y+X.length,0)),J=0;return $.forEach((Y)=>{if(!o8(Y))throw Error("Uint8Array expected");Q.set(Y,J),J+=Y.length}),Q}function J9($,Q){if($.length!==Q.length)return!1;for(let J=0;J<$.length;J++)if($[J]!==Q[J])return!1;return!0}function Y9($){if(typeof $!=="string")throw Error(`utf8ToBytes expected string, got ${typeof $}`);return new Uint8Array(new TextEncoder().encode($))}function X9($){let Q;for(Q=0;$>lY;$>>=n8,Q+=1);return Q}function Z9($,Q){return $>>BigInt(Q)&n8}var q9=($,Q,J)=>{return $|(J?n8:lY)<<BigInt(Q)},V8=($)=>(eZ<<BigInt($-1))-n8,cQ=($)=>new Uint8Array($),pY=($)=>Uint8Array.from($);function pQ($,Q,J){if(typeof $!=="number"||$<2)throw Error("hashLen must be a number");if(typeof Q!=="number"||Q<2)throw Error("qByteLen must be a number");if(typeof J!=="function")throw Error("hmacFn must be a function");let Y=cQ($),X=cQ($),Z=0,q=()=>{Y.fill(1),X.fill(0),Z=0},G=(...D)=>J(X,Y,...D),M=(D=cQ())=>{if(X=G(pY([0]),D),Y=G(),D.length===0)return;X=G(pY([1]),D),Y=G()},W=()=>{if(Z++>=1000)throw Error("drbg: tried 1000 values");let D=0,I=[];while(D<Q){Y=G();let P=Y.slice();I.push(P),D+=Y.length}return r0(...I)};return(D,I)=>{q(),M(D);let P=void 0;while(!(P=I(W())))M();return q(),P}}var G9={bigint:($)=>typeof $==="bigint",function:($)=>typeof $==="function",boolean:($)=>typeof $==="boolean",string:($)=>typeof $==="string",stringOrUint8Array:($)=>typeof $==="string"||$ instanceof Uint8Array,isSafeInteger:($)=>Number.isSafeInteger($),array:($)=>Array.isArray($),field:($,Q)=>Q.Fp.isValid($),hash:($)=>typeof $==="function"&&Number.isSafeInteger($.outputLen)};function L0($,Q,J={}){let Y=(X,Z,q)=>{let G=G9[Z];if(typeof G!=="function")throw Error(`Invalid validator "${Z}", expected function`);let M=$[X];if(q&&M===void 0)return;if(!G(M,$))throw Error(`Invalid param ${String(X)}=${M} (${typeof M}), expected ${Z}`)};for(let[X,Z]of Object.entries(Q))Y(X,Z,!1);for(let[X,Z]of Object.entries(J))Y(X,Z,!0);return $}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var W$=BigInt(0),Y$=BigInt(1),_0=BigInt(2),M9=BigInt(3),dQ=BigInt(4),nY=BigInt(5),oY=BigInt(8),W9=BigInt(9),V9=BigInt(16);function U$($,Q){let J=$%Q;return J>=W$?J:Q+J}function z9($,Q,J){if(J<=W$||Q<W$)throw Error("Expected power/modulo > 0");if(J===Y$)return W$;let Y=Y$;while(Q>W$){if(Q&Y$)Y=Y*$%J;$=$*$%J,Q>>=Y$}return Y}function w$($,Q,J){let Y=$;while(Q-- >W$)Y*=Y,Y%=J;return Y}function a8($,Q){if($===W$||Q<=W$)throw Error(`invert: expected positive integers, got n=${$} mod=${Q}`);let J=U$($,Q),Y=Q,X=W$,Z=Y$,q=Y$,G=W$;while(J!==W$){let W=Y/J,V=Y%J,D=X-q*W,I=Z-G*W;Y=J,J=V,X=q,Z=G,q=D,G=I}if(Y!==Y$)throw Error("invert: does not exist");return U$(X,Q)}function D9($){let Q=($-Y$)/_0,J,Y,X;for(J=$-Y$,Y=0;J%_0===W$;J/=_0,Y++);for(X=_0;X<$&&z9(X,Q,$)!==$-Y$;X++);if(Y===1){let q=($+Y$)/dQ;return function(M,W){let V=M.pow(W,q);if(!M.eql(M.sqr(V),W))throw Error("Cannot find square root");return V}}let Z=(J+Y$)/_0;return function(G,M){if(G.pow(M,Q)===G.neg(G.ONE))throw Error("Cannot find square root");let W=Y,V=G.pow(G.mul(G.ONE,X),J),D=G.pow(M,Z),I=G.pow(M,J);while(!G.eql(I,G.ONE)){if(G.eql(I,G.ZERO))return G.ZERO;let P=1;for(let H=G.sqr(I);P<W;P++){if(G.eql(H,G.ONE))break;H=G.sqr(H)}let K=G.pow(V,Y$<<BigInt(W-P-1));V=G.sqr(K),D=G.mul(D,K),I=G.mul(I,V),W=P}return D}}function O9($){if($%dQ===M9){let Q=($+Y$)/dQ;return function(Y,X){let Z=Y.pow(X,Q);if(!Y.eql(Y.sqr(Z),X))throw Error("Cannot find square root");return Z}}if($%oY===nY){let Q=($-nY)/oY;return function(Y,X){let Z=Y.mul(X,_0),q=Y.pow(Z,Q),G=Y.mul(X,q),M=Y.mul(Y.mul(G,_0),q),W=Y.mul(G,Y.sub(M,Y.ONE));if(!Y.eql(Y.sqr(W),X))throw Error("Cannot find square root");return W}}if($%V9===W9);return D9($)}var K9=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function nQ($){let Q={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},J=K9.reduce((Y,X)=>{return Y[X]="function",Y},Q);return L0($,J)}function I9($,Q,J){if(J<W$)throw Error("Expected power > 0");if(J===W$)return $.ONE;if(J===Y$)return Q;let Y=$.ONE,X=Q;while(J>W$){if(J&Y$)Y=$.mul(Y,X);X=$.sqr(X),J>>=Y$}return Y}function T9($,Q){let J=Array(Q.length),Y=Q.reduce((Z,q,G)=>{if($.is0(q))return Z;return J[G]=Z,$.mul(Z,q)},$.ONE),X=$.inv(Y);return Q.reduceRight((Z,q,G)=>{if($.is0(q))return Z;return J[G]=$.mul(Z,J[G]),$.mul(Z,q)},X),J}function oQ($,Q){let J=Q!==void 0?Q:$.toString(2).length,Y=Math.ceil(J/8);return{nBitLength:J,nByteLength:Y}}function iY($,Q,J=!1,Y={}){if($<=W$)throw Error(`Expected Field ORDER > 0, got ${$}`);let{nBitLength:X,nByteLength:Z}=oQ($,Q);if(Z>2048)throw Error("Field lengths over 2048 bytes are not supported");let q=O9($),G=Object.freeze({ORDER:$,BITS:X,BYTES:Z,MASK:V8(X),ZERO:W$,ONE:Y$,create:(M)=>U$(M,$),isValid:(M)=>{if(typeof M!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof M}`);return W$<=M&&M<$},is0:(M)=>M===W$,isOdd:(M)=>(M&Y$)===Y$,neg:(M)=>U$(-M,$),eql:(M,W)=>M===W,sqr:(M)=>U$(M*M,$),add:(M,W)=>U$(M+W,$),sub:(M,W)=>U$(M-W,$),mul:(M,W)=>U$(M*W,$),pow:(M,W)=>I9(G,M,W),div:(M,W)=>U$(M*a8(W,$),$),sqrN:(M)=>M*M,addN:(M,W)=>M+W,subN:(M,W)=>M-W,mulN:(M,W)=>M*W,inv:(M)=>a8(M,$),sqrt:Y.sqrt||((M)=>q(G,M)),invertBatch:(M)=>T9(G,M),cmov:(M,W,V)=>V?W:M,toBytes:(M)=>J?r8(M,Z):H0(M,Z),fromBytes:(M)=>{if(M.length!==Z)throw Error(`Fp.fromBytes: expected ${Z}, got ${M.length}`);return J?i8(M):Y0(M)}});return Object.freeze(G)}function rY($){if(typeof $!=="bigint")throw Error("field order must be bigint");let Q=$.toString(2).length;return Math.ceil(Q/8)}function iQ($){let Q=rY($);return Q+Math.ceil(Q/2)}function aY($,Q,J=!1){let Y=$.length,X=rY(Q),Z=iQ(Q);if(Y<16||Y<Z||Y>1024)throw Error(`expected ${Z}-1024 bytes of input, got ${Y}`);let q=J?Y0($):i8($),G=U$(q,Q-Y$)+Y$;return J?r8(G,X):H0(G,X)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var H9=BigInt(0),rQ=BigInt(1);function sY($,Q){let J=(X,Z)=>{let q=Z.negate();return X?q:Z},Y=(X)=>{let Z=Math.ceil(Q/X)+1,q=2**(X-1);return{windows:Z,windowSize:q}};return{constTimeNegate:J,unsafeLadder(X,Z){let q=$.ZERO,G=X;while(Z>H9){if(Z&rQ)q=q.add(G);G=G.double(),Z>>=rQ}return q},precomputeWindow(X,Z){let{windows:q,windowSize:G}=Y(Z),M=[],W=X,V=W;for(let D=0;D<q;D++){V=W,M.push(V);for(let I=1;I<G;I++)V=V.add(W),M.push(V);W=V.double()}return M},wNAF(X,Z,q){let{windows:G,windowSize:M}=Y(X),W=$.ZERO,V=$.BASE,D=BigInt(2**X-1),I=2**X,P=BigInt(X);for(let K=0;K<G;K++){let H=K*M,L=Number(q&D);if(q>>=P,L>M)L-=I,q+=rQ;let z=H,U=H+Math.abs(L)-1,N=K%2!==0,w=L<0;if(L===0)V=V.add(J(N,Z[z]));else W=W.add(J(w,Z[U]))}return{p:W,f:V}},wNAFCached(X,Z,q,G){let M=X._WINDOW_SIZE||1,W=Z.get(X);if(!W){if(W=this.precomputeWindow(X,M),M!==1)Z.set(X,G(W))}return this.wNAF(M,W,q)}}}function aQ($){return nQ($.Fp),L0($,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...oQ($.n,$.nBitLength),...$,...{p:$.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function L9($){let Q=aQ($);L0(Q,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:J,Fp:Y,a:X}=Q;if(J){if(!Y.eql(X,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof J!=="object"||typeof J.beta!=="bigint"||typeof J.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...Q})}var{bytesToNumberBE:N9,hexToBytes:R9}=lQ,f0={Err:class extends Error{constructor(Q=""){super(Q)}},_parseInt($){let{Err:Q}=f0;if($.length<2||$[0]!==2)throw new Q("Invalid signature integer tag");let J=$[1],Y=$.subarray(2,J+2);if(!J||Y.length!==J)throw new Q("Invalid signature integer: wrong length");if(Y[0]&128)throw new Q("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new Q("Invalid signature integer: unnecessary leading zero");return{d:N9(Y),l:$.subarray(J+2)}},toSig($){let{Err:Q}=f0,J=typeof $==="string"?R9($):$;if(!(J instanceof Uint8Array))throw Error("ui8a expected");let Y=J.length;if(Y<2||J[0]!=48)throw new Q("Invalid signature tag");if(J[1]!==Y-2)throw new Q("Invalid signature: incorrect length");let{d:X,l:Z}=f0._parseInt(J.subarray(2)),{d:q,l:G}=f0._parseInt(Z);if(G.length)throw new Q("Invalid signature: left bytes after parsing");return{r:X,s:q}},hexFromSig($){let Q=(W)=>Number.parseInt(W[0],16)&8?"00"+W:W,J=(W)=>{let V=W.toString(16);return V.length&1?`0${V}`:V},Y=Q(J($.s)),X=Q(J($.r)),Z=Y.length/2,q=X.length/2,G=J(Z),M=J(q);return`30${J(q+Z+4)}02${M}${X}02${G}${Y}`}},X0=BigInt(0),A$=BigInt(1),g5=BigInt(2),tY=BigInt(3),h5=BigInt(4);function C9($){let Q=L9($),{Fp:J}=Q,Y=Q.toBytes||((K,H,L)=>{let z=H.toAffine();return r0(Uint8Array.from([4]),J.toBytes(z.x),J.toBytes(z.y))}),X=Q.fromBytes||((K)=>{let H=K.subarray(1),L=J.fromBytes(H.subarray(0,J.BYTES)),z=J.fromBytes(H.subarray(J.BYTES,2*J.BYTES));return{x:L,y:z}});function Z(K){let{a:H,b:L}=Q,z=J.sqr(K),U=J.mul(z,K);return J.add(J.add(U,J.mul(K,H)),L)}if(!J.eql(J.sqr(Q.Gy),Z(Q.Gx)))throw Error("bad generator point: equation left != right");function q(K){return typeof K==="bigint"&&X0<K&&K<Q.n}function G(K){if(!q(K))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function M(K){let{allowedPrivateKeyLengths:H,nByteLength:L,wrapPrivateKey:z,n:U}=Q;if(H&&typeof K!=="bigint"){if(K instanceof Uint8Array)K=A0(K);if(typeof K!=="string"||!H.includes(K.length))throw Error("Invalid key");K=K.padStart(L*2,"0")}let N;try{N=typeof K==="bigint"?K:Y0(S$("private key",K,L))}catch(w){throw Error(`private key must be ${L} bytes, hex or bigint, not ${typeof K}`)}if(z)N=U$(N,U);return G(N),N}let W=new Map;function V(K){if(!(K instanceof D))throw Error("ProjectivePoint expected")}class D{constructor(K,H,L){if(this.px=K,this.py=H,this.pz=L,K==null||!J.isValid(K))throw Error("x required");if(H==null||!J.isValid(H))throw Error("y required");if(L==null||!J.isValid(L))throw Error("z required")}static fromAffine(K){let{x:H,y:L}=K||{};if(!K||!J.isValid(H)||!J.isValid(L))throw Error("invalid affine point");if(K instanceof D)throw Error("projective point not allowed");let z=(U)=>J.eql(U,J.ZERO);if(z(H)&&z(L))return D.ZERO;return new D(H,L,J.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(K){let H=J.invertBatch(K.map((L)=>L.pz));return K.map((L,z)=>L.toAffine(H[z])).map(D.fromAffine)}static fromHex(K){let H=D.fromAffine(X(S$("pointHex",K)));return H.assertValidity(),H}static fromPrivateKey(K){return D.BASE.multiply(M(K))}_setWindowSize(K){this._WINDOW_SIZE=K,W.delete(this)}assertValidity(){if(this.is0()){if(Q.allowInfinityPoint&&!J.is0(this.py))return;throw Error("bad point: ZERO")}let{x:K,y:H}=this.toAffine();if(!J.isValid(K)||!J.isValid(H))throw Error("bad point: x or y not FE");let L=J.sqr(H),z=Z(K);if(!J.eql(L,z))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:K}=this.toAffine();if(J.isOdd)return!J.isOdd(K);throw Error("Field doesn't support isOdd")}equals(K){V(K);let{px:H,py:L,pz:z}=this,{px:U,py:N,pz:w}=K,S=J.eql(J.mul(H,w),J.mul(U,z)),R=J.eql(J.mul(L,w),J.mul(N,z));return S&&R}negate(){return new D(this.px,J.neg(this.py),this.pz)}double(){let{a:K,b:H}=Q,L=J.mul(H,tY),{px:z,py:U,pz:N}=this,w=J.ZERO,S=J.ZERO,R=J.ZERO,j=J.mul(z,z),_=J.mul(U,U),x=J.mul(N,N),v=J.mul(z,U);return v=J.add(v,v),R=J.mul(z,N),R=J.add(R,R),w=J.mul(K,R),S=J.mul(L,x),S=J.add(w,S),w=J.sub(_,S),S=J.add(_,S),S=J.mul(w,S),w=J.mul(v,w),R=J.mul(L,R),x=J.mul(K,x),v=J.sub(j,x),v=J.mul(K,v),v=J.add(v,R),R=J.add(j,j),j=J.add(R,j),j=J.add(j,x),j=J.mul(j,v),S=J.add(S,j),x=J.mul(U,N),x=J.add(x,x),j=J.mul(x,v),w=J.sub(w,j),R=J.mul(x,_),R=J.add(R,R),R=J.add(R,R),new D(w,S,R)}add(K){V(K);let{px:H,py:L,pz:z}=this,{px:U,py:N,pz:w}=K,S=J.ZERO,R=J.ZERO,j=J.ZERO,_=Q.a,x=J.mul(Q.b,tY),v=J.mul(H,U),c=J.mul(L,N),F=J.mul(z,w),A=J.add(H,L),k=J.add(U,N);A=J.mul(A,k),k=J.add(v,c),A=J.sub(A,k),k=J.add(H,z);let T=J.add(U,w);return k=J.mul(k,T),T=J.add(v,F),k=J.sub(k,T),T=J.add(L,z),S=J.add(N,w),T=J.mul(T,S),S=J.add(c,F),T=J.sub(T,S),j=J.mul(_,k),S=J.mul(x,F),j=J.add(S,j),S=J.sub(c,j),j=J.add(c,j),R=J.mul(S,j),c=J.add(v,v),c=J.add(c,v),F=J.mul(_,F),k=J.mul(x,k),c=J.add(c,F),F=J.sub(v,F),F=J.mul(_,F),k=J.add(k,F),v=J.mul(c,k),R=J.add(R,v),v=J.mul(T,k),S=J.mul(A,S),S=J.sub(S,v),v=J.mul(A,c),j=J.mul(T,j),j=J.add(j,v),new D(S,R,j)}subtract(K){return this.add(K.negate())}is0(){return this.equals(D.ZERO)}wNAF(K){return P.wNAFCached(this,W,K,(H)=>{let L=J.invertBatch(H.map((z)=>z.pz));return H.map((z,U)=>z.toAffine(L[U])).map(D.fromAffine)})}multiplyUnsafe(K){let H=D.ZERO;if(K===X0)return H;if(G(K),K===A$)return this;let{endo:L}=Q;if(!L)return P.unsafeLadder(this,K);let{k1neg:z,k1:U,k2neg:N,k2:w}=L.splitScalar(K),S=H,R=H,j=this;while(U>X0||w>X0){if(U&A$)S=S.add(j);if(w&A$)R=R.add(j);j=j.double(),U>>=A$,w>>=A$}if(z)S=S.negate();if(N)R=R.negate();return R=new D(J.mul(R.px,L.beta),R.py,R.pz),S.add(R)}multiply(K){G(K);let H=K,L,z,{endo:U}=Q;if(U){let{k1neg:N,k1:w,k2neg:S,k2:R}=U.splitScalar(H),{p:j,f:_}=this.wNAF(w),{p:x,f:v}=this.wNAF(R);j=P.constTimeNegate(N,j),x=P.constTimeNegate(S,x),x=new D(J.mul(x.px,U.beta),x.py,x.pz),L=j.add(x),z=_.add(v)}else{let{p:N,f:w}=this.wNAF(H);L=N,z=w}return D.normalizeZ([L,z])[0]}multiplyAndAddUnsafe(K,H,L){let z=D.BASE,U=(w,S)=>S===X0||S===A$||!w.equals(z)?w.multiplyUnsafe(S):w.multiply(S),N=U(this,H).add(U(K,L));return N.is0()?void 0:N}toAffine(K){let{px:H,py:L,pz:z}=this,U=this.is0();if(K==null)K=U?J.ONE:J.inv(z);let N=J.mul(H,K),w=J.mul(L,K),S=J.mul(z,K);if(U)return{x:J.ZERO,y:J.ZERO};if(!J.eql(S,J.ONE))throw Error("invZ was invalid");return{x:N,y:w}}isTorsionFree(){let{h:K,isTorsionFree:H}=Q;if(K===A$)return!0;if(H)return H(D,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:K,clearCofactor:H}=Q;if(K===A$)return this;if(H)return H(D,this);return this.multiplyUnsafe(Q.h)}toRawBytes(K=!0){return this.assertValidity(),Y(D,this,K)}toHex(K=!0){return A0(this.toRawBytes(K))}}D.BASE=new D(Q.Gx,Q.Gy,J.ONE),D.ZERO=new D(J.ZERO,J.ONE,J.ZERO);let I=Q.nBitLength,P=sY(D,Q.endo?Math.ceil(I/2):I);return{CURVE:Q,ProjectivePoint:D,normPrivateKeyToScalar:M,weierstrassEquation:Z,isWithinCurveOrder:q}}function E9($){let Q=aQ($);return L0(Q,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...Q})}function eY($){let Q=E9($),{Fp:J,n:Y}=Q,X=J.BYTES+1,Z=2*J.BYTES+1;function q(T){return X0<T&&T<J.ORDER}function G(T){return U$(T,Y)}function M(T){return a8(T,Y)}let{ProjectivePoint:W,normPrivateKeyToScalar:V,weierstrassEquation:D,isWithinCurveOrder:I}=C9({...Q,toBytes(T,B,f){let y=B.toAffine(),h=J.toBytes(y.x),u=r0;if(f)return u(Uint8Array.from([B.hasEvenY()?2:3]),h);else return u(Uint8Array.from([4]),h,J.toBytes(y.y))},fromBytes(T){let B=T.length,f=T[0],y=T.subarray(1);if(B===X&&(f===2||f===3)){let h=Y0(y);if(!q(h))throw Error("Point is not on curve");let u=D(h),t=J.sqrt(u),V$=(t&A$)===A$;if((f&1)===1!==V$)t=J.neg(t);return{x:h,y:t}}else if(B===Z&&f===4){let h=J.fromBytes(y.subarray(0,J.BYTES)),u=J.fromBytes(y.subarray(J.BYTES,2*J.BYTES));return{x:h,y:u}}else throw Error(`Point of length ${B} was invalid. Expected ${X} compressed bytes or ${Z} uncompressed bytes`)}}),P=(T)=>A0(H0(T,Q.nByteLength));function K(T){let B=Y>>A$;return T>B}function H(T){return K(T)?G(-T):T}let L=(T,B,f)=>Y0(T.slice(B,f));class z{constructor(T,B,f){this.r=T,this.s=B,this.recovery=f,this.assertValidity()}static fromCompact(T){let B=Q.nByteLength;return T=S$("compactSignature",T,B*2),new z(L(T,0,B),L(T,B,2*B))}static fromDER(T){let{r:B,s:f}=f0.toSig(S$("DER",T));return new z(B,f)}assertValidity(){if(!I(this.r))throw Error("r must be 0 < r < CURVE.n");if(!I(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(T){return new z(this.r,this.s,T)}recoverPublicKey(T){let{r:B,s:f,recovery:y}=this,h=j(S$("msgHash",T));if(y==null||![0,1,2,3].includes(y))throw Error("recovery id invalid");let u=y===2||y===3?B+Q.n:B;if(u>=J.ORDER)throw Error("recovery id 2 or 3 invalid");let t=(y&1)===0?"02":"03",V$=W.fromHex(t+P(u)),B$=M(u),Z$=G(-h*B$),c$=G(f*B$),j0=W.BASE.multiplyAndAddUnsafe(V$,Z$,c$);if(!j0)throw Error("point at infinify");return j0.assertValidity(),j0}hasHighS(){return K(this.s)}normalizeS(){return this.hasHighS()?new z(this.r,G(-this.s),this.recovery):this}toDERRawBytes(){return k0(this.toDERHex())}toDERHex(){return f0.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return k0(this.toCompactHex())}toCompactHex(){return P(this.r)+P(this.s)}}let U={isValidPrivateKey(T){try{return V(T),!0}catch(B){return!1}},normPrivateKeyToScalar:V,randomPrivateKey:()=>{let T=iQ(Q.n);return aY(Q.randomBytes(T),Q.n)},precompute(T=8,B=W.BASE){return B._setWindowSize(T),B.multiply(BigInt(3)),B}};function N(T,B=!0){return W.fromPrivateKey(T).toRawBytes(B)}function w(T){let B=T instanceof Uint8Array,f=typeof T==="string",y=(B||f)&&T.length;if(B)return y===X||y===Z;if(f)return y===2*X||y===2*Z;if(T instanceof W)return!0;return!1}function S(T,B,f=!0){if(w(T))throw Error("first arg must be private key");if(!w(B))throw Error("second arg must be public key");return W.fromHex(B).multiply(V(T)).toRawBytes(f)}let R=Q.bits2int||function(T){let B=Y0(T),f=T.length*8-Q.nBitLength;return f>0?B>>BigInt(f):B},j=Q.bits2int_modN||function(T){return G(R(T))},_=V8(Q.nBitLength);function x(T){if(typeof T!=="bigint")throw Error("bigint expected");if(!(X0<=T&&T<_))throw Error(`bigint expected < 2^${Q.nBitLength}`);return H0(T,Q.nByteLength)}function v(T,B,f=c){if(["recovered","canonical"].some((P0)=>(P0 in f)))throw Error("sign() legacy options not supported");let{hash:y,randomBytes:h}=Q,{lowS:u,prehash:t,extraEntropy:V$}=f;if(u==null)u=!0;if(T=S$("msgHash",T),t)T=S$("prehashed msgHash",y(T));let B$=j(T),Z$=V(B),c$=[x(Z$),x(B$)];if(V$!=null){let P0=V$===!0?h(J.BYTES):V$;c$.push(S$("extraEntropy",P0))}let j0=r0(...c$),P8=B$;function wQ(P0){let h0=R(P0);if(!I(h0))return;let FJ=M(h0),u$=W.BASE.multiply(h0).toAffine(),m0=G(u$.x);if(m0===X0)return;let S8=G(FJ*G(P8+m0*Z$));if(S8===X0)return;let AJ=(u$.x===m0?0:2)|Number(u$.y&A$),kJ=S8;if(u&&K(S8))kJ=H(S8),AJ^=1;return new z(m0,kJ,AJ)}return{seed:j0,k2sig:wQ}}let c={lowS:Q.lowS,prehash:!1},F={lowS:Q.lowS,prehash:!1};function A(T,B,f=c){let{seed:y,k2sig:h}=v(T,B,f),u=Q;return pQ(u.hash.outputLen,u.nByteLength,u.hmac)(y,h)}W.BASE._setWindowSize(8);function k(T,B,f,y=F){let h=T;if(B=S$("msgHash",B),f=S$("publicKey",f),"strict"in y)throw Error("options.strict was renamed to lowS");let{lowS:u,prehash:t}=y,V$=void 0,B$;try{if(typeof h==="string"||h instanceof Uint8Array)try{V$=z.fromDER(h)}catch(u$){if(!(u$ instanceof f0.Err))throw u$;V$=z.fromCompact(h)}else if(typeof h==="object"&&typeof h.r==="bigint"&&typeof h.s==="bigint"){let{r:u$,s:m0}=h;V$=new z(u$,m0)}else throw Error("PARSE");B$=W.fromHex(f)}catch(u$){if(u$.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(u&&V$.hasHighS())return!1;if(t)B=Q.hash(B);let{r:Z$,s:c$}=V$,j0=j(B),P8=M(c$),wQ=G(j0*P8),P0=G(Z$*P8),h0=W.BASE.multiplyAndAddUnsafe(B$,wQ,P0)?.toAffine();if(!h0)return!1;return G(h0.x)===Z$}return{CURVE:Q,getPublicKey:N,getSharedSecret:S,sign:A,verify:k,ProjectivePoint:W,Signature:z,utils:U}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function j9($){return{hash:$,hmac:(Q,...J)=>B0($,Q,lJ(...J)),randomBytes:dJ}}function $X($,Q){let J=(Y)=>eY({...$,...j9(Y)});return Object.freeze({...J(Q),create:J})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var YX=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),QX=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),P9=BigInt(1),sQ=BigInt(2),JX=($,Q)=>($+Q/sQ)/Q;function S9($){let Q=YX,J=BigInt(3),Y=BigInt(6),X=BigInt(11),Z=BigInt(22),q=BigInt(23),G=BigInt(44),M=BigInt(88),W=$*$*$%Q,V=W*W*$%Q,D=w$(V,J,Q)*V%Q,I=w$(D,J,Q)*V%Q,P=w$(I,sQ,Q)*W%Q,K=w$(P,X,Q)*P%Q,H=w$(K,Z,Q)*K%Q,L=w$(H,G,Q)*H%Q,z=w$(L,M,Q)*L%Q,U=w$(z,G,Q)*H%Q,N=w$(U,J,Q)*V%Q,w=w$(N,q,Q)*K%Q,S=w$(w,Y,Q)*W%Q,R=w$(S,sQ,Q);if(!tQ.eql(tQ.sqr(R),$))throw Error("Cannot find square root");return R}var tQ=iY(YX,void 0,void 0,{sqrt:S9}),Z0=$X({a:BigInt(0),b:BigInt(7),Fp:tQ,n:QX,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:($)=>{let Q=QX,J=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-P9*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),X=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),Z=J,q=BigInt("0x100000000000000000000000000000000"),G=JX(Z*$,Q),M=JX(-Y*$,Q),W=U$($-G*J-M*X,Q),V=U$(-G*Y-M*Z,Q),D=W>q,I=V>q;if(D)W=Q-W;if(I)V=Q-V;if(W>q||V>q)throw Error("splitScalar: Endomorphism failed, k="+$);return{k1neg:D,k1:W,k2neg:I,k2:V}}}},t$),i5=BigInt(0);var r5=Z0.ProjectivePoint;var eQ="0x0000000000000000000000000000000000000000";var s8="0x0000000000000000000000000000000000000000000000000000000000000000";var $J=`\x19Ethereum Signed Message:
|
|
3
|
-
`;var XX=BigInt(0),ZX=BigInt(1),qX=BigInt(2),GX=BigInt(27),MX=BigInt(28),t8=BigInt(35),a0={};function WX($){return j$(a($),32)}class $${#$;#Q;#J;#Y;get r(){return this.#$}set r($){O(a$($)===32,"invalid r","value",$),this.#$=C($)}get s(){return O(parseInt(this.#Q.substring(0,3))<8,"non-canonical s; use ._s","s",this.#Q),this.#Q}set s($){O(a$($)===32,"invalid s","value",$),this.#Q=C($)}get _s(){return this.#Q}isValid(){return parseInt(this.#Q.substring(0,3))<8}get v(){return this.#J}set v($){let Q=z$($,"value");O(Q===27||Q===28,"invalid v","v",$),this.#J=Q}get networkV(){return this.#Y}get legacyChainId(){let $=this.networkV;if($==null)return null;return $$.getChainId($)}get yParity(){return this.v===27?0:1}get yParityAndS(){let $=E(this.s);if(this.yParity)$[0]|=128;return C($)}get compactSerialized(){return o([this.r,this.yParityAndS])}get serialized(){return o([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor($,Q,J,Y){r$($,a0,"Signature"),this.#$=Q,this.#Q=J,this.#J=Y,this.#Y=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this._s}"${this.isValid()?"":', valid: "false"'}, yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){let $=new $$(a0,this.r,this._s,this.v);if(this.networkV)$.#Y=this.networkV;return $}toJSON(){let $=this.networkV;return{_type:"signature",networkV:$!=null?$.toString():null,r:this.r,s:this._s,v:this.v}}static getChainId($){let Q=p($,"v");if(Q==GX||Q==MX)return XX;return O(Q>=t8,"invalid EIP-155 v","v",$),(Q-t8)/qX}static getChainIdV($,Q){return p($)*qX+BigInt(35+Q-27)}static getNormalizedV($){let Q=p($);if(Q===XX||Q===GX)return 27;if(Q===ZX||Q===MX)return 28;return O(Q>=t8,"invalid v","v",$),Q&ZX?27:28}static from($){function Q(M,W){O(M,W,"signature",$)}if($==null)return new $$(a0,s8,s8,27);if(typeof $==="string"){let M=E($,"signature");if(M.length===64){let W=C(M.slice(0,32)),V=M.slice(32,64),D=V[0]&128?28:27;return V[0]&=127,new $$(a0,W,C(V),D)}if(M.length===65){let W=C(M.slice(0,32)),V=C(M.slice(32,64)),D=$$.getNormalizedV(M[64]);return new $$(a0,W,V,D)}Q(!1,"invalid raw signature length")}if($ instanceof $$)return $.clone();let J=$.r;Q(J!=null,"missing r");let Y=WX(J),X=function(M,W){if(M!=null)return WX(M);if(W!=null){Q(I$(W,32),"invalid yParityAndS");let V=E(W);return V[0]&=127,C(V)}Q(!1,"missing s")}($.s,$.yParityAndS),{networkV:Z,v:q}=function(M,W,V){if(M!=null){let D=p(M);return{networkV:D>=t8?D:void 0,v:$$.getNormalizedV(D)}}if(W!=null)return Q(I$(W,32),"invalid yParityAndS"),{v:E(W)[0]&128?28:27};if(V!=null){switch(z$(V,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}Q(!1,"invalid yParity")}Q(!1,"missing v")}($.v,$.yParityAndS,$.yParity),G=new $$(a0,Y,X,q);if(Z)G.#Y=Z;return Q($.yParity==null||z$($.yParity,"sig.yParity")===G.yParity,"yParity mismatch"),Q($.yParityAndS==null||$.yParityAndS===G.yParityAndS,"yParityAndS mismatch"),G}}class e{#$;constructor($){O(a$($)===32,"invalid private key","privateKey","[REDACTED]"),this.#$=C($)}get privateKey(){return this.#$}get publicKey(){return e.computePublicKey(this.#$)}get compressedPublicKey(){return e.computePublicKey(this.#$,!0)}sign($){O(a$($)===32,"invalid digest length","digest",$);let Q=Z0.sign(y$($),y$(this.#$),{lowS:!0});return $$.from({r:g$(Q.r,32),s:g$(Q.s,32),v:Q.recovery?28:27})}computeSharedSecret($){let Q=e.computePublicKey($);return C(Z0.getSharedSecret(y$(this.#$),E(Q),!1))}static computePublicKey($,Q){let J=E($,"key");if(J.length===32){let X=Z0.getPublicKey(J,!!Q);return C(X)}if(J.length===64){let X=new Uint8Array(65);X[0]=4,X.set(J,1),J=X}let Y=Z0.ProjectivePoint.fromHex(J);return C(Y.toRawBytes(Q))}static recoverPublicKey($,Q){O(a$($)===32,"invalid digest length","digest",$);let J=$$.from(Q),Y=Z0.Signature.fromCompact(y$(o([J.r,J.s])));Y=Y.addRecoveryBit(J.yParity);let X=Y.recoverPublicKey(y$($));return O(X!=null,"invalid signature for digest","signature",Q),"0x"+X.toHex(!1)}static addPoints($,Q,J){let Y=Z0.ProjectivePoint.fromHex(e.computePublicKey($).substring(2)),X=Z0.ProjectivePoint.fromHex(e.computePublicKey(Q).substring(2));return"0x"+Y.add(X).toHex(!!J)}}var w9=BigInt(0),B9=BigInt(36);function VX($){$=$.toLowerCase();let Q=$.substring(2).split(""),J=new Uint8Array(40);for(let X=0;X<40;X++)J[X]=Q[X].charCodeAt(0);let Y=E(n(J));for(let X=0;X<40;X+=2){if(Y[X>>1]>>4>=8)Q[X]=Q[X].toUpperCase();if((Y[X>>1]&15)>=8)Q[X+1]=Q[X+1].toUpperCase()}return"0x"+Q.join("")}var QJ={};for(let $=0;$<10;$++)QJ[String($)]=String($);for(let $=0;$<26;$++)QJ[String.fromCharCode(65+$)]=String(10+$);var zX=15;function F9($){$=$.toUpperCase(),$=$.substring(4)+$.substring(0,2)+"00";let Q=$.split("").map((Y)=>{return QJ[Y]}).join("");while(Q.length>=zX){let Y=Q.substring(0,zX);Q=parseInt(Y,10)%97+Q.substring(Y.length)}let J=String(98-parseInt(Q,10)%97);while(J.length<2)J="0"+J;return J}var A9=function(){let $={};for(let Q=0;Q<36;Q++){let J="0123456789abcdefghijklmnopqrstuvwxyz"[Q];$[J]=BigInt(Q)}return $}();function k9($){$=$.toLowerCase();let Q=w9;for(let J=0;J<$.length;J++)Q=Q*B9+A9[$[J]];return Q}function m($){if(O(typeof $==="string","invalid address","address",$),$.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!$.startsWith("0x"))$="0x"+$;let Q=VX($);return O(!$.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||Q===$,"bad address checksum","address",$),Q}if($.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){O($.substring(2,4)===F9($),"bad icap checksum","address",$);let Q=k9($.substring(4)).toString(16);while(Q.length<40)Q="0"+Q;return VX("0x"+Q)}O(!1,"invalid address","address",$)}function YJ($){return $&&typeof $.getAddress==="function"}async function JJ($,Q){let J=await Q;if(J==null||J==="0x0000000000000000000000000000000000000000")b(typeof $!=="string","unconfigured name","UNCONFIGURED_NAME",{value:$}),O(!1,"invalid AddressLike value; did not resolve to a value address","target",$);return m(J)}function q0($,Q){if(typeof $==="string"){if($.match(/^0x[0-9a-f]{40}$/i))return m($);return b(Q!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),JJ($,Q.resolveName($))}else if(YJ($))return JJ($,$.getAddress());else if($&&typeof $.then==="function")return JJ($,$);O(!1,"unsupported addressable value","target",$)}function XJ($,Q){return{address:m($),storageKeys:Q.map((J,Y)=>{return O(I$(J,32),"invalid slot",`storageKeys[${Y}]`,J),J.toLowerCase()})}}function N0($){if(Array.isArray($))return $.map((J,Y)=>{if(Array.isArray(J))return O(J.length===2,"invalid slot set",`value[${Y}]`,J),XJ(J[0],J[1]);return O(J!=null&&typeof J==="object","invalid address-slot set","value",$),XJ(J.address,J.storageKeys)});O($!=null&&typeof $==="object","invalid access list","value",$);let Q=Object.keys($).map((J)=>{let Y=$[J].reduce((X,Z)=>{return X[Z]=!0,X},{});return XJ(J,Object.keys(Y).sort())});return Q.sort((J,Y)=>J.address.localeCompare(Y.address)),Q}function ZJ($){return{address:m($.address),nonce:p($.nonce!=null?$.nonce:0),chainId:p($.chainId!=null?$.chainId:0),signature:$$.from($.signature)}}function k$($){let Q;if(typeof $==="string")Q=e.computePublicKey($,!1);else Q=$.publicKey;return m(n("0x"+Q.substring(4)).substring(26))}function s0($,Q){return k$(e.recoverPublicKey($,Q))}var D$=BigInt(0),b9=BigInt(2),x9=BigInt(27),v9=BigInt(28),y9=BigInt(35),g9=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),qJ=131072;function h9($){return{blobToKzgCommitment:(Y)=>{if("computeBlobProof"in $){if("blobToKzgCommitment"in $&&typeof $.blobToKzgCommitment==="function")return E($.blobToKzgCommitment(C(Y)))}else if("blobToKzgCommitment"in $&&typeof $.blobToKzgCommitment==="function")return E($.blobToKzgCommitment(Y));if("blobToKZGCommitment"in $&&typeof $.blobToKZGCommitment==="function")return E($.blobToKZGCommitment(C(Y)));O(!1,"unsupported KZG library","kzg",$)},computeBlobKzgProof:(Y,X)=>{if("computeBlobProof"in $&&typeof $.computeBlobProof==="function")return E($.computeBlobProof(C(Y),C(X)));if("computeBlobKzgProof"in $&&typeof $.computeBlobKzgProof==="function")return $.computeBlobKzgProof(Y,X);if("computeBlobKZGProof"in $&&typeof $.computeBlobKZGProof==="function")return E($.computeBlobKZGProof(C(Y),C(X)));O(!1,"unsupported KZG library","kzg",$)}}}function DX($,Q){let J=$.toString(16);while(J.length<2)J="0"+J;return J+=M$(Q).substring(4),"0x"+J}function t0($){if($==="0x")return null;return m($)}function e8($,Q){try{return N0($)}catch(J){O(!1,J.message,Q,$)}}function m9($,Q){try{if(!Array.isArray($))throw Error("authorizationList: invalid array");let J=[];for(let Y=0;Y<$.length;Y++){let X=$[Y];if(!Array.isArray(X))throw Error(`authorization[${Y}]: invalid array`);if(X.length!==6)throw Error(`authorization[${Y}]: wrong length`);if(!X[1])throw Error(`authorization[${Y}]: null address`);J.push({address:t0(X[1]),nonce:i(X[2],"nonce"),chainId:i(X[0],"chainId"),signature:$$.from({yParity:b0(X[3],"yParity"),r:j$(X[4],32),s:j$(X[5],32)})})}return J}catch(J){O(!1,J.message,Q,$)}}function b0($,Q){if($==="0x")return 0;return z$($,Q)}function i($,Q){if($==="0x")return D$;let J=p($,Q);return O(J<=g9,"value exceeds uint size",Q,J),J}function l($,Q){let J=p($,"value"),Y=a(J);return O(Y.length<=32,"value too large",`tx.${Q}`,J),Y}function $Q($){return N0($).map((Q)=>[Q.address,Q.storageKeys])}function c9($){return $.map((Q)=>{return[l(Q.chainId,"chainId"),Q.address,l(Q.nonce,"nonce"),l(Q.signature.yParity,"yParity"),a(Q.signature.r),a(Q.signature.s)]})}function u9($,Q){O(Array.isArray($),`invalid ${Q}`,"value",$);for(let J=0;J<$.length;J++)O(I$($[J],32),"invalid ${ param } hash",`value[${J}]`,$[J]);return $}function p9($){let Q=D0($);O(Array.isArray(Q)&&(Q.length===9||Q.length===6),"invalid field count for legacy transaction","data",$);let J={type:0,nonce:b0(Q[0],"nonce"),gasPrice:i(Q[1],"gasPrice"),gasLimit:i(Q[2],"gasLimit"),to:t0(Q[3]),value:i(Q[4],"value"),data:C(Q[5]),chainId:D$};if(Q.length===6)return J;let Y=i(Q[6],"v"),X=i(Q[7],"r"),Z=i(Q[8],"s");if(X===D$&&Z===D$)J.chainId=Y;else{let q=(Y-y9)/b9;if(q<D$)q=D$;J.chainId=q,O(q!==D$||(Y===x9||Y===v9),"non-canonical legacy v","v",Q[6]),J.signature=$$.from({r:j$(Q[7],32),s:j$(Q[8],32),v:Y})}return J}function l9($,Q){let J=[l($.nonce,"nonce"),l($.gasPrice||0,"gasPrice"),l($.gasLimit,"gasLimit"),$.to||"0x",l($.value,"value"),$.data],Y=D$;if($.chainId!=D$)Y=p($.chainId,"tx.chainId"),O(!Q||Q.networkV==null||Q.legacyChainId===Y,"tx.chainId/sig.v mismatch","sig",Q);else if($.signature){let Z=$.signature.legacyChainId;if(Z!=null)Y=Z}if(!Q){if(Y!==D$)J.push(a(Y)),J.push("0x"),J.push("0x");return F$(J)}let X=BigInt(27+Q.yParity);if(Y!==D$)X=$$.getChainIdV(Y,Q.v);else if(BigInt(Q.v)!==X)O(!1,"tx.chainId/sig.v mismatch","sig",Q);return J.push(a(X)),J.push(a(Q.r)),J.push(a(Q.s)),F$(J)}function QQ($,Q){let J;try{if(J=b0(Q[0],"yParity"),J!==0&&J!==1)throw Error("bad yParity")}catch(q){O(!1,"invalid yParity","yParity",Q[0])}let Y=j$(Q[1],32),X=j$(Q[2],32),Z=$$.from({r:Y,s:X,yParity:J});$.signature=Z}function d9($){let Q=D0(E($).slice(1));O(Array.isArray(Q)&&(Q.length===9||Q.length===12),"invalid field count for transaction type: 2","data",C($));let J={type:2,chainId:i(Q[0],"chainId"),nonce:b0(Q[1],"nonce"),maxPriorityFeePerGas:i(Q[2],"maxPriorityFeePerGas"),maxFeePerGas:i(Q[3],"maxFeePerGas"),gasPrice:null,gasLimit:i(Q[4],"gasLimit"),to:t0(Q[5]),value:i(Q[6],"value"),data:C(Q[7]),accessList:e8(Q[8],"accessList")};if(Q.length===9)return J;return QQ(J,Q.slice(9)),J}function n9($,Q){let J=[l($.chainId,"chainId"),l($.nonce,"nonce"),l($.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),l($.maxFeePerGas||0,"maxFeePerGas"),l($.gasLimit,"gasLimit"),$.to||"0x",l($.value,"value"),$.data,$Q($.accessList||[])];if(Q)J.push(l(Q.yParity,"yParity")),J.push(a(Q.r)),J.push(a(Q.s));return o(["0x02",F$(J)])}function o9($){let Q=D0(E($).slice(1));O(Array.isArray(Q)&&(Q.length===8||Q.length===11),"invalid field count for transaction type: 1","data",C($));let J={type:1,chainId:i(Q[0],"chainId"),nonce:b0(Q[1],"nonce"),gasPrice:i(Q[2],"gasPrice"),gasLimit:i(Q[3],"gasLimit"),to:t0(Q[4]),value:i(Q[5],"value"),data:C(Q[6]),accessList:e8(Q[7],"accessList")};if(Q.length===8)return J;return QQ(J,Q.slice(8)),J}function i9($,Q){let J=[l($.chainId,"chainId"),l($.nonce,"nonce"),l($.gasPrice||0,"gasPrice"),l($.gasLimit,"gasLimit"),$.to||"0x",l($.value,"value"),$.data,$Q($.accessList||[])];if(Q)J.push(l(Q.yParity,"recoveryParam")),J.push(a(Q.r)),J.push(a(Q.s));return o(["0x01",F$(J)])}function r9($){let Q=D0(E($).slice(1)),J="3",Y=null;if(Q.length===4&&Array.isArray(Q[0])){J="3 (network format)";let Z=Q[1],q=Q[2],G=Q[3];O(Array.isArray(Z),"invalid network format: blobs not an array","fields[1]",Z),O(Array.isArray(q),"invalid network format: commitments not an array","fields[2]",q),O(Array.isArray(G),"invalid network format: proofs not an array","fields[3]",G),O(Z.length===q.length,"invalid network format: blobs/commitments length mismatch","fields",Q),O(Z.length===G.length,"invalid network format: blobs/proofs length mismatch","fields",Q),Y=[];for(let M=0;M<Q[1].length;M++)Y.push({data:Z[M],commitment:q[M],proof:G[M]});Q=Q[0]}O(Array.isArray(Q)&&(Q.length===11||Q.length===14),`invalid field count for transaction type: ${J}`,"data",C($));let X={type:3,chainId:i(Q[0],"chainId"),nonce:b0(Q[1],"nonce"),maxPriorityFeePerGas:i(Q[2],"maxPriorityFeePerGas"),maxFeePerGas:i(Q[3],"maxFeePerGas"),gasPrice:null,gasLimit:i(Q[4],"gasLimit"),to:t0(Q[5]),value:i(Q[6],"value"),data:C(Q[7]),accessList:e8(Q[8],"accessList"),maxFeePerBlobGas:i(Q[9],"maxFeePerBlobGas"),blobVersionedHashes:Q[10]};if(Y)X.blobs=Y;O(X.to!=null,`invalid address for transaction type: ${J}`,"data",$),O(Array.isArray(X.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",$);for(let Z=0;Z<X.blobVersionedHashes.length;Z++)O(I$(X.blobVersionedHashes[Z],32),`invalid blobVersionedHash at index ${Z}: must be length 32`,"data",$);if(Q.length===11)return X;return QQ(X,Q.slice(11)),X}function a9($,Q,J){let Y=[l($.chainId,"chainId"),l($.nonce,"nonce"),l($.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),l($.maxFeePerGas||0,"maxFeePerGas"),l($.gasLimit,"gasLimit"),$.to||eQ,l($.value,"value"),$.data,$Q($.accessList||[]),l($.maxFeePerBlobGas||0,"maxFeePerBlobGas"),u9($.blobVersionedHashes||[],"blobVersionedHashes")];if(Q){if(Y.push(l(Q.yParity,"yParity")),Y.push(a(Q.r)),Y.push(a(Q.s)),J)return o(["0x03",F$([Y,J.map((X)=>X.data),J.map((X)=>X.commitment),J.map((X)=>X.proof)])])}return o(["0x03",F$(Y)])}function s9($){let Q=D0(E($).slice(1));O(Array.isArray(Q)&&(Q.length===10||Q.length===13),"invalid field count for transaction type: 4","data",C($));let J={type:4,chainId:i(Q[0],"chainId"),nonce:b0(Q[1],"nonce"),maxPriorityFeePerGas:i(Q[2],"maxPriorityFeePerGas"),maxFeePerGas:i(Q[3],"maxFeePerGas"),gasPrice:null,gasLimit:i(Q[4],"gasLimit"),to:t0(Q[5]),value:i(Q[6],"value"),data:C(Q[7]),accessList:e8(Q[8],"accessList"),authorizationList:m9(Q[9],"authorizationList")};if(Q.length===10)return J;return QQ(J,Q.slice(10)),J}function t9($,Q){let J=[l($.chainId,"chainId"),l($.nonce,"nonce"),l($.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),l($.maxFeePerGas||0,"maxFeePerGas"),l($.gasLimit,"gasLimit"),$.to||"0x",l($.value,"value"),$.data,$Q($.accessList||[]),c9($.authorizationList||[])];if(Q)J.push(l(Q.yParity,"yParity")),J.push(a(Q.r)),J.push(a(Q.s));return o(["0x04",F$(J)])}class N${#$;#Q;#J;#Y;#M;#W;#V;#z;#D;#O;#K;#I;#G;#Z;#X;#q;#T;get type(){return this.#$}set type($){switch($){case null:this.#$=null;break;case 0:case"legacy":this.#$=0;break;case 1:case"berlin":case"eip-2930":this.#$=1;break;case 2:case"london":case"eip-1559":this.#$=2;break;case 3:case"cancun":case"eip-4844":this.#$=3;break;case 4:case"pectra":case"eip-7702":this.#$=4;break;default:O(!1,"unsupported transaction type","type",$)}}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 $=this.#Q;if($==null&&this.type===3)return eQ;return $}set to($){this.#Q=$==null?null:m($)}get nonce(){return this.#Y}set nonce($){this.#Y=z$($,"value")}get gasLimit(){return this.#M}set gasLimit($){this.#M=p($)}get gasPrice(){let $=this.#W;if($==null&&(this.type===0||this.type===1))return D$;return $}set gasPrice($){this.#W=$==null?null:p($,"gasPrice")}get maxPriorityFeePerGas(){let $=this.#V;if($==null){if(this.type===2||this.type===3)return D$;return null}return $}set maxPriorityFeePerGas($){this.#V=$==null?null:p($,"maxPriorityFeePerGas")}get maxFeePerGas(){let $=this.#z;if($==null){if(this.type===2||this.type===3)return D$;return null}return $}set maxFeePerGas($){this.#z=$==null?null:p($,"maxFeePerGas")}get data(){return this.#J}set data($){this.#J=C($)}get value(){return this.#D}set value($){this.#D=p($,"value")}get chainId(){return this.#O}set chainId($){this.#O=p($)}get signature(){return this.#K||null}set signature($){this.#K=$==null?null:$$.from($)}get accessList(){let $=this.#I||null;if($==null){if(this.type===1||this.type===2||this.type===3)return[];return null}return $}set accessList($){this.#I=$==null?null:N0($)}get authorizationList(){let $=this.#T||null;if($==null){if(this.type===4)return[]}return $}set authorizationList($){this.#T=$==null?null:$.map((Q)=>ZJ(Q))}get maxFeePerBlobGas(){let $=this.#G;if($==null&&this.type===3)return D$;return $}set maxFeePerBlobGas($){this.#G=$==null?null:p($,"maxFeePerBlobGas")}get blobVersionedHashes(){let $=this.#Z;if($==null&&this.type===3)return[];return $}set blobVersionedHashes($){if($!=null){O(Array.isArray($),"blobVersionedHashes must be an Array","value",$),$=$.slice();for(let Q=0;Q<$.length;Q++)O(I$($[Q],32),"invalid blobVersionedHash",`value[${Q}]`,$[Q])}this.#Z=$}get blobs(){if(this.#q==null)return null;return this.#q.map(($)=>Object.assign({},$))}set blobs($){if($==null){this.#q=null;return}let Q=[],J=[];for(let Y=0;Y<$.length;Y++){let X=$[Y];if(l$(X)){b(this.#X,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let Z=E(X);if(O(Z.length<=qJ,"blob is too large",`blobs[${Y}]`,X),Z.length!==qJ){let M=new Uint8Array(qJ);M.set(Z),Z=M}let q=this.#X.blobToKzgCommitment(Z),G=C(this.#X.computeBlobKzgProof(Z,q));Q.push({data:C(Z),commitment:C(q),proof:G}),J.push(DX(1,q))}else{let Z=C(X.commitment);Q.push({data:C(X.data),commitment:Z,proof:C(X.proof)}),J.push(DX(1,Z))}}this.#q=Q,this.#Z=J}get kzg(){return this.#X}set kzg($){if($==null)this.#X=null;else this.#X=h9($)}constructor(){this.#$=null,this.#Q=null,this.#Y=0,this.#M=D$,this.#W=null,this.#V=null,this.#z=null,this.#J="0x",this.#D=D$,this.#O=D$,this.#K=null,this.#I=null,this.#G=null,this.#Z=null,this.#X=null,this.#q=null,this.#T=null}get hash(){if(this.signature==null)return null;return n(this.#U(!0,!1))}get unsignedHash(){return n(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return s0(this.unsignedHash,this.signature)}get fromPublicKey(){if(this.signature==null)return null;return e.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#U($,Q){b(!$||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let J=$?this.signature:null;switch(this.inferType()){case 0:return l9(this,J);case 1:return i9(this,J);case 2:return n9(this,J);case 3:return a9(this,J,Q?this.blobs:null);case 4:return t9(this,J)}b(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#U(!0,!0)}get unsignedSerialized(){return this.#U(!1,!1)}inferType(){let $=this.inferTypes();if($.indexOf(2)>=0)return 2;return $.pop()}inferTypes(){let $=this.gasPrice!=null,Q=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,J=this.accessList!=null,Y=this.#G!=null||this.#Z;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)b(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});b(!Q||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),b(this.type!==0||!J,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let X=[];if(this.type!=null)X.push(this.type);else if(this.authorizationList&&this.authorizationList.length)X.push(4);else if(Q)X.push(2);else if($){if(X.push(1),!J)X.push(0)}else if(J)X.push(1),X.push(2);else if(Y&&this.to)X.push(3);else X.push(0),X.push(1),X.push(2),X.push(3);return X.sort(),X}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return N$.from(this)}toJSON(){let $=(Q)=>{if(Q==null)return null;return Q.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:$(this.gasLimit),gasPrice:$(this.gasPrice),maxPriorityFeePerGas:$(this.maxPriorityFeePerGas),maxFeePerGas:$(this.maxFeePerGas),value:$(this.value),chainId:$(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from($){if($==null)return new N$;if(typeof $==="string"){let J=E($);if(J[0]>=127)return N$.from(p9(J));switch(J[0]){case 1:return N$.from(o9(J));case 2:return N$.from(d9(J));case 3:return N$.from(r9(J));case 4:return N$.from(s9(J))}b(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let Q=new N$;if($.type!=null)Q.type=$.type;if($.to!=null)Q.to=$.to;if($.nonce!=null)Q.nonce=$.nonce;if($.gasLimit!=null)Q.gasLimit=$.gasLimit;if($.gasPrice!=null)Q.gasPrice=$.gasPrice;if($.maxPriorityFeePerGas!=null)Q.maxPriorityFeePerGas=$.maxPriorityFeePerGas;if($.maxFeePerGas!=null)Q.maxFeePerGas=$.maxFeePerGas;if($.maxFeePerBlobGas!=null)Q.maxFeePerBlobGas=$.maxFeePerBlobGas;if($.data!=null)Q.data=$.data;if($.value!=null)Q.value=$.value;if($.chainId!=null)Q.chainId=$.chainId;if($.signature!=null)Q.signature=$$.from($.signature);if($.accessList!=null)Q.accessList=$.accessList;if($.authorizationList!=null)Q.authorizationList=$.authorizationList;if($.blobVersionedHashes!=null)Q.blobVersionedHashes=$.blobVersionedHashes;if($.kzg!=null)Q.kzg=$.kzg;if($.blobs!=null)Q.blobs=$.blobs;if($.hash!=null)O(Q.isSigned(),"unsigned transaction cannot define '.hash'","tx",$),O(Q.hash===$.hash,"hash mismatch","tx",$);if($.from!=null)O(Q.isSigned(),"unsigned transaction cannot define '.from'","tx",$),O(Q.from.toLowerCase()===($.from||"").toLowerCase(),"from mismatch","tx",$);return Q}}function JQ($){return O(typeof $.address==="string","invalid address for hashAuthorization","auth.address",$),n(o(["0x05",F$([$.chainId!=null?a($.chainId):"0x",m($.address),$.nonce!=null?a($.nonce):"0x"])]))}function G0($){return n(G$($))}function z8($){if(typeof $==="string")$=G$($);return n(o([G$($J),G$(String($.length)),$]))}function D8($,Q){let J=z8($);return s0(J,Q)}var TX=new Uint8Array(32);TX.fill(0);var e9=BigInt(-1),UX=BigInt(0),HX=BigInt(1),$q=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Qq($){let Q=E($),J=Q.length%32;if(J)return o([Q,TX.slice(J)]);return C(Q)}var Jq=g$(HX,32),Yq=g$(UX,32),OX={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},GJ=["name","version","chainId","verifyingContract","salt"];function KX($){return function(Q){return O(typeof Q==="string",`invalid domain value for ${JSON.stringify($)}`,`domain.${$}`,Q),Q}}var Xq={name:KX("name"),version:KX("version"),chainId:function($){let Q=p($,"domain.chainId");if(O(Q>=0,"invalid chain ID","domain.chainId",$),Number.isSafeInteger(Q))return Number(Q);return k8(Q)},verifyingContract:function($){try{return m($).toLowerCase()}catch(Q){}O(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",$)},salt:function($){let Q=E($,"domain.salt");return O(Q.length===32,'invalid domain value "salt"',"domain.salt",$),C(Q)}};function MJ($){{let Q=$.match(/^(u?)int(\d+)$/);if(Q){let J=Q[1]==="",Y=parseInt(Q[2]);O(Y%8===0&&Y!==0&&Y<=256&&Q[2]===String(Y),"invalid numeric width","type",$);let X=A8($q,J?Y-1:Y),Z=J?(X+HX)*e9:UX;return function(q){let G=p(q,"value");return O(G>=Z&&G<=X,`value out-of-bounds for ${$}`,"value",G),g$(J?F8(G,256):G,32)}}}{let Q=$.match(/^bytes(\d+)$/);if(Q){let J=parseInt(Q[1]);return O(J!==0&&J<=32&&Q[1]===String(J),"invalid bytes width","type",$),function(Y){let X=E(Y);return O(X.length===J,`invalid length for ${$}`,"value",Y),Qq(Y)}}}switch($){case"address":return function(Q){return j$(m(Q),32)};case"bool":return function(Q){return!Q?Yq:Jq};case"bytes":return function(Q){return n(Q)};case"string":return function(Q){return G0(Q)}}return null}function IX($,Q){return`${$}(${Q.map(({name:J,type:Y})=>Y+" "+J).join(",")})`}function YQ($){let Q=$.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(Q)return{base:Q[1],index:Q[2]+Q[4],array:{base:Q[1],prefix:Q[1]+Q[2],count:Q[5]?parseInt(Q[5]):-1}};return{base:$}}class H${primaryType;#$;get types(){return JSON.parse(this.#$)}#Q;#J;constructor($){this.#Q=new Map,this.#J=new Map;let Q=new Map,J=new Map,Y=new Map,X={};Object.keys($).forEach((G)=>{X[G]=$[G].map(({name:M,type:W})=>{let{base:V,index:D}=YQ(W);if(V==="int"&&!$.int)V="int256";if(V==="uint"&&!$.uint)V="uint256";return{name:M,type:V+(D||"")}}),Q.set(G,new Set),J.set(G,[]),Y.set(G,new Set)}),this.#$=JSON.stringify(X);for(let G in X){let M=new Set;for(let W of X[G]){O(!M.has(W.name),`duplicate variable name ${JSON.stringify(W.name)} in ${JSON.stringify(G)}`,"types",$),M.add(W.name);let V=YQ(W.type).base;if(O(V!==G,`circular type reference to ${JSON.stringify(V)}`,"types",$),MJ(V))continue;O(J.has(V),`unknown type ${JSON.stringify(V)}`,"types",$),J.get(V).push(G),Q.get(G).add(V)}}let Z=Array.from(J.keys()).filter((G)=>J.get(G).length===0);O(Z.length!==0,"missing primary type","types",$),O(Z.length===1,`ambiguous primary types or unused types: ${Z.map((G)=>JSON.stringify(G)).join(", ")}`,"types",$),r(this,{primaryType:Z[0]});function q(G,M){O(!M.has(G),`circular type reference to ${JSON.stringify(G)}`,"types",$),M.add(G);for(let W of Q.get(G)){if(!J.has(W))continue;q(W,M);for(let V of M)Y.get(V).add(W)}M.delete(G)}q(this.primaryType,new Set);for(let[G,M]of Y){let W=Array.from(M);W.sort(),this.#Q.set(G,IX(G,X[G])+W.map((V)=>IX(V,X[V])).join(""))}}getEncoder($){let Q=this.#J.get($);if(!Q)Q=this.#Y($),this.#J.set($,Q);return Q}#Y($){{let Y=MJ($);if(Y)return Y}let Q=YQ($).array;if(Q){let Y=Q.prefix,X=this.getEncoder(Y);return(Z)=>{O(Q.count===-1||Q.count===Z.length,`array length mismatch; expected length ${Q.count}`,"value",Z);let q=Z.map(X);if(this.#Q.has(Y))q=q.map(n);return n(o(q))}}let J=this.types[$];if(J){let Y=G0(this.#Q.get($));return(X)=>{let Z=J.map(({name:q,type:G})=>{let M=this.getEncoder(G)(X[q]);if(this.#Q.has(G))return n(M);return M});return Z.unshift(Y),o(Z)}}O(!1,`unknown type: ${$}`,"type",$)}encodeType($){let Q=this.#Q.get($);return O(Q,`unknown type: ${JSON.stringify($)}`,"name",$),Q}encodeData($,Q){return this.getEncoder($)(Q)}hashStruct($,Q){return n(this.encodeData($,Q))}encode($){return this.encodeData(this.primaryType,$)}hash($){return this.hashStruct(this.primaryType,$)}_visit($,Q,J){if(MJ($))return J($,Q);let Y=YQ($).array;if(Y)return O(Y.count===-1||Y.count===Q.length,`array length mismatch; expected length ${Y.count}`,"value",Q),Q.map((Z)=>this._visit(Y.prefix,Z,J));let X=this.types[$];if(X)return X.reduce((Z,{name:q,type:G})=>{return Z[q]=this._visit(G,Q[q],J),Z},{});O(!1,`unknown type: ${$}`,"type",$)}visit($,Q){return this._visit(this.primaryType,$,Q)}static from($){return new H$($)}static getPrimaryType($){return H$.from($).primaryType}static hashStruct($,Q,J){return H$.from(Q).hashStruct($,J)}static hashDomain($){let Q=[];for(let J in $){if($[J]==null)continue;let Y=OX[J];O(Y,`invalid typed-data domain key: ${JSON.stringify(J)}`,"domain",$),Q.push({name:J,type:Y})}return Q.sort((J,Y)=>{return GJ.indexOf(J.name)-GJ.indexOf(Y.name)}),H$.hashStruct("EIP712Domain",{EIP712Domain:Q},$)}static encode($,Q,J){return o(["0x1901",H$.hashDomain($),H$.from(Q).hash(J)])}static hash($,Q,J){return n(H$.encode($,Q,J))}static async resolveNames($,Q,J,Y){$=Object.assign({},$);for(let q in $)if($[q]==null)delete $[q];let X={};if($.verifyingContract&&!I$($.verifyingContract,20))X[$.verifyingContract]="0x";let Z=H$.from(Q);Z.visit(J,(q,G)=>{if(q==="address"&&!I$(G,20))X[G]="0x";return G});for(let q in X)X[q]=await Y(q);if($.verifyingContract&&X[$.verifyingContract])$.verifyingContract=X[$.verifyingContract];return J=Z.visit(J,(q,G)=>{if(q==="address"&&X[G])return X[G];return G}),{domain:$,value:J}}static getPayload($,Q,J){H$.hashDomain($);let Y={},X=[];GJ.forEach((G)=>{let M=$[G];if(M==null)return;Y[G]=Xq[G](M),X.push({name:G,type:OX[G]})});let Z=H$.from(Q);Q=Z.types;let q=Object.assign({},Q);return O(q.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",Q),q.EIP712Domain=X,Z.encode(J),{types:q,domain:Y,primaryType:Z.primaryType,message:Z.visit(J,(G,M)=>{if(G.match(/^bytes(\d*)/))return C(E(M));if(G.match(/^u?int/))return p(M).toString();switch(G){case"address":return M.toLowerCase();case"bool":return!!M;case"string":return O(typeof M==="string","invalid string","value",M),M}O(!1,"unsupported type","type",G)})}}}var LX=BigInt(0);function WJ($){if($==null)return null;return $}function O$($){if($==null)return null;return $.toString()}function O8($){let Q={};if($.to)Q.to=$.to;if($.from)Q.from=$.from;if($.data)Q.data=C($.data);let J="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let X of J){if(!(X in $)||$[X]==null)continue;Q[X]=p($[X],`request.${X}`)}let Y="type,nonce".split(/,/);for(let X of Y){if(!(X in $)||$[X]==null)continue;Q[X]=z$($[X],`request.${X}`)}if($.accessList)Q.accessList=N0($.accessList);if($.authorizationList)Q.authorizationList=$.authorizationList.slice();if("blockTag"in $)Q.blockTag=$.blockTag;if("enableCcipRead"in $)Q.enableCcipRead=!!$.enableCcipRead;if("customData"in $)Q.customData=$.customData;if("blobVersionedHashes"in $&&$.blobVersionedHashes)Q.blobVersionedHashes=$.blobVersionedHashes.slice();if("kzg"in $)Q.kzg=$.kzg;if("blobs"in $&&$.blobs)Q.blobs=$.blobs.map((X)=>{if(l$(X))return C(X);return Object.assign({},X)});return Q}class NX{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#$;constructor($,Q){this.#$=$.transactions.map((J)=>{if(typeof J!=="string")return new XQ(J,Q);return J}),r(this,{provider:Q,hash:WJ($.hash),number:$.number,timestamp:$.timestamp,parentHash:$.parentHash,parentBeaconBlockRoot:$.parentBeaconBlockRoot,nonce:$.nonce,difficulty:$.difficulty,gasLimit:$.gasLimit,gasUsed:$.gasUsed,blobGasUsed:$.blobGasUsed,excessBlobGas:$.excessBlobGas,miner:$.miner,prevRandao:WJ($.prevRandao),extraData:$.extraData,baseFeePerGas:WJ($.baseFeePerGas),stateRoot:$.stateRoot,receiptsRoot:$.receiptsRoot})}get transactions(){return this.#$.map(($)=>{if(typeof $==="string")return $;return $.hash})}get prefetchedTransactions(){let $=this.#$.slice();if($.length===0)return[];return b(typeof $[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),$}toJSON(){let{baseFeePerGas:$,difficulty:Q,extraData:J,gasLimit:Y,gasUsed:X,hash:Z,miner:q,prevRandao:G,nonce:M,number:W,parentHash:V,parentBeaconBlockRoot:D,stateRoot:I,receiptsRoot:P,timestamp:K,transactions:H}=this;return{_type:"Block",baseFeePerGas:O$($),difficulty:O$(Q),extraData:J,gasLimit:O$(Y),gasUsed:O$(X),blobGasUsed:O$(this.blobGasUsed),excessBlobGas:O$(this.excessBlobGas),hash:Z,miner:q,prevRandao:G,nonce:M,number:W,parentHash:V,timestamp:K,parentBeaconBlockRoot:D,stateRoot:I,receiptsRoot:P,transactions:H}}[Symbol.iterator](){let $=0,Q=this.transactions;return{next:()=>{if($<this.length)return{value:Q[$++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#$.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction($){let Q=void 0;if(typeof $==="number")Q=this.#$[$];else{let J=$.toLowerCase();for(let Y of this.#$)if(typeof Y==="string"){if(Y!==J)continue;Q=Y;break}else{if(Y.hash!==J)continue;Q=Y;break}}if(Q==null)throw Error("no such tx");if(typeof Q==="string")return await this.provider.getTransaction(Q);else return Q}getPrefetchedTransaction($){let Q=this.prefetchedTransactions;if(typeof $==="number")return Q[$];$=$.toLowerCase();for(let J of Q)if(J.hash===$)return J;O(!1,"no matching transaction","indexOrHash",$)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return Gq(this)}}class VJ{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor($,Q){this.provider=Q;let J=Object.freeze($.topics.slice());r(this,{transactionHash:$.transactionHash,blockHash:$.blockHash,blockNumber:$.blockNumber,removed:$.removed,address:$.address,data:$.data,topics:J,index:$.index,transactionIndex:$.transactionIndex})}toJSON(){let{address:$,blockHash:Q,blockNumber:J,data:Y,index:X,removed:Z,topics:q,transactionHash:G,transactionIndex:M}=this;return{_type:"log",address:$,blockHash:Q,blockNumber:J,data:Y,index:X,removed:Z,topics:q,transactionHash:G,transactionIndex:M}}async getBlock(){let $=await this.provider.getBlock(this.blockHash);return b(!!$,"failed to find transaction","UNKNOWN_ERROR",{}),$}async getTransaction(){let $=await this.provider.getTransaction(this.transactionHash);return b(!!$,"failed to find transaction","UNKNOWN_ERROR",{}),$}async getTransactionReceipt(){let $=await this.provider.getTransactionReceipt(this.transactionHash);return b(!!$,"failed to find transaction receipt","UNKNOWN_ERROR",{}),$}removedEvent(){return Mq(this)}}class RX{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#$;constructor($,Q){this.#$=Object.freeze($.logs.map((Y)=>{return new VJ(Y,Q)}));let J=LX;if($.effectiveGasPrice!=null)J=$.effectiveGasPrice;else if($.gasPrice!=null)J=$.gasPrice;r(this,{provider:Q,to:$.to,from:$.from,contractAddress:$.contractAddress,hash:$.hash,index:$.index,blockHash:$.blockHash,blockNumber:$.blockNumber,logsBloom:$.logsBloom,gasUsed:$.gasUsed,cumulativeGasUsed:$.cumulativeGasUsed,blobGasUsed:$.blobGasUsed,gasPrice:J,blobGasPrice:$.blobGasPrice,type:$.type,status:$.status,root:$.root})}get logs(){return this.#$}toJSON(){let{to:$,from:Q,contractAddress:J,hash:Y,index:X,blockHash:Z,blockNumber:q,logsBloom:G,logs:M,status:W,root:V}=this;return{_type:"TransactionReceipt",blockHash:Z,blockNumber:q,contractAddress:J,cumulativeGasUsed:O$(this.cumulativeGasUsed),from:Q,gasPrice:O$(this.gasPrice),blobGasUsed:O$(this.blobGasUsed),blobGasPrice:O$(this.blobGasPrice),gasUsed:O$(this.gasUsed),hash:Y,index:X,logs:M,logsBloom:G,root:V,status:W,to:$}}get length(){return this.logs.length}[Symbol.iterator](){let $=0;return{next:()=>{if($<this.length)return{value:this.logs[$++],done:!1};return{value:void 0,done:!0}}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let $=await this.provider.getBlock(this.blockHash);if($==null)throw Error("TODO");return $}async getTransaction(){let $=await this.provider.getTransaction(this.hash);if($==null)throw Error("TODO");return $}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return EX(this)}reorderedEvent($){return b(!$||$.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),CX(this,$)}}class XQ{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#$;constructor($,Q){this.provider=Q,this.blockNumber=$.blockNumber!=null?$.blockNumber:null,this.blockHash=$.blockHash!=null?$.blockHash:null,this.hash=$.hash,this.index=$.index,this.type=$.type,this.from=$.from,this.to=$.to||null,this.gasLimit=$.gasLimit,this.nonce=$.nonce,this.data=$.data,this.value=$.value,this.gasPrice=$.gasPrice,this.maxPriorityFeePerGas=$.maxPriorityFeePerGas!=null?$.maxPriorityFeePerGas:null,this.maxFeePerGas=$.maxFeePerGas!=null?$.maxFeePerGas:null,this.maxFeePerBlobGas=$.maxFeePerBlobGas!=null?$.maxFeePerBlobGas:null,this.chainId=$.chainId,this.signature=$.signature,this.accessList=$.accessList!=null?$.accessList:null,this.blobVersionedHashes=$.blobVersionedHashes!=null?$.blobVersionedHashes:null,this.authorizationList=$.authorizationList!=null?$.authorizationList:null,this.#$=-1}toJSON(){let{blockNumber:$,blockHash:Q,index:J,hash:Y,type:X,to:Z,from:q,nonce:G,data:M,signature:W,accessList:V,blobVersionedHashes:D}=this;return{_type:"TransactionResponse",accessList:V,blockNumber:$,blockHash:Q,blobVersionedHashes:D,chainId:O$(this.chainId),data:M,from:q,gasLimit:O$(this.gasLimit),gasPrice:O$(this.gasPrice),hash:Y,maxFeePerGas:O$(this.maxFeePerGas),maxPriorityFeePerGas:O$(this.maxPriorityFeePerGas),maxFeePerBlobGas:O$(this.maxFeePerBlobGas),nonce:G,signature:W,to:Z,index:J,type:X,value:O$(this.value)}}async getBlock(){let $=this.blockNumber;if($==null){let J=await this.getTransaction();if(J)$=J.blockNumber}if($==null)return null;let Q=this.provider.getBlock($);if(Q==null)throw Error("TODO");return Q}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:Q,blockNumber:J}=await p$({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){let J=$==null?1:$,Y=Q==null?0:Q,X=this.#$,Z=-1,q=X===-1?!0:!1,G=async()=>{if(q)return null;let{blockNumber:D,nonce:I}=await p$({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(I<this.nonce){X=D;return}if(q)return null;let P=await this.getTransaction();if(P&&P.blockNumber!=null)return;if(Z===-1){if(Z=X-3,Z<this.#$)Z=this.#$}while(Z<=D){if(q)return null;let K=await this.provider.getBlock(Z,!0);if(K==null)return;for(let H of K)if(H===this.hash)return;for(let H=0;H<K.length;H++){let L=await K.getTransaction(H);if(L.from===this.from&&L.nonce===this.nonce){if(q)return null;let z=await this.provider.getTransactionReceipt(L.hash);if(z==null)return;if(D-z.blockNumber+1<J)return;let U="replaced";if(L.data===this.data&&L.to===this.to&&L.value===this.value)U="repriced";else if(L.data==="0x"&&L.from===L.to&&L.value===LX)U="cancelled";b(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:U==="replaced"||U==="cancelled",reason:U,replacement:L.replaceableTransaction(X),hash:L.hash,receipt:z})}}Z++}return},M=(D)=>{if(D==null||D.status!==0)return D;b(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:D.to,from:D.from,data:""},receipt:D})},W=await this.provider.getTransactionReceipt(this.hash);if(J===0)return M(W);if(W){if(J===1||await W.confirmations()>=J)return M(W)}else if(await G(),J===0)return null;return await new Promise((D,I)=>{let P=[],K=()=>{P.forEach((L)=>L())};if(P.push(()=>{q=!0}),Y>0){let L=setTimeout(()=>{K(),I(X8("wait for transaction timeout","TIMEOUT"))},Y);P.push(()=>{clearTimeout(L)})}let H=async(L)=>{if(await L.confirmations()>=J){K();try{D(M(L))}catch(z){I(z)}}};if(P.push(()=>{this.provider.off(this.hash,H)}),this.provider.on(this.hash,H),X>=0){let L=async()=>{try{await G()}catch(z){if(B8(z,"TRANSACTION_REPLACED")){K(),I(z);return}}if(!q)this.provider.once("block",L)};P.push(()=>{this.provider.off("block",L)}),this.provider.once("block",L)}})}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 b(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),EX(this)}reorderedEvent($){return b(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),b(!$||$.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),CX(this,$)}replaceableTransaction($){O(Number.isInteger($)&&$>=0,"invalid startBlock","startBlock",$);let Q=new XQ(this,this.provider);return Q.#$=$,Q}}function Gq($){return{orphan:"drop-block",hash:$.hash,number:$.number}}function CX($,Q){return{orphan:"reorder-transaction",tx:$,other:Q}}function EX($){return{orphan:"drop-transaction",tx:$}}function Mq($){return{orphan:"drop-log",log:{transactionHash:$.transactionHash,blockHash:$.blockHash,blockNumber:$.blockNumber,address:$.address,data:$.data,topics:Object.freeze($.topics.slice()),index:$.index}}}function x0($,Q){if($.provider)return $.provider;b(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:Q})}async function jX($,Q){let J=O8(Q);if(J.to!=null)J.to=q0(J.to,$);if(J.from!=null){let Y=J.from;J.from=Promise.all([$.getAddress(),q0(Y,$)]).then(([X,Z])=>{return O(X.toLowerCase()===Z.toLowerCase(),"transaction from mismatch","tx.from",Z),X})}else J.from=$.getAddress();return await p$(J)}class K8{provider;constructor($){r(this,{provider:$||null})}async getNonce($){return x0(this,"getTransactionCount").getTransactionCount(await this.getAddress(),$)}async populateCall($){return await jX(this,$)}async populateTransaction($){let Q=x0(this,"populateTransaction"),J=await jX(this,$);if(J.nonce==null)J.nonce=await this.getNonce("pending");if(J.gasLimit==null)J.gasLimit=await this.estimateGas(J);let Y=await this.provider.getNetwork();if(J.chainId!=null){let Z=p(J.chainId);O(Z===Y.chainId,"transaction chainId mismatch","tx.chainId",$.chainId)}else J.chainId=Y.chainId;let X=J.maxFeePerGas!=null||J.maxPriorityFeePerGas!=null;if(J.gasPrice!=null&&(J.type===2||X))O(!1,"eip-1559 transaction do not support gasPrice","tx",$);else if((J.type===0||J.type===1)&&X)O(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",$);if((J.type===2||J.type==null)&&(J.maxFeePerGas!=null&&J.maxPriorityFeePerGas!=null))J.type=2;else if(J.type===0||J.type===1){let Z=await Q.getFeeData();if(b(Z.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),J.gasPrice==null)J.gasPrice=Z.gasPrice}else{let Z=await Q.getFeeData();if(J.type==null)if(Z.maxFeePerGas!=null&&Z.maxPriorityFeePerGas!=null){if(J.authorizationList&&J.authorizationList.length)J.type=4;else J.type=2;if(J.gasPrice!=null){let q=J.gasPrice;delete J.gasPrice,J.maxFeePerGas=q,J.maxPriorityFeePerGas=q}else{if(J.maxFeePerGas==null)J.maxFeePerGas=Z.maxFeePerGas;if(J.maxPriorityFeePerGas==null)J.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}else if(Z.gasPrice!=null){if(b(!X,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),J.gasPrice==null)J.gasPrice=Z.gasPrice;J.type=0}else b(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(J.type===2||J.type===3||J.type===4){if(J.maxFeePerGas==null)J.maxFeePerGas=Z.maxFeePerGas;if(J.maxPriorityFeePerGas==null)J.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}return await p$(J)}async populateAuthorization($){let Q=Object.assign({},$);if(Q.chainId==null)Q.chainId=(await x0(this,"getNetwork").getNetwork()).chainId;if(Q.nonce==null)Q.nonce=await this.getNonce();return Q}async estimateGas($){return x0(this,"estimateGas").estimateGas(await this.populateCall($))}async call($){return x0(this,"call").call(await this.populateCall($))}async resolveName($){return await x0(this,"resolveName").resolveName($)}async sendTransaction($){let Q=x0(this,"sendTransaction"),J=await this.populateTransaction($);delete J.from;let Y=N$.from(J);return await Q.broadcastTransaction(await this.signTransaction(Y))}authorize($){b(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class I8 extends K8{address;constructor($,Q){super(Q);r(this,{address:$})}async getAddress(){return this.address}connect($){return new I8(this.address,$)}#$($,Q){b(!1,`VoidSigner cannot sign ${$}`,"UNSUPPORTED_OPERATION",{operation:Q})}async signTransaction($){this.#$("transactions","signTransaction")}async signMessage($){this.#$("messages","signMessage")}async signTypedData($,Q,J){this.#$("typed-data","signTypedData")}}class v0 extends K8{address;#$;constructor($,Q){super(Q);O($&&typeof $.sign==="function","invalid private key","privateKey","[ REDACTED ]"),this.#$=$;let J=k$(this.signingKey.publicKey);r(this,{address:J})}get signingKey(){return this.#$}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect($){return new v0(this.#$,$)}async signTransaction($){$=O8($);let{to:Q,from:J}=await p$({to:$.to?q0($.to,this):void 0,from:$.from?q0($.from,this):void 0});if(Q!=null)$.to=Q;if(J!=null)$.from=J;if($.from!=null)O(m($.from)===this.address,"transaction from address mismatch","tx.from",$.from),delete $.from;let Y=N$.from($);return Y.signature=this.signingKey.sign(Y.unsignedHash),Y.serialized}async signMessage($){return this.signMessageSync($)}signMessageSync($){return this.signingKey.sign(z8($)).serialized}authorizeSync($){O(typeof $.address==="string","invalid address for authorizeSync","auth.address",$);let Q=this.signingKey.sign(JQ($));return Object.assign({},{address:m($.address),nonce:p($.nonce||0),chainId:p($.chainId||0)},{signature:Q})}async authorize($){return $=Object.assign({},$,{address:await q0($.address,this)}),this.authorizeSync(await this.populateAuthorization($))}async signTypedData($,Q,J){let Y=await H$.resolveNames($,Q,J,async(X)=>{b(this.provider!=null,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:X}});let Z=await this.provider.resolveName(X);return b(Z!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:X}),Z});return this.signingKey.sign(H$.hash(Y.domain,Q,Y.value)).serialized}}var ZQ=" !#$%&'()*+,-./<=>?@[]^_`{|}~",Wq=/^[a-z]*$/i;function PX($,Q){let J=97;return $.reduce((Y,X)=>{if(X===Q)J++;else if(X.match(Wq))Y.push(String.fromCharCode(J)+X);else J=97,Y.push(X);return Y},[])}function Vq($,Q){for(let X=ZQ.length-1;X>=0;X--)$=$.split(ZQ[X]).join(Q.substring(2*X,2*X+2));let J=[],Y=$.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(X,Z,q,G)=>{if(q)for(let M=parseInt(q);M>=0;M--)J.push(";");else J.push(Z.toLowerCase());return""});if(Y)throw Error(`leftovers: ${JSON.stringify(Y)}`);return PX(PX(J,";"),":")}function SX($){return O($[0]==="0","unsupported auwl data","data",$),Vq($.substring(1+2*ZQ.length),$.substring(1,1+2*ZQ.length))}class zJ{locale;constructor($){r(this,{locale:$})}split($){return $.toLowerCase().split(/\s+/g)}join($){return $.join(" ")}}class DJ extends zJ{#$;#Q;constructor($,Q,J){super($);this.#$=Q,this.#Q=J,this.#J=null}get _data(){return this.#$}_decodeWords(){return SX(this.#$)}#J;#Y(){if(this.#J==null){let $=this._decodeWords();if(G0($.join(`
|
|
2
|
+
var dX=Object.defineProperty;var nX=($)=>$;function oX($,Q){this[$]=nX.bind(null,Q)}var iX=($,Q)=>{for(var J in Q)dX($,J,{get:Q[J],enumerable:!0,configurable:!0,set:oX.bind(Q,J)})};var w8="6.15.0";function rX($,Q,J){let Y=Q.split("|").map((Z)=>Z.trim());for(let Z=0;Z<Y.length;Z++)switch(Q){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof $===Q)return}let X=Error(`invalid value for type ${Q}`);throw X.code="INVALID_ARGUMENT",X.argument=`value.${J}`,X.value=$,X}async function p$($){let Q=Object.keys($);return(await Promise.all(Q.map((Y)=>Promise.resolve($[Y])))).reduce((Y,X,Z)=>{return Y[Q[Z]]=X,Y},{})}function a($,Q,J){for(let Y in Q){let X=Q[Y],Z=J?J[Y]:null;if(Z)rX(X,Z,Y);Object.defineProperty($,Y,{enumerable:!0,value:X,writable:!1})}}function c0($,Q){if($==null)return"null";if(Q==null)Q=new Set;if(typeof $==="object"){if(Q.has($))return"[Circular]";Q.add($)}if(Array.isArray($))return"[ "+$.map((J)=>c0(J,Q)).join(", ")+" ]";if($ instanceof Uint8Array){let Y="0x";for(let X=0;X<$.length;X++)Y+="0123456789abcdef"[$[X]>>4],Y+="0123456789abcdef"[$[X]&15];return Y}if(typeof $==="object"&&typeof $.toJSON==="function")return c0($.toJSON(),Q);switch(typeof $){case"boolean":case"number":case"symbol":return $.toString();case"bigint":return BigInt($).toString();case"string":return JSON.stringify($);case"object":{let J=Object.keys($);return J.sort(),"{ "+J.map((Y)=>`${c0(Y,Q)}: ${c0($[Y],Q)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function B8($,Q){return $&&$.code===Q}function Y8($,Q,J){let Y=$;{let Z=[];if(J){if("message"in J||"code"in J||"name"in J)throw Error(`value will overwrite populated values: ${c0(J)}`);for(let q in J){if(q==="shortMessage")continue;let G=J[q];Z.push(q+"="+c0(G))}}if(Z.push(`code=${Q}`),Z.push(`version=${w8}`),Z.length)$+=" ("+Z.join(", ")+")"}let X;switch(Q){case"INVALID_ARGUMENT":X=TypeError($);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":X=RangeError($);break;default:X=Error($)}if(a(X,{code:Q}),J)Object.assign(X,J);if(X.shortMessage==null)a(X,{shortMessage:Y});return X}function b($,Q,J,Y){if(!$)throw Y8(Q,J,Y)}function D($,Q,J,Y){b($,Q,"INVALID_ARGUMENT",{argument:J,value:Y})}var aX=["NFD","NFC","NFKD","NFKC"].reduce(($,Q)=>{try{if("test".normalize(Q)!=="test")throw Error("bad");if(Q==="NFD"){let J=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(J!==Y)throw Error("broken")}$.push(Q)}catch(J){}return $},[]);function u0($){b(aX.indexOf($)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:$}})}function r$($,Q,J){if(J==null)J="";if($!==Q){let Y=J,X="new";if(J)Y+=".",X+=" "+J;b(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:X})}}function fJ($,Q,J){if($ instanceof Uint8Array){if(J)return new Uint8Array($);return $}if(typeof $==="string"&&$.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let Y=new Uint8Array(($.length-2)/2),X=2;for(let Z=0;Z<Y.length;Z++)Y[Z]=parseInt($.substring(X,X+2),16),X+=2;return Y}D(!1,"invalid BytesLike value",Q||"value",$)}function E($,Q){return fJ($,Q,!1)}function g$($,Q){return fJ($,Q,!0)}function K$($,Q){if(typeof $!=="string"||!$.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof Q==="number"&&$.length!==2+2*Q)return!1;if(Q===!0&&$.length%2!==0)return!1;return!0}function l$($){return K$($,!0)||$ instanceof Uint8Array}var _J="0123456789abcdef";function N($){let Q=E($),J="0x";for(let Y=0;Y<Q.length;Y++){let X=Q[Y];J+=_J[(X&240)>>4]+_J[X&15]}return J}function d($){return"0x"+$.map((Q)=>N(Q).substring(2)).join("")}function a$($){if(K$($,!0))return($.length-2)/2;return E($).length}function p0($,Q,J){let Y=E($);if(J!=null&&J>Y.length)b(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:J});return N(Y.slice(Q==null?0:Q,J==null?Y.length:J))}function sX($,Q,J){let Y=E($);b(Q>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:Q,offset:Q+1});let X=new Uint8Array(Q);if(X.fill(0),J)X.set(Y,Q-Y.length);else X.set(Y,0);return N(X)}function j$($,Q){return sX($,Q,!0)}var BQ=BigInt(0),P0=BigInt(1),l0=9007199254740991;function F8($,Q){let J=p($,"value"),Y=BigInt(W$(Q,"width")),X=P0<<Y-P0;if(J<BQ){J=-J,b(J<=X,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:$});let Z=(P0<<Y)-P0;return(~J&Z)+P0}else b(J<X,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:$});return J}function A8($,Q){let J=X8($,"value"),Y=BigInt(W$(Q,"bits"));return J&(P0<<Y)-P0}function p($,Q){switch(typeof $){case"bigint":return $;case"number":return D(Number.isInteger($),"underflow",Q||"value",$),D($>=-l0&&$<=l0,"overflow",Q||"value",$),BigInt($);case"string":try{if($==="")throw Error("empty string");if($[0]==="-"&&$[1]!=="-")return-BigInt($.substring(1));return BigInt($)}catch(J){D(!1,`invalid BigNumberish string: ${J.message}`,Q||"value",$)}}D(!1,"invalid BigNumberish value",Q||"value",$)}function X8($,Q){let J=p($,Q);return b(J>=BQ,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:$}),J}var bJ="0123456789abcdef";function d0($){if($ instanceof Uint8Array){let Q="0x0";for(let J of $)Q+=bJ[J>>4],Q+=bJ[J&15];return BigInt(Q)}return p($)}function W$($,Q){switch(typeof $){case"bigint":return D($>=-l0&&$<=l0,"overflow",Q||"value",$),Number($);case"number":return D(Number.isInteger($),"underflow",Q||"value",$),D($>=-l0&&$<=l0,"overflow",Q||"value",$),$;case"string":try{if($==="")throw Error("empty string");return W$(BigInt($),Q)}catch(J){D(!1,`invalid numeric string: ${J.message}`,Q||"value",$)}}D(!1,"invalid numeric value",Q||"value",$)}function y$($,Q){let Y=X8($,"value").toString(16);if(Q==null){if(Y.length%2)Y="0"+Y}else{let X=W$(Q,"width");b(X*2>=Y.length,`value exceeds width (${X} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:$});while(Y.length<X*2)Y="0"+Y}return"0x"+Y}function s($){let Q=X8($,"value");if(Q===BQ)return new Uint8Array([]);let J=Q.toString(16);if(J.length%2)J="0"+J;let Y=new Uint8Array(J.length/2);for(let X=0;X<Y.length;X++){let Z=X*2;Y[X]=parseInt(J.substring(Z,Z+2),16)}return Y}function k8($){let Q=N(l$($)?$:s($)).substring(2);while(Q.startsWith("0"))Q=Q.substring(1);if(Q==="")Q="0";return"0x"+Q}var f8="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",_8=null;function tX($){if(_8==null){_8={};for(let J=0;J<f8.length;J++)_8[f8[J]]=BigInt(J)}let Q=_8[$];return D(Q!=null,"invalid base58 value","letter",$),Q}var eX=BigInt(0),FQ=BigInt(58);function b8($){let Q=E($),J=d0(Q),Y="";while(J)Y=f8[Number(J%FQ)]+Y,J/=FQ;for(let X=0;X<Q.length;X++){if(Q[X])break;Y=f8[0]+Y}return Y}function x8($){let Q=eX;for(let J=0;J<$.length;J++)Q*=FQ,Q+=tX($[J]);return Q}function $Z($,Q,J,Y,X){D(!1,`invalid codepoint at offset ${Q}; ${$}`,"bytes",J)}function xJ($,Q,J,Y,X){if($==="BAD_PREFIX"||$==="UNEXPECTED_CONTINUE"){let Z=0;for(let q=Q+1;q<J.length;q++){if(J[q]>>6!==2)break;Z++}return Z}if($==="OVERRUN")return J.length-Q-1;return 0}function QZ($,Q,J,Y,X){if($==="OVERLONG")return D(typeof X==="number","invalid bad code point for replacement","badCodepoint",X),Y.push(X),0;return Y.push(65533),xJ($,Q,J,Y,X)}var vJ=Object.freeze({error:$Z,ignore:xJ,replace:QZ});function q$($,Q){if(D(typeof $==="string","invalid string value","str",$),Q!=null)u0(Q),$=$.normalize(Q);let J=[];for(let Y=0;Y<$.length;Y++){let X=$.charCodeAt(Y);if(X<128)J.push(X);else if(X<2048)J.push(X>>6|192),J.push(X&63|128);else if((X&64512)==55296){Y++;let Z=$.charCodeAt(Y);D(Y<$.length&&(Z&64512)===56320,"invalid surrogate pair","str",$);let q=65536+((X&1023)<<10)+(Z&1023);J.push(q>>18|240),J.push(q>>12&63|128),J.push(q>>6&63|128),J.push(q&63|128)}else J.push(X>>12|224),J.push(X>>6&63|128),J.push(X&63|128)}return new Uint8Array(J)}function JZ($){let Q=$.toString(16);while(Q.length<2)Q="0"+Q;return"0x"+Q}function gJ($,Q,J){let Y=0;for(let X=0;X<J;X++)Y=Y*256+$[Q+X];return Y}function yJ($,Q,J,Y){let X=[];while(J<Q+1+Y){let Z=hJ($,J);X.push(Z.result),J+=Z.consumed,b(J<=Q+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:$,length:Y,offset:Q})}return{consumed:1+Y,result:X}}function hJ($,Q){b($.length!==0,"data too short","BUFFER_OVERRUN",{buffer:$,length:0,offset:1});let J=(Y)=>{b(Y<=$.length,"data short segment too short","BUFFER_OVERRUN",{buffer:$,length:$.length,offset:Y})};if($[Q]>=248){let Y=$[Q]-247;J(Q+1+Y);let X=gJ($,Q+1,Y);return J(Q+1+Y+X),yJ($,Q,Q+1+Y,Y+X)}else if($[Q]>=192){let Y=$[Q]-192;return J(Q+1+Y),yJ($,Q,Q+1,Y)}else if($[Q]>=184){let Y=$[Q]-183;J(Q+1+Y);let X=gJ($,Q+1,Y);J(Q+1+Y+X);let Z=N($.slice(Q+1+Y,Q+1+Y+X));return{consumed:1+Y+X,result:Z}}else if($[Q]>=128){let Y=$[Q]-128;J(Q+1+Y);let X=N($.slice(Q+1,Q+1+Y));return{consumed:1+Y,result:X}}return{consumed:1,result:JZ($[Q])}}function V0($){let Q=E($,"data"),J=hJ(Q,0);return D(J.consumed===Q.length,"unexpected junk after rlp payload","data",$),J.result}function mJ($){let Q=[];while($)Q.unshift($&255),$>>=8;return Q}function uJ($){if(Array.isArray($)){let Y=[];if($.forEach(function(Z){Y=Y.concat(uJ(Z))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let X=mJ(Y.length);return X.unshift(247+X.length),X.concat(Y)}let Q=Array.prototype.slice.call(E($,"object"));if(Q.length===1&&Q[0]<=127)return Q;else if(Q.length<=55)return Q.unshift(128+Q.length),Q;let J=mJ(Q.length);return J.unshift(183+J.length),J.concat(Q)}var cJ="0123456789abcdef";function F$($){let Q="0x";for(let J of uJ($))Q+=cJ[J>>4],Q+=cJ[J&15];return Q}function v8($){let Q=E($,"randomBytes");Q[6]=Q[6]&15|64,Q[8]=Q[8]&63|128;let J=N(Q);return[J.substring(2,10),J.substring(10,14),J.substring(14,18),J.substring(18,22),J.substring(22,34)].join("-")}function I$($){if(!Number.isSafeInteger($)||$<0)throw Error(`Wrong positive integer: ${$}`)}function Z8($,...Q){if(!($ instanceof Uint8Array))throw Error("Expected Uint8Array");if(Q.length>0&&!Q.includes($.length))throw Error(`Expected Uint8Array of length ${Q}, not of length=${$.length}`)}function g8($){if(typeof $!=="function"||typeof $.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");I$($.outputLen),I$($.blockLen)}function s$($,Q=!0){if($.destroyed)throw Error("Hash instance has been destroyed");if(Q&&$.finished)throw Error("Hash#digest() has already been called")}function y8($,Q){Z8($);let J=Q.outputLen;if($.length<J)throw Error(`digestInto() expects output buffer of length at least ${J}`)}var h8=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var pJ=($)=>$ instanceof Uint8Array;var n0=($)=>new Uint32Array($.buffer,$.byteOffset,Math.floor($.byteLength/4)),o0=($)=>new DataView($.buffer,$.byteOffset,$.byteLength),h$=($,Q)=>$<<32-Q|$>>>Q,VZ=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!VZ)throw Error("Non little-endian hardware is not supported");var OZ=async()=>{};async function m8($,Q,J){let Y=Date.now();for(let X=0;X<$;X++){J(X);let Z=Date.now()-Y;if(Z>=0&&Z<Q)continue;await OZ(),Y+=Z}}function DZ($){if(typeof $!=="string")throw Error(`utf8ToBytes expected string, got ${typeof $}`);return new Uint8Array(new TextEncoder().encode($))}function d$($){if(typeof $==="string")$=DZ($);if(!pJ($))throw Error(`expected Uint8Array, got ${typeof $}`);return $}function lJ(...$){let Q=new Uint8Array($.reduce((Y,X)=>Y+X.length,0)),J=0;return $.forEach((Y)=>{if(!pJ(Y))throw Error("Uint8Array expected");Q.set(Y,J),J+=Y.length}),Q}class w0{clone(){return this._cloneInto()}}var KZ={}.toString;function c8($,Q){if(Q!==void 0&&KZ.call(Q)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign($,Q)}function O0($){let Q=(Y)=>$().update(d$(Y)).digest(),J=$();return Q.outputLen=J.outputLen,Q.blockLen=J.blockLen,Q.create=()=>$(),Q}function dJ($=32){if(h8&&typeof h8.getRandomValues==="function")return h8.getRandomValues(new Uint8Array($));throw Error("crypto.getRandomValues must be defined")}class AQ extends w0{constructor($,Q){super();this.finished=!1,this.destroyed=!1,g8($);let J=d$(Q);if(this.iHash=$.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 Y=this.blockLen,X=new Uint8Array(Y);X.set(J.length>Y?$.create().update(J).digest():J);for(let Z=0;Z<X.length;Z++)X[Z]^=54;this.iHash.update(X),this.oHash=$.create();for(let Z=0;Z<X.length;Z++)X[Z]^=106;this.oHash.update(X),X.fill(0)}update($){return s$(this),this.iHash.update($),this}digestInto($){s$(this),Z8($,this.outputLen),this.finished=!0,this.iHash.digestInto($),this.oHash.update($),this.oHash.digestInto($),this.destroy()}digest(){let $=new Uint8Array(this.oHash.outputLen);return this.digestInto($),$}_cloneInto($){$||($=Object.create(Object.getPrototypeOf(this),{}));let{oHash:Q,iHash:J,finished:Y,destroyed:X,blockLen:Z,outputLen:q}=this;return $=$,$.finished=Y,$.destroyed=X,$.blockLen=Z,$.outputLen=q,$.oHash=Q._cloneInto($.oHash),$.iHash=J._cloneInto($.iHash),$}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var B0=($,Q,J)=>new AQ($,Q).update(J).digest();B0.create=($,Q)=>new AQ($,Q);function IZ($,Q,J,Y){g8($);let X=c8({dkLen:32,asyncTick:10},Y),{c:Z,dkLen:q,asyncTick:G}=X;if(I$(Z),I$(q),I$(G),Z<1)throw Error("PBKDF2: iterations (c) should be >= 1");let M=d$(Q),W=d$(J),z=new Uint8Array(q),O=B0.create($,M),I=O._cloneInto().update(W);return{c:Z,dkLen:q,asyncTick:G,DK:z,PRF:O,PRFSalt:I}}function TZ($,Q,J,Y,X){if($.destroy(),Q.destroy(),Y)Y.destroy();return X.fill(0),J}function q8($,Q,J,Y){let{c:X,dkLen:Z,DK:q,PRF:G,PRFSalt:M}=IZ($,Q,J,Y),W,z=new Uint8Array(4),O=o0(z),I=new Uint8Array(G.outputLen);for(let P=1,K=0;K<Z;P++,K+=G.outputLen){let U=q.subarray(K,K+G.outputLen);O.setInt32(0,P,!1),(W=M._cloneInto(W)).update(z).digestInto(I),U.set(I.subarray(0,U.length));for(let R=1;R<X;R++){G._cloneInto(W).update(I).digestInto(I);for(let V=0;V<U.length;V++)U[V]^=I[V]}}return TZ(G,M,q,W,I)}function UZ($,Q,J,Y){if(typeof $.setBigUint64==="function")return $.setBigUint64(Q,J,Y);let X=BigInt(32),Z=BigInt(4294967295),q=Number(J>>X&Z),G=Number(J&Z),M=Y?4:0,W=Y?0:4;$.setUint32(Q+M,q,Y),$.setUint32(Q+W,G,Y)}class F0 extends w0{constructor($,Q,J,Y){super();this.blockLen=$,this.outputLen=Q,this.padOffset=J,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array($),this.view=o0(this.buffer)}update($){s$(this);let{view:Q,buffer:J,blockLen:Y}=this;$=d$($);let X=$.length;for(let Z=0;Z<X;){let q=Math.min(Y-this.pos,X-Z);if(q===Y){let G=o0($);for(;Y<=X-Z;Z+=Y)this.process(G,Z);continue}if(J.set($.subarray(Z,Z+q),this.pos),this.pos+=q,Z+=q,this.pos===Y)this.process(Q,0),this.pos=0}return this.length+=$.length,this.roundClean(),this}digestInto($){s$(this),y8($,this),this.finished=!0;let{buffer:Q,view:J,blockLen:Y,isLE:X}=this,{pos:Z}=this;if(Q[Z++]=128,this.buffer.subarray(Z).fill(0),this.padOffset>Y-Z)this.process(J,0),Z=0;for(let z=Z;z<Y;z++)Q[z]=0;UZ(J,Y-8,BigInt(this.length*8),X),this.process(J,0);let q=o0($),G=this.outputLen;if(G%4)throw Error("_sha2: outputLen should be aligned to 32bit");let M=G/4,W=this.get();if(M>W.length)throw Error("_sha2: outputLen bigger than state");for(let z=0;z<M;z++)q.setUint32(4*z,W[z],X)}digest(){let{buffer:$,outputLen:Q}=this;this.digestInto($);let J=$.slice(0,Q);return this.destroy(),J}_cloneInto($){$||($=new this.constructor),$.set(...this.get());let{blockLen:Q,buffer:J,length:Y,finished:X,destroyed:Z,pos:q}=this;if($.length=Y,$.pos=q,$.finished=X,$.destroyed=Z,Y%Q)$.buffer.set(J);return $}}var HZ=($,Q,J)=>$&Q^~$&J,RZ=($,Q,J)=>$&Q^$&J^Q&J,LZ=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]),D0=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),K0=new Uint32Array(64);class nJ extends F0{constructor(){super(64,32,8,!1);this.A=D0[0]|0,this.B=D0[1]|0,this.C=D0[2]|0,this.D=D0[3]|0,this.E=D0[4]|0,this.F=D0[5]|0,this.G=D0[6]|0,this.H=D0[7]|0}get(){let{A:$,B:Q,C:J,D:Y,E:X,F:Z,G:q,H:G}=this;return[$,Q,J,Y,X,Z,q,G]}set($,Q,J,Y,X,Z,q,G){this.A=$|0,this.B=Q|0,this.C=J|0,this.D=Y|0,this.E=X|0,this.F=Z|0,this.G=q|0,this.H=G|0}process($,Q){for(let z=0;z<16;z++,Q+=4)K0[z]=$.getUint32(Q,!1);for(let z=16;z<64;z++){let O=K0[z-15],I=K0[z-2],P=h$(O,7)^h$(O,18)^O>>>3,K=h$(I,17)^h$(I,19)^I>>>10;K0[z]=K+K0[z-7]+P+K0[z-16]|0}let{A:J,B:Y,C:X,D:Z,E:q,F:G,G:M,H:W}=this;for(let z=0;z<64;z++){let O=h$(q,6)^h$(q,11)^h$(q,25),I=W+O+HZ(q,G,M)+LZ[z]+K0[z]|0,K=(h$(J,2)^h$(J,13)^h$(J,22))+RZ(J,Y,X)|0;W=M,M=G,G=q,q=Z+I|0,Z=X,X=Y,Y=J,J=I+K|0}J=J+this.A|0,Y=Y+this.B|0,X=X+this.C|0,Z=Z+this.D|0,q=q+this.E|0,G=G+this.F|0,M=M+this.G|0,W=W+this.H|0,this.set(J,Y,X,Z,q,G,M,W)}roundClean(){K0.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var t$=O0(()=>new nJ);var u8=BigInt(4294967295),kQ=BigInt(32);function oJ($,Q=!1){if(Q)return{h:Number($&u8),l:Number($>>kQ&u8)};return{h:Number($>>kQ&u8)|0,l:Number($&u8)|0}}function _Q($,Q=!1){let J=new Uint32Array($.length),Y=new Uint32Array($.length);for(let X=0;X<$.length;X++){let{h:Z,l:q}=oJ($[X],Q);[J[X],Y[X]]=[Z,q]}return[J,Y]}var NZ=($,Q)=>BigInt($>>>0)<<kQ|BigInt(Q>>>0),CZ=($,Q,J)=>$>>>J,EZ=($,Q,J)=>$<<32-J|Q>>>J,jZ=($,Q,J)=>$>>>J|Q<<32-J,SZ=($,Q,J)=>$<<32-J|Q>>>J,PZ=($,Q,J)=>$<<64-J|Q>>>J-32,wZ=($,Q,J)=>$>>>J-32|Q<<64-J,BZ=($,Q)=>Q,FZ=($,Q)=>$,fQ=($,Q,J)=>$<<J|Q>>>32-J,bQ=($,Q,J)=>Q<<J|$>>>32-J,xQ=($,Q,J)=>Q<<J-32|$>>>64-J,vQ=($,Q,J)=>$<<J-32|Q>>>64-J;function AZ($,Q,J,Y){let X=(Q>>>0)+(Y>>>0);return{h:$+J+(X/4294967296|0)|0,l:X|0}}var kZ=($,Q,J)=>($>>>0)+(Q>>>0)+(J>>>0),_Z=($,Q,J,Y)=>Q+J+Y+($/4294967296|0)|0,fZ=($,Q,J,Y)=>($>>>0)+(Q>>>0)+(J>>>0)+(Y>>>0),bZ=($,Q,J,Y,X)=>Q+J+Y+X+($/4294967296|0)|0,xZ=($,Q,J,Y,X)=>($>>>0)+(Q>>>0)+(J>>>0)+(Y>>>0)+(X>>>0),vZ=($,Q,J,Y,X,Z)=>Q+J+Y+X+Z+($/4294967296|0)|0;var gZ={fromBig:oJ,split:_Q,toBig:NZ,shrSH:CZ,shrSL:EZ,rotrSH:jZ,rotrSL:SZ,rotrBH:PZ,rotrBL:wZ,rotr32H:BZ,rotr32L:FZ,rotlSH:fQ,rotlSL:bQ,rotlBH:xQ,rotlBL:vQ,add:AZ,add3L:kZ,add3H:_Z,add4L:fZ,add4H:bZ,add5H:vZ,add5L:xZ},h=gZ;var[yZ,hZ]=(()=>h.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(($)=>BigInt($))))(),I0=new Uint32Array(80),T0=new Uint32Array(80);class iJ extends F0{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:$,Al:Q,Bh:J,Bl:Y,Ch:X,Cl:Z,Dh:q,Dl:G,Eh:M,El:W,Fh:z,Fl:O,Gh:I,Gl:P,Hh:K,Hl:U}=this;return[$,Q,J,Y,X,Z,q,G,M,W,z,O,I,P,K,U]}set($,Q,J,Y,X,Z,q,G,M,W,z,O,I,P,K,U){this.Ah=$|0,this.Al=Q|0,this.Bh=J|0,this.Bl=Y|0,this.Ch=X|0,this.Cl=Z|0,this.Dh=q|0,this.Dl=G|0,this.Eh=M|0,this.El=W|0,this.Fh=z|0,this.Fl=O|0,this.Gh=I|0,this.Gl=P|0,this.Hh=K|0,this.Hl=U|0}process($,Q){for(let T=0;T<16;T++,Q+=4)I0[T]=$.getUint32(Q),T0[T]=$.getUint32(Q+=4);for(let T=16;T<80;T++){let L=I0[T-15]|0,w=T0[T-15]|0,j=h.rotrSH(L,w,1)^h.rotrSH(L,w,8)^h.shrSH(L,w,7),C=h.rotrSL(L,w,1)^h.rotrSL(L,w,8)^h.shrSL(L,w,7),S=I0[T-2]|0,A=T0[T-2]|0,x=h.rotrSH(S,A,19)^h.rotrBH(S,A,61)^h.shrSH(S,A,6),v=h.rotrSL(S,A,19)^h.rotrBL(S,A,61)^h.shrSL(S,A,6),m=h.add4L(C,v,T0[T-7],T0[T-16]),F=h.add4H(m,j,x,I0[T-7],I0[T-16]);I0[T]=F|0,T0[T]=m|0}let{Ah:J,Al:Y,Bh:X,Bl:Z,Ch:q,Cl:G,Dh:M,Dl:W,Eh:z,El:O,Fh:I,Fl:P,Gh:K,Gl:U,Hh:R,Hl:V}=this;for(let T=0;T<80;T++){let L=h.rotrSH(z,O,14)^h.rotrSH(z,O,18)^h.rotrBH(z,O,41),w=h.rotrSL(z,O,14)^h.rotrSL(z,O,18)^h.rotrBL(z,O,41),j=z&I^~z&K,C=O&P^~O&U,S=h.add5L(V,w,C,hZ[T],T0[T]),A=h.add5H(S,R,L,j,yZ[T],I0[T]),x=S|0,v=h.rotrSH(J,Y,28)^h.rotrBH(J,Y,34)^h.rotrBH(J,Y,39),m=h.rotrSL(J,Y,28)^h.rotrBL(J,Y,34)^h.rotrBL(J,Y,39),F=J&X^J&q^X&q,_=Y&Z^Y&G^Z&G;R=K|0,V=U|0,K=I|0,U=P|0,I=z|0,P=O|0,{h:z,l:O}=h.add(M|0,W|0,A|0,x|0),M=q|0,W=G|0,q=X|0,G=Z|0,X=J|0,Z=Y|0;let k=h.add3L(x,m,_);J=h.add3H(k,A,v,F),Y=k|0}({h:J,l:Y}=h.add(this.Ah|0,this.Al|0,J|0,Y|0)),{h:X,l:Z}=h.add(this.Bh|0,this.Bl|0,X|0,Z|0),{h:q,l:G}=h.add(this.Ch|0,this.Cl|0,q|0,G|0),{h:M,l:W}=h.add(this.Dh|0,this.Dl|0,M|0,W|0),{h:z,l:O}=h.add(this.Eh|0,this.El|0,z|0,O|0),{h:I,l:P}=h.add(this.Fh|0,this.Fl|0,I|0,P|0),{h:K,l:U}=h.add(this.Gh|0,this.Gl|0,K|0,U|0),{h:R,l:V}=h.add(this.Hh|0,this.Hl|0,R|0,V|0),this.set(J,Y,X,Z,q,G,M,W,z,O,I,P,K,U,R,V)}roundClean(){I0.fill(0),T0.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 p8=O0(()=>new iJ);function mZ(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof window<"u")return window;throw Error("unable to locate global object")}var rJ=mZ(),aJ=rJ.crypto||rJ.msCrypto;function gQ($){switch($){case"sha256":return t$.create();case"sha512":return p8.create()}D(!1,"invalid hashing algorithm name","algorithm",$)}function sJ($,Q){let J={sha256:t$,sha512:p8}[$];return D(J!=null,"invalid hmac algorithm","algorithm",$),B0.create(J,Q)}function tJ($,Q,J,Y,X){let Z={sha256:t$,sha512:p8}[X];return D(Z!=null,"invalid pbkdf2 algorithm","algorithm",X),q8(Z,$,Q,{c:J,dkLen:Y})}function eJ($){b(aJ!=null,"platform does not support secure random numbers","UNSUPPORTED_OPERATION",{operation:"randomBytes"}),D(Number.isInteger($)&&$>0&&$<=1024,"invalid length","length",$);let Q=new Uint8Array($);return aJ.getRandomValues(Q),Q}var $Y=!1,QY=function($,Q,J){return sJ($,Q).update(J).digest()},JY=QY;function e$($,Q,J){let Y=E(Q,"key"),X=E(J,"data");return N(JY($,Y,X))}e$._=QY;e$.lock=function(){$Y=!0};e$.register=function($){if($Y)throw Error("computeHmac is locked");JY=$};Object.freeze(e$);var[ZY,qY,GY]=[[],[],[]],cZ=BigInt(0),G8=BigInt(1),uZ=BigInt(2),pZ=BigInt(7),lZ=BigInt(256),dZ=BigInt(113);for(let $=0,Q=G8,J=1,Y=0;$<24;$++){[J,Y]=[Y,(2*J+3*Y)%5],ZY.push(2*(5*Y+J)),qY.push(($+1)*($+2)/2%64);let X=cZ;for(let Z=0;Z<7;Z++)if(Q=(Q<<G8^(Q>>pZ)*dZ)%lZ,Q&uZ)X^=G8<<(G8<<BigInt(Z))-G8;GY.push(X)}var[nZ,oZ]=_Q(GY,!0),YY=($,Q,J)=>J>32?xQ($,Q,J):fQ($,Q,J),XY=($,Q,J)=>J>32?vQ($,Q,J):bQ($,Q,J);function iZ($,Q=24){let J=new Uint32Array(10);for(let Y=24-Q;Y<24;Y++){for(let q=0;q<10;q++)J[q]=$[q]^$[q+10]^$[q+20]^$[q+30]^$[q+40];for(let q=0;q<10;q+=2){let G=(q+8)%10,M=(q+2)%10,W=J[M],z=J[M+1],O=YY(W,z,1)^J[G],I=XY(W,z,1)^J[G+1];for(let P=0;P<50;P+=10)$[q+P]^=O,$[q+P+1]^=I}let X=$[2],Z=$[3];for(let q=0;q<24;q++){let G=qY[q],M=YY(X,Z,G),W=XY(X,Z,G),z=ZY[q];X=$[z],Z=$[z+1],$[z]=M,$[z+1]=W}for(let q=0;q<50;q+=10){for(let G=0;G<10;G++)J[G]=$[q+G];for(let G=0;G<10;G++)$[q+G]^=~J[(G+2)%10]&J[(G+4)%10]}$[0]^=nZ[Y],$[1]^=oZ[Y]}J.fill(0)}class yQ extends w0{constructor($,Q,J,Y=!1,X=24){super();if(this.blockLen=$,this.suffix=Q,this.outputLen=J,this.enableXOF=Y,this.rounds=X,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,I$(J),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=n0(this.state)}keccak(){iZ(this.state32,this.rounds),this.posOut=0,this.pos=0}update($){s$(this);let{blockLen:Q,state:J}=this;$=d$($);let Y=$.length;for(let X=0;X<Y;){let Z=Math.min(Q-this.pos,Y-X);for(let q=0;q<Z;q++)J[this.pos++]^=$[X++];if(this.pos===Q)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:$,suffix:Q,pos:J,blockLen:Y}=this;if($[J]^=Q,(Q&128)!==0&&J===Y-1)this.keccak();$[Y-1]^=128,this.keccak()}writeInto($){s$(this,!1),Z8($),this.finish();let Q=this.state,{blockLen:J}=this;for(let Y=0,X=$.length;Y<X;){if(this.posOut>=J)this.keccak();let Z=Math.min(J-this.posOut,X-Y);$.set(Q.subarray(this.posOut,this.posOut+Z),Y),this.posOut+=Z,Y+=Z}return $}xofInto($){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto($)}xof($){return I$($),this.xofInto(new Uint8Array($))}digestInto($){if(y8($,this),this.finished)throw Error("digest() was already called");return this.writeInto($),this.destroy(),$}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto($){let{blockLen:Q,suffix:J,outputLen:Y,rounds:X,enableXOF:Z}=this;return $||($=new yQ(Q,J,Y,Z,X)),$.state32.set(this.state32),$.pos=this.pos,$.posOut=this.posOut,$.finished=this.finished,$.rounds=X,$.suffix=J,$.outputLen=Y,$.enableXOF=Z,$.destroyed=this.destroyed,$}}var rZ=($,Q,J)=>O0(()=>new yQ(Q,$,J));var MY=rZ(1,136,32);var WY=!1,zY=function($){return MY($)},VY=zY;function o($){let Q=E($,"data");return N(VY(Q))}o._=zY;o.lock=function(){WY=!0};o.register=function($){if(WY)throw TypeError("keccak256 is locked");VY=$};Object.freeze(o);var aZ=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),DY=Uint8Array.from({length:16},($,Q)=>Q),sZ=DY.map(($)=>(9*$+5)%16),hQ=[DY],mQ=[sZ];for(let $=0;$<4;$++)for(let Q of[hQ,mQ])Q.push(Q[$].map((J)=>aZ[J]));var KY=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(($)=>new Uint8Array($)),tZ=hQ.map(($,Q)=>$.map((J)=>KY[Q][J])),eZ=mQ.map(($,Q)=>$.map((J)=>KY[Q][J])),$9=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),Q9=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),l8=($,Q)=>$<<Q|$>>>32-Q;function OY($,Q,J,Y){if($===0)return Q^J^Y;else if($===1)return Q&J|~Q&Y;else if($===2)return(Q|~J)^Y;else if($===3)return Q&Y|J&~Y;else return Q^(J|~Y)}var d8=new Uint32Array(16);class IY extends F0{constructor(){super(64,20,8,!0);this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){let{h0:$,h1:Q,h2:J,h3:Y,h4:X}=this;return[$,Q,J,Y,X]}set($,Q,J,Y,X){this.h0=$|0,this.h1=Q|0,this.h2=J|0,this.h3=Y|0,this.h4=X|0}process($,Q){for(let I=0;I<16;I++,Q+=4)d8[I]=$.getUint32(Q,!0);let J=this.h0|0,Y=J,X=this.h1|0,Z=X,q=this.h2|0,G=q,M=this.h3|0,W=M,z=this.h4|0,O=z;for(let I=0;I<5;I++){let P=4-I,K=$9[I],U=Q9[I],R=hQ[I],V=mQ[I],T=tZ[I],L=eZ[I];for(let w=0;w<16;w++){let j=l8(J+OY(I,X,q,M)+d8[R[w]]+K,T[w])+z|0;J=z,z=M,M=l8(q,10)|0,q=X,X=j}for(let w=0;w<16;w++){let j=l8(Y+OY(P,Z,G,W)+d8[V[w]]+U,L[w])+O|0;Y=O,O=W,W=l8(G,10)|0,G=Z,Z=j}}this.set(this.h1+q+W|0,this.h2+M+O|0,this.h3+z+Y|0,this.h4+J+Z|0,this.h0+X+G|0)}roundClean(){d8.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var TY=O0(()=>new IY);var UY=!1,HY=function($){return TY($)},RY=HY;function $0($){let Q=E($,"data");return N(RY(Q))}$0._=HY;$0.lock=function(){UY=!0};$0.register=function($){if(UY)throw TypeError("ripemd160 is locked");RY=$};Object.freeze($0);var LY=!1,NY=function($,Q,J,Y,X){return tJ($,Q,J,Y,X)},CY=NY;function S$($,Q,J,Y,X){let Z=E($,"password"),q=E(Q,"salt");return N(CY(Z,q,J,Y,X))}S$._=NY;S$.lock=function(){LY=!0};S$.register=function($){if(LY)throw Error("pbkdf2 is locked");CY=$};Object.freeze(S$);var EY=!1,jY=function($){return new Uint8Array(eJ($))},SY=jY;function J$($){return SY($)}J$._=jY;J$.lock=function(){EY=!0};J$.register=function($){if(EY)throw Error("randomBytes is locked");SY=$};Object.freeze(J$);var n=($,Q)=>$<<Q|$>>>32-Q;function PY($,Q,J,Y,X,Z){let q=$[Q++]^J[Y++],G=$[Q++]^J[Y++],M=$[Q++]^J[Y++],W=$[Q++]^J[Y++],z=$[Q++]^J[Y++],O=$[Q++]^J[Y++],I=$[Q++]^J[Y++],P=$[Q++]^J[Y++],K=$[Q++]^J[Y++],U=$[Q++]^J[Y++],R=$[Q++]^J[Y++],V=$[Q++]^J[Y++],T=$[Q++]^J[Y++],L=$[Q++]^J[Y++],w=$[Q++]^J[Y++],j=$[Q++]^J[Y++],C=q,S=G,A=M,x=W,v=z,m=O,F=I,_=P,k=K,H=U,B=R,f=V,g=T,y=L,u=w,t=j;for(let M$=0;M$<8;M$+=2)v^=n(C+g|0,7),k^=n(v+C|0,9),g^=n(k+v|0,13),C^=n(g+k|0,18),H^=n(m+S|0,7),y^=n(H+m|0,9),S^=n(y+H|0,13),m^=n(S+y|0,18),u^=n(B+F|0,7),A^=n(u+B|0,9),F^=n(A+u|0,13),B^=n(F+A|0,18),x^=n(t+f|0,7),_^=n(x+t|0,9),f^=n(_+x|0,13),t^=n(f+_|0,18),S^=n(C+x|0,7),A^=n(S+C|0,9),x^=n(A+S|0,13),C^=n(x+A|0,18),F^=n(m+v|0,7),_^=n(F+m|0,9),v^=n(_+F|0,13),m^=n(v+_|0,18),f^=n(B+H|0,7),k^=n(f+B|0,9),H^=n(k+f|0,13),B^=n(H+k|0,18),g^=n(t+u|0,7),y^=n(g+t|0,9),u^=n(y+g|0,13),t^=n(u+y|0,18);X[Z++]=q+C|0,X[Z++]=G+S|0,X[Z++]=M+A|0,X[Z++]=W+x|0,X[Z++]=z+v|0,X[Z++]=O+m|0,X[Z++]=I+F|0,X[Z++]=P+_|0,X[Z++]=K+k|0,X[Z++]=U+H|0,X[Z++]=R+B|0,X[Z++]=V+f|0,X[Z++]=T+g|0,X[Z++]=L+y|0,X[Z++]=w+u|0,X[Z++]=j+t|0}function i0($,Q,J,Y,X){let Z=Y+0,q=Y+16*X;for(let G=0;G<16;G++)J[q+G]=$[Q+(2*X-1)*16+G];for(let G=0;G<X;G++,Z+=16,Q+=16){if(PY(J,q,$,Q,J,Z),G>0)q+=16;PY(J,Z,$,Q+=16,J,q)}}function wY($,Q,J){let Y=c8({dkLen:32,asyncTick:10,maxmem:1073742848},J),{N:X,r:Z,p:q,dkLen:G,asyncTick:M,maxmem:W,onProgress:z}=Y;if(I$(X),I$(Z),I$(q),I$(G),I$(M),I$(W),z!==void 0&&typeof z!=="function")throw Error("progressCb should be function");let O=128*Z,I=O/4;if(X<=1||(X&X-1)!==0||X>=2**(O/8)||X>4294967296)throw Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(q<0||q>137438953440/O)throw Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(G<0||G>137438953440)throw Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");let P=O*(X+q);if(P>W)throw Error(`Scrypt: parameters too large, ${P} (128 * r * (N + p)) > ${W} (maxmem)`);let K=q8(t$,$,Q,{c:1,dkLen:O*q}),U=n0(K),R=n0(new Uint8Array(O*X)),V=n0(new Uint8Array(O)),T=()=>{};if(z){let L=2*X*q,w=Math.max(Math.floor(L/1e4),1),j=0;T=()=>{if(j++,z&&(!(j%w)||j===L))z(j/L)}}return{N:X,r:Z,p:q,dkLen:G,blockSize32:I,V:R,B32:U,B:K,tmp:V,blockMixCb:T,asyncTick:M}}function BY($,Q,J,Y,X){let Z=q8(t$,$,J,{c:1,dkLen:Q});return J.fill(0),Y.fill(0),X.fill(0),Z}function FY($,Q,J){let{N:Y,r:X,p:Z,dkLen:q,blockSize32:G,V:M,B32:W,B:z,tmp:O,blockMixCb:I}=wY($,Q,J);for(let P=0;P<Z;P++){let K=G*P;for(let U=0;U<G;U++)M[U]=W[K+U];for(let U=0,R=0;U<Y-1;U++)i0(M,R,M,R+=G,X),I();i0(M,(Y-1)*G,W,K,X),I();for(let U=0;U<Y;U++){let R=W[K+G-16]%Y;for(let V=0;V<G;V++)O[V]=W[K+V]^M[R*G+V];i0(O,0,W,K,X),I()}}return BY($,q,z,M,O)}async function AY($,Q,J){let{N:Y,r:X,p:Z,dkLen:q,blockSize32:G,V:M,B32:W,B:z,tmp:O,blockMixCb:I,asyncTick:P}=wY($,Q,J);for(let K=0;K<Z;K++){let U=G*K;for(let V=0;V<G;V++)M[V]=W[U+V];let R=0;await m8(Y-1,P,()=>{i0(M,R,M,R+=G,X),I()}),i0(M,(Y-1)*G,W,U,X),I(),await m8(Y,P,()=>{let V=W[U+G-16]%Y;for(let T=0;T<G;T++)O[T]=W[U+T]^M[V*G+T];i0(O,0,W,U,X),I()})}return BY($,q,z,M,O)}var kY=!1,_Y=!1,fY=async function($,Q,J,Y,X,Z,q){return await AY($,Q,{N:J,r:Y,p:X,dkLen:Z,onProgress:q})},bY=function($,Q,J,Y,X,Z){return FY($,Q,{N:J,r:Y,p:X,dkLen:Z})},xY=fY,vY=bY;async function Q0($,Q,J,Y,X,Z,q){let G=E($,"passwd"),M=E(Q,"salt");return N(await xY(G,M,J,Y,X,Z,q))}Q0._=fY;Q0.lock=function(){_Y=!0};Q0.register=function($){if(_Y)throw Error("scrypt is locked");xY=$};Object.freeze(Q0);function J0($,Q,J,Y,X,Z){let q=E($,"passwd"),G=E(Q,"salt");return N(vY(q,G,J,Y,X,Z))}J0._=bY;J0.lock=function(){kY=!0};J0.register=function($){if(kY)throw Error("scryptSync is locked");vY=$};Object.freeze(J0);var gY=function($){return gQ("sha256").update($).digest()},yY=function($){return gQ("sha512").update($).digest()},hY=gY,mY=yY,cY=!1,uY=!1;function O$($){let Q=E($,"data");return N(hY(Q))}O$._=gY;O$.lock=function(){cY=!0};O$.register=function($){if(cY)throw Error("sha256 is locked");hY=$};Object.freeze(O$);function M8($){let Q=E($,"data");return N(mY(Q))}M8._=yY;M8.lock=function(){uY=!0};M8.register=function($){if(uY)throw Error("sha512 is locked");mY=$};Object.freeze(O$);var lQ={};iX(lQ,{validateObject:()=>H0,utf8ToBytes:()=>q9,numberToVarBytesBE:()=>X9,numberToHexUnpadded:()=>dY,numberToBytesLE:()=>r8,numberToBytesBE:()=>U0,hexToNumber:()=>uQ,hexToBytes:()=>k0,equalBytes:()=>Z9,ensureBytes:()=>P$,createHmacDrbg:()=>pQ,concatBytes:()=>r0,bytesToNumberLE:()=>i8,bytesToNumberBE:()=>Y0,bytesToHex:()=>A0,bitSet:()=>W9,bitMask:()=>W8,bitLen:()=>G9,bitGet:()=>M9});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var lY=BigInt(0),n8=BigInt(1),J9=BigInt(2),o8=($)=>$ instanceof Uint8Array,Y9=Array.from({length:256},($,Q)=>Q.toString(16).padStart(2,"0"));function A0($){if(!o8($))throw Error("Uint8Array expected");let Q="";for(let J=0;J<$.length;J++)Q+=Y9[$[J]];return Q}function dY($){let Q=$.toString(16);return Q.length&1?`0${Q}`:Q}function uQ($){if(typeof $!=="string")throw Error("hex string expected, got "+typeof $);return BigInt($===""?"0":`0x${$}`)}function k0($){if(typeof $!=="string")throw Error("hex string expected, got "+typeof $);let Q=$.length;if(Q%2)throw Error("padded hex string expected, got unpadded hex of length "+Q);let J=new Uint8Array(Q/2);for(let Y=0;Y<J.length;Y++){let X=Y*2,Z=$.slice(X,X+2),q=Number.parseInt(Z,16);if(Number.isNaN(q)||q<0)throw Error("Invalid byte sequence");J[Y]=q}return J}function Y0($){return uQ(A0($))}function i8($){if(!o8($))throw Error("Uint8Array expected");return uQ(A0(Uint8Array.from($).reverse()))}function U0($,Q){return k0($.toString(16).padStart(Q*2,"0"))}function r8($,Q){return U0($,Q).reverse()}function X9($){return k0(dY($))}function P$($,Q,J){let Y;if(typeof Q==="string")try{Y=k0(Q)}catch(Z){throw Error(`${$} must be valid hex string, got "${Q}". Cause: ${Z}`)}else if(o8(Q))Y=Uint8Array.from(Q);else throw Error(`${$} must be hex string or Uint8Array`);let X=Y.length;if(typeof J==="number"&&X!==J)throw Error(`${$} expected ${J} bytes, got ${X}`);return Y}function r0(...$){let Q=new Uint8Array($.reduce((Y,X)=>Y+X.length,0)),J=0;return $.forEach((Y)=>{if(!o8(Y))throw Error("Uint8Array expected");Q.set(Y,J),J+=Y.length}),Q}function Z9($,Q){if($.length!==Q.length)return!1;for(let J=0;J<$.length;J++)if($[J]!==Q[J])return!1;return!0}function q9($){if(typeof $!=="string")throw Error(`utf8ToBytes expected string, got ${typeof $}`);return new Uint8Array(new TextEncoder().encode($))}function G9($){let Q;for(Q=0;$>lY;$>>=n8,Q+=1);return Q}function M9($,Q){return $>>BigInt(Q)&n8}var W9=($,Q,J)=>{return $|(J?n8:lY)<<BigInt(Q)},W8=($)=>(J9<<BigInt($-1))-n8,cQ=($)=>new Uint8Array($),pY=($)=>Uint8Array.from($);function pQ($,Q,J){if(typeof $!=="number"||$<2)throw Error("hashLen must be a number");if(typeof Q!=="number"||Q<2)throw Error("qByteLen must be a number");if(typeof J!=="function")throw Error("hmacFn must be a function");let Y=cQ($),X=cQ($),Z=0,q=()=>{Y.fill(1),X.fill(0),Z=0},G=(...O)=>J(X,Y,...O),M=(O=cQ())=>{if(X=G(pY([0]),O),Y=G(),O.length===0)return;X=G(pY([1]),O),Y=G()},W=()=>{if(Z++>=1000)throw Error("drbg: tried 1000 values");let O=0,I=[];while(O<Q){Y=G();let P=Y.slice();I.push(P),O+=Y.length}return r0(...I)};return(O,I)=>{q(),M(O);let P=void 0;while(!(P=I(W())))M();return q(),P}}var z9={bigint:($)=>typeof $==="bigint",function:($)=>typeof $==="function",boolean:($)=>typeof $==="boolean",string:($)=>typeof $==="string",stringOrUint8Array:($)=>typeof $==="string"||$ instanceof Uint8Array,isSafeInteger:($)=>Number.isSafeInteger($),array:($)=>Array.isArray($),field:($,Q)=>Q.Fp.isValid($),hash:($)=>typeof $==="function"&&Number.isSafeInteger($.outputLen)};function H0($,Q,J={}){let Y=(X,Z,q)=>{let G=z9[Z];if(typeof G!=="function")throw Error(`Invalid validator "${Z}", expected function`);let M=$[X];if(q&&M===void 0)return;if(!G(M,$))throw Error(`Invalid param ${String(X)}=${M} (${typeof M}), expected ${Z}`)};for(let[X,Z]of Object.entries(Q))Y(X,Z,!1);for(let[X,Z]of Object.entries(J))Y(X,Z,!0);return $}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var G$=BigInt(0),Y$=BigInt(1),_0=BigInt(2),V9=BigInt(3),dQ=BigInt(4),nY=BigInt(5),oY=BigInt(8),O9=BigInt(9),D9=BigInt(16);function T$($,Q){let J=$%Q;return J>=G$?J:Q+J}function K9($,Q,J){if(J<=G$||Q<G$)throw Error("Expected power/modulo > 0");if(J===Y$)return G$;let Y=Y$;while(Q>G$){if(Q&Y$)Y=Y*$%J;$=$*$%J,Q>>=Y$}return Y}function w$($,Q,J){let Y=$;while(Q-- >G$)Y*=Y,Y%=J;return Y}function a8($,Q){if($===G$||Q<=G$)throw Error(`invert: expected positive integers, got n=${$} mod=${Q}`);let J=T$($,Q),Y=Q,X=G$,Z=Y$,q=Y$,G=G$;while(J!==G$){let W=Y/J,z=Y%J,O=X-q*W,I=Z-G*W;Y=J,J=z,X=q,Z=G,q=O,G=I}if(Y!==Y$)throw Error("invert: does not exist");return T$(X,Q)}function I9($){let Q=($-Y$)/_0,J,Y,X;for(J=$-Y$,Y=0;J%_0===G$;J/=_0,Y++);for(X=_0;X<$&&K9(X,Q,$)!==$-Y$;X++);if(Y===1){let q=($+Y$)/dQ;return function(M,W){let z=M.pow(W,q);if(!M.eql(M.sqr(z),W))throw Error("Cannot find square root");return z}}let Z=(J+Y$)/_0;return function(G,M){if(G.pow(M,Q)===G.neg(G.ONE))throw Error("Cannot find square root");let W=Y,z=G.pow(G.mul(G.ONE,X),J),O=G.pow(M,Z),I=G.pow(M,J);while(!G.eql(I,G.ONE)){if(G.eql(I,G.ZERO))return G.ZERO;let P=1;for(let U=G.sqr(I);P<W;P++){if(G.eql(U,G.ONE))break;U=G.sqr(U)}let K=G.pow(z,Y$<<BigInt(W-P-1));z=G.sqr(K),O=G.mul(O,K),I=G.mul(I,z),W=P}return O}}function T9($){if($%dQ===V9){let Q=($+Y$)/dQ;return function(Y,X){let Z=Y.pow(X,Q);if(!Y.eql(Y.sqr(Z),X))throw Error("Cannot find square root");return Z}}if($%oY===nY){let Q=($-nY)/oY;return function(Y,X){let Z=Y.mul(X,_0),q=Y.pow(Z,Q),G=Y.mul(X,q),M=Y.mul(Y.mul(G,_0),q),W=Y.mul(G,Y.sub(M,Y.ONE));if(!Y.eql(Y.sqr(W),X))throw Error("Cannot find square root");return W}}if($%D9===O9);return I9($)}var U9=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function nQ($){let Q={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},J=U9.reduce((Y,X)=>{return Y[X]="function",Y},Q);return H0($,J)}function H9($,Q,J){if(J<G$)throw Error("Expected power > 0");if(J===G$)return $.ONE;if(J===Y$)return Q;let Y=$.ONE,X=Q;while(J>G$){if(J&Y$)Y=$.mul(Y,X);X=$.sqr(X),J>>=Y$}return Y}function R9($,Q){let J=Array(Q.length),Y=Q.reduce((Z,q,G)=>{if($.is0(q))return Z;return J[G]=Z,$.mul(Z,q)},$.ONE),X=$.inv(Y);return Q.reduceRight((Z,q,G)=>{if($.is0(q))return Z;return J[G]=$.mul(Z,J[G]),$.mul(Z,q)},X),J}function oQ($,Q){let J=Q!==void 0?Q:$.toString(2).length,Y=Math.ceil(J/8);return{nBitLength:J,nByteLength:Y}}function iY($,Q,J=!1,Y={}){if($<=G$)throw Error(`Expected Field ORDER > 0, got ${$}`);let{nBitLength:X,nByteLength:Z}=oQ($,Q);if(Z>2048)throw Error("Field lengths over 2048 bytes are not supported");let q=T9($),G=Object.freeze({ORDER:$,BITS:X,BYTES:Z,MASK:W8(X),ZERO:G$,ONE:Y$,create:(M)=>T$(M,$),isValid:(M)=>{if(typeof M!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof M}`);return G$<=M&&M<$},is0:(M)=>M===G$,isOdd:(M)=>(M&Y$)===Y$,neg:(M)=>T$(-M,$),eql:(M,W)=>M===W,sqr:(M)=>T$(M*M,$),add:(M,W)=>T$(M+W,$),sub:(M,W)=>T$(M-W,$),mul:(M,W)=>T$(M*W,$),pow:(M,W)=>H9(G,M,W),div:(M,W)=>T$(M*a8(W,$),$),sqrN:(M)=>M*M,addN:(M,W)=>M+W,subN:(M,W)=>M-W,mulN:(M,W)=>M*W,inv:(M)=>a8(M,$),sqrt:Y.sqrt||((M)=>q(G,M)),invertBatch:(M)=>R9(G,M),cmov:(M,W,z)=>z?W:M,toBytes:(M)=>J?r8(M,Z):U0(M,Z),fromBytes:(M)=>{if(M.length!==Z)throw Error(`Fp.fromBytes: expected ${Z}, got ${M.length}`);return J?i8(M):Y0(M)}});return Object.freeze(G)}function rY($){if(typeof $!=="bigint")throw Error("field order must be bigint");let Q=$.toString(2).length;return Math.ceil(Q/8)}function iQ($){let Q=rY($);return Q+Math.ceil(Q/2)}function aY($,Q,J=!1){let Y=$.length,X=rY(Q),Z=iQ(Q);if(Y<16||Y<Z||Y>1024)throw Error(`expected ${Z}-1024 bytes of input, got ${Y}`);let q=J?Y0($):i8($),G=T$(q,Q-Y$)+Y$;return J?r8(G,X):U0(G,X)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var N9=BigInt(0),rQ=BigInt(1);function sY($,Q){let J=(X,Z)=>{let q=Z.negate();return X?q:Z},Y=(X)=>{let Z=Math.ceil(Q/X)+1,q=2**(X-1);return{windows:Z,windowSize:q}};return{constTimeNegate:J,unsafeLadder(X,Z){let q=$.ZERO,G=X;while(Z>N9){if(Z&rQ)q=q.add(G);G=G.double(),Z>>=rQ}return q},precomputeWindow(X,Z){let{windows:q,windowSize:G}=Y(Z),M=[],W=X,z=W;for(let O=0;O<q;O++){z=W,M.push(z);for(let I=1;I<G;I++)z=z.add(W),M.push(z);W=z.double()}return M},wNAF(X,Z,q){let{windows:G,windowSize:M}=Y(X),W=$.ZERO,z=$.BASE,O=BigInt(2**X-1),I=2**X,P=BigInt(X);for(let K=0;K<G;K++){let U=K*M,R=Number(q&O);if(q>>=P,R>M)R-=I,q+=rQ;let V=U,T=U+Math.abs(R)-1,L=K%2!==0,w=R<0;if(R===0)z=z.add(J(L,Z[V]));else W=W.add(J(w,Z[T]))}return{p:W,f:z}},wNAFCached(X,Z,q,G){let M=X._WINDOW_SIZE||1,W=Z.get(X);if(!W){if(W=this.precomputeWindow(X,M),M!==1)Z.set(X,G(W))}return this.wNAF(M,W,q)}}}function aQ($){return nQ($.Fp),H0($,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...oQ($.n,$.nBitLength),...$,...{p:$.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function C9($){let Q=aQ($);H0(Q,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:J,Fp:Y,a:X}=Q;if(J){if(!Y.eql(X,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof J!=="object"||typeof J.beta!=="bigint"||typeof J.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...Q})}var{bytesToNumberBE:E9,hexToBytes:j9}=lQ,f0={Err:class extends Error{constructor(Q=""){super(Q)}},_parseInt($){let{Err:Q}=f0;if($.length<2||$[0]!==2)throw new Q("Invalid signature integer tag");let J=$[1],Y=$.subarray(2,J+2);if(!J||Y.length!==J)throw new Q("Invalid signature integer: wrong length");if(Y[0]&128)throw new Q("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new Q("Invalid signature integer: unnecessary leading zero");return{d:E9(Y),l:$.subarray(J+2)}},toSig($){let{Err:Q}=f0,J=typeof $==="string"?j9($):$;if(!(J instanceof Uint8Array))throw Error("ui8a expected");let Y=J.length;if(Y<2||J[0]!=48)throw new Q("Invalid signature tag");if(J[1]!==Y-2)throw new Q("Invalid signature: incorrect length");let{d:X,l:Z}=f0._parseInt(J.subarray(2)),{d:q,l:G}=f0._parseInt(Z);if(G.length)throw new Q("Invalid signature: left bytes after parsing");return{r:X,s:q}},hexFromSig($){let Q=(W)=>Number.parseInt(W[0],16)&8?"00"+W:W,J=(W)=>{let z=W.toString(16);return z.length&1?`0${z}`:z},Y=Q(J($.s)),X=Q(J($.r)),Z=Y.length/2,q=X.length/2,G=J(Z),M=J(q);return`30${J(q+Z+4)}02${M}${X}02${G}${Y}`}},X0=BigInt(0),A$=BigInt(1),l5=BigInt(2),tY=BigInt(3),d5=BigInt(4);function S9($){let Q=C9($),{Fp:J}=Q,Y=Q.toBytes||((K,U,R)=>{let V=U.toAffine();return r0(Uint8Array.from([4]),J.toBytes(V.x),J.toBytes(V.y))}),X=Q.fromBytes||((K)=>{let U=K.subarray(1),R=J.fromBytes(U.subarray(0,J.BYTES)),V=J.fromBytes(U.subarray(J.BYTES,2*J.BYTES));return{x:R,y:V}});function Z(K){let{a:U,b:R}=Q,V=J.sqr(K),T=J.mul(V,K);return J.add(J.add(T,J.mul(K,U)),R)}if(!J.eql(J.sqr(Q.Gy),Z(Q.Gx)))throw Error("bad generator point: equation left != right");function q(K){return typeof K==="bigint"&&X0<K&&K<Q.n}function G(K){if(!q(K))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function M(K){let{allowedPrivateKeyLengths:U,nByteLength:R,wrapPrivateKey:V,n:T}=Q;if(U&&typeof K!=="bigint"){if(K instanceof Uint8Array)K=A0(K);if(typeof K!=="string"||!U.includes(K.length))throw Error("Invalid key");K=K.padStart(R*2,"0")}let L;try{L=typeof K==="bigint"?K:Y0(P$("private key",K,R))}catch(w){throw Error(`private key must be ${R} bytes, hex or bigint, not ${typeof K}`)}if(V)L=T$(L,T);return G(L),L}let W=new Map;function z(K){if(!(K instanceof O))throw Error("ProjectivePoint expected")}class O{constructor(K,U,R){if(this.px=K,this.py=U,this.pz=R,K==null||!J.isValid(K))throw Error("x required");if(U==null||!J.isValid(U))throw Error("y required");if(R==null||!J.isValid(R))throw Error("z required")}static fromAffine(K){let{x:U,y:R}=K||{};if(!K||!J.isValid(U)||!J.isValid(R))throw Error("invalid affine point");if(K instanceof O)throw Error("projective point not allowed");let V=(T)=>J.eql(T,J.ZERO);if(V(U)&&V(R))return O.ZERO;return new O(U,R,J.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(K){let U=J.invertBatch(K.map((R)=>R.pz));return K.map((R,V)=>R.toAffine(U[V])).map(O.fromAffine)}static fromHex(K){let U=O.fromAffine(X(P$("pointHex",K)));return U.assertValidity(),U}static fromPrivateKey(K){return O.BASE.multiply(M(K))}_setWindowSize(K){this._WINDOW_SIZE=K,W.delete(this)}assertValidity(){if(this.is0()){if(Q.allowInfinityPoint&&!J.is0(this.py))return;throw Error("bad point: ZERO")}let{x:K,y:U}=this.toAffine();if(!J.isValid(K)||!J.isValid(U))throw Error("bad point: x or y not FE");let R=J.sqr(U),V=Z(K);if(!J.eql(R,V))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:K}=this.toAffine();if(J.isOdd)return!J.isOdd(K);throw Error("Field doesn't support isOdd")}equals(K){z(K);let{px:U,py:R,pz:V}=this,{px:T,py:L,pz:w}=K,j=J.eql(J.mul(U,w),J.mul(T,V)),C=J.eql(J.mul(R,w),J.mul(L,V));return j&&C}negate(){return new O(this.px,J.neg(this.py),this.pz)}double(){let{a:K,b:U}=Q,R=J.mul(U,tY),{px:V,py:T,pz:L}=this,w=J.ZERO,j=J.ZERO,C=J.ZERO,S=J.mul(V,V),A=J.mul(T,T),x=J.mul(L,L),v=J.mul(V,T);return v=J.add(v,v),C=J.mul(V,L),C=J.add(C,C),w=J.mul(K,C),j=J.mul(R,x),j=J.add(w,j),w=J.sub(A,j),j=J.add(A,j),j=J.mul(w,j),w=J.mul(v,w),C=J.mul(R,C),x=J.mul(K,x),v=J.sub(S,x),v=J.mul(K,v),v=J.add(v,C),C=J.add(S,S),S=J.add(C,S),S=J.add(S,x),S=J.mul(S,v),j=J.add(j,S),x=J.mul(T,L),x=J.add(x,x),S=J.mul(x,v),w=J.sub(w,S),C=J.mul(x,A),C=J.add(C,C),C=J.add(C,C),new O(w,j,C)}add(K){z(K);let{px:U,py:R,pz:V}=this,{px:T,py:L,pz:w}=K,j=J.ZERO,C=J.ZERO,S=J.ZERO,A=Q.a,x=J.mul(Q.b,tY),v=J.mul(U,T),m=J.mul(R,L),F=J.mul(V,w),_=J.add(U,R),k=J.add(T,L);_=J.mul(_,k),k=J.add(v,m),_=J.sub(_,k),k=J.add(U,V);let H=J.add(T,w);return k=J.mul(k,H),H=J.add(v,F),k=J.sub(k,H),H=J.add(R,V),j=J.add(L,w),H=J.mul(H,j),j=J.add(m,F),H=J.sub(H,j),S=J.mul(A,k),j=J.mul(x,F),S=J.add(j,S),j=J.sub(m,S),S=J.add(m,S),C=J.mul(j,S),m=J.add(v,v),m=J.add(m,v),F=J.mul(A,F),k=J.mul(x,k),m=J.add(m,F),F=J.sub(v,F),F=J.mul(A,F),k=J.add(k,F),v=J.mul(m,k),C=J.add(C,v),v=J.mul(H,k),j=J.mul(_,j),j=J.sub(j,v),v=J.mul(_,m),S=J.mul(H,S),S=J.add(S,v),new O(j,C,S)}subtract(K){return this.add(K.negate())}is0(){return this.equals(O.ZERO)}wNAF(K){return P.wNAFCached(this,W,K,(U)=>{let R=J.invertBatch(U.map((V)=>V.pz));return U.map((V,T)=>V.toAffine(R[T])).map(O.fromAffine)})}multiplyUnsafe(K){let U=O.ZERO;if(K===X0)return U;if(G(K),K===A$)return this;let{endo:R}=Q;if(!R)return P.unsafeLadder(this,K);let{k1neg:V,k1:T,k2neg:L,k2:w}=R.splitScalar(K),j=U,C=U,S=this;while(T>X0||w>X0){if(T&A$)j=j.add(S);if(w&A$)C=C.add(S);S=S.double(),T>>=A$,w>>=A$}if(V)j=j.negate();if(L)C=C.negate();return C=new O(J.mul(C.px,R.beta),C.py,C.pz),j.add(C)}multiply(K){G(K);let U=K,R,V,{endo:T}=Q;if(T){let{k1neg:L,k1:w,k2neg:j,k2:C}=T.splitScalar(U),{p:S,f:A}=this.wNAF(w),{p:x,f:v}=this.wNAF(C);S=P.constTimeNegate(L,S),x=P.constTimeNegate(j,x),x=new O(J.mul(x.px,T.beta),x.py,x.pz),R=S.add(x),V=A.add(v)}else{let{p:L,f:w}=this.wNAF(U);R=L,V=w}return O.normalizeZ([R,V])[0]}multiplyAndAddUnsafe(K,U,R){let V=O.BASE,T=(w,j)=>j===X0||j===A$||!w.equals(V)?w.multiplyUnsafe(j):w.multiply(j),L=T(this,U).add(T(K,R));return L.is0()?void 0:L}toAffine(K){let{px:U,py:R,pz:V}=this,T=this.is0();if(K==null)K=T?J.ONE:J.inv(V);let L=J.mul(U,K),w=J.mul(R,K),j=J.mul(V,K);if(T)return{x:J.ZERO,y:J.ZERO};if(!J.eql(j,J.ONE))throw Error("invZ was invalid");return{x:L,y:w}}isTorsionFree(){let{h:K,isTorsionFree:U}=Q;if(K===A$)return!0;if(U)return U(O,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:K,clearCofactor:U}=Q;if(K===A$)return this;if(U)return U(O,this);return this.multiplyUnsafe(Q.h)}toRawBytes(K=!0){return this.assertValidity(),Y(O,this,K)}toHex(K=!0){return A0(this.toRawBytes(K))}}O.BASE=new O(Q.Gx,Q.Gy,J.ONE),O.ZERO=new O(J.ZERO,J.ONE,J.ZERO);let I=Q.nBitLength,P=sY(O,Q.endo?Math.ceil(I/2):I);return{CURVE:Q,ProjectivePoint:O,normPrivateKeyToScalar:M,weierstrassEquation:Z,isWithinCurveOrder:q}}function P9($){let Q=aQ($);return H0(Q,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...Q})}function eY($){let Q=P9($),{Fp:J,n:Y}=Q,X=J.BYTES+1,Z=2*J.BYTES+1;function q(H){return X0<H&&H<J.ORDER}function G(H){return T$(H,Y)}function M(H){return a8(H,Y)}let{ProjectivePoint:W,normPrivateKeyToScalar:z,weierstrassEquation:O,isWithinCurveOrder:I}=S9({...Q,toBytes(H,B,f){let g=B.toAffine(),y=J.toBytes(g.x),u=r0;if(f)return u(Uint8Array.from([B.hasEvenY()?2:3]),y);else return u(Uint8Array.from([4]),y,J.toBytes(g.y))},fromBytes(H){let B=H.length,f=H[0],g=H.subarray(1);if(B===X&&(f===2||f===3)){let y=Y0(g);if(!q(y))throw Error("Point is not on curve");let u=O(y),t=J.sqrt(u),M$=(t&A$)===A$;if((f&1)===1!==M$)t=J.neg(t);return{x:y,y:t}}else if(B===Z&&f===4){let y=J.fromBytes(g.subarray(0,J.BYTES)),u=J.fromBytes(g.subarray(J.BYTES,2*J.BYTES));return{x:y,y:u}}else throw Error(`Point of length ${B} was invalid. Expected ${X} compressed bytes or ${Z} uncompressed bytes`)}}),P=(H)=>A0(U0(H,Q.nByteLength));function K(H){let B=Y>>A$;return H>B}function U(H){return K(H)?G(-H):H}let R=(H,B,f)=>Y0(H.slice(B,f));class V{constructor(H,B,f){this.r=H,this.s=B,this.recovery=f,this.assertValidity()}static fromCompact(H){let B=Q.nByteLength;return H=P$("compactSignature",H,B*2),new V(R(H,0,B),R(H,B,2*B))}static fromDER(H){let{r:B,s:f}=f0.toSig(P$("DER",H));return new V(B,f)}assertValidity(){if(!I(this.r))throw Error("r must be 0 < r < CURVE.n");if(!I(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(H){return new V(this.r,this.s,H)}recoverPublicKey(H){let{r:B,s:f,recovery:g}=this,y=S(P$("msgHash",H));if(g==null||![0,1,2,3].includes(g))throw Error("recovery id invalid");let u=g===2||g===3?B+Q.n:B;if(u>=J.ORDER)throw Error("recovery id 2 or 3 invalid");let t=(g&1)===0?"02":"03",M$=W.fromHex(t+P(u)),B$=M(u),E$=G(-y*B$),c$=G(f*B$),j0=W.BASE.multiplyAndAddUnsafe(M$,E$,c$);if(!j0)throw Error("point at infinify");return j0.assertValidity(),j0}hasHighS(){return K(this.s)}normalizeS(){return this.hasHighS()?new V(this.r,G(-this.s),this.recovery):this}toDERRawBytes(){return k0(this.toDERHex())}toDERHex(){return f0.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return k0(this.toCompactHex())}toCompactHex(){return P(this.r)+P(this.s)}}let T={isValidPrivateKey(H){try{return z(H),!0}catch(B){return!1}},normPrivateKeyToScalar:z,randomPrivateKey:()=>{let H=iQ(Q.n);return aY(Q.randomBytes(H),Q.n)},precompute(H=8,B=W.BASE){return B._setWindowSize(H),B.multiply(BigInt(3)),B}};function L(H,B=!0){return W.fromPrivateKey(H).toRawBytes(B)}function w(H){let B=H instanceof Uint8Array,f=typeof H==="string",g=(B||f)&&H.length;if(B)return g===X||g===Z;if(f)return g===2*X||g===2*Z;if(H instanceof W)return!0;return!1}function j(H,B,f=!0){if(w(H))throw Error("first arg must be private key");if(!w(B))throw Error("second arg must be public key");return W.fromHex(B).multiply(z(H)).toRawBytes(f)}let C=Q.bits2int||function(H){let B=Y0(H),f=H.length*8-Q.nBitLength;return f>0?B>>BigInt(f):B},S=Q.bits2int_modN||function(H){return G(C(H))},A=W8(Q.nBitLength);function x(H){if(typeof H!=="bigint")throw Error("bigint expected");if(!(X0<=H&&H<A))throw Error(`bigint expected < 2^${Q.nBitLength}`);return U0(H,Q.nByteLength)}function v(H,B,f=m){if(["recovered","canonical"].some((S0)=>(S0 in f)))throw Error("sign() legacy options not supported");let{hash:g,randomBytes:y}=Q,{lowS:u,prehash:t,extraEntropy:M$}=f;if(u==null)u=!0;if(H=P$("msgHash",H),t)H=P$("prehashed msgHash",g(H));let B$=S(H),E$=z(B),c$=[x(E$),x(B$)];if(M$!=null){let S0=M$===!0?y(J.BYTES):M$;c$.push(P$("extraEntropy",S0))}let j0=r0(...c$),S8=B$;function wQ(S0){let h0=C(S0);if(!I(h0))return;let FJ=M(h0),u$=W.BASE.multiply(h0).toAffine(),m0=G(u$.x);if(m0===X0)return;let P8=G(FJ*G(S8+m0*E$));if(P8===X0)return;let AJ=(u$.x===m0?0:2)|Number(u$.y&A$),kJ=P8;if(u&&K(P8))kJ=U(P8),AJ^=1;return new V(m0,kJ,AJ)}return{seed:j0,k2sig:wQ}}let m={lowS:Q.lowS,prehash:!1},F={lowS:Q.lowS,prehash:!1};function _(H,B,f=m){let{seed:g,k2sig:y}=v(H,B,f),u=Q;return pQ(u.hash.outputLen,u.nByteLength,u.hmac)(g,y)}W.BASE._setWindowSize(8);function k(H,B,f,g=F){let y=H;if(B=P$("msgHash",B),f=P$("publicKey",f),"strict"in g)throw Error("options.strict was renamed to lowS");let{lowS:u,prehash:t}=g,M$=void 0,B$;try{if(typeof y==="string"||y instanceof Uint8Array)try{M$=V.fromDER(y)}catch(u$){if(!(u$ instanceof f0.Err))throw u$;M$=V.fromCompact(y)}else if(typeof y==="object"&&typeof y.r==="bigint"&&typeof y.s==="bigint"){let{r:u$,s:m0}=y;M$=new V(u$,m0)}else throw Error("PARSE");B$=W.fromHex(f)}catch(u$){if(u$.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(u&&M$.hasHighS())return!1;if(t)B=Q.hash(B);let{r:E$,s:c$}=M$,j0=S(B),S8=M(c$),wQ=G(j0*S8),S0=G(E$*S8),h0=W.BASE.multiplyAndAddUnsafe(B$,wQ,S0)?.toAffine();if(!h0)return!1;return G(h0.x)===E$}return{CURVE:Q,getPublicKey:L,getSharedSecret:j,sign:_,verify:k,ProjectivePoint:W,Signature:V,utils:T}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function w9($){return{hash:$,hmac:(Q,...J)=>B0($,Q,lJ(...J)),randomBytes:dJ}}function $X($,Q){let J=(Y)=>eY({...$,...w9(Y)});return Object.freeze({...J(Q),create:J})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var YX=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),QX=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),B9=BigInt(1),sQ=BigInt(2),JX=($,Q)=>($+Q/sQ)/Q;function F9($){let Q=YX,J=BigInt(3),Y=BigInt(6),X=BigInt(11),Z=BigInt(22),q=BigInt(23),G=BigInt(44),M=BigInt(88),W=$*$*$%Q,z=W*W*$%Q,O=w$(z,J,Q)*z%Q,I=w$(O,J,Q)*z%Q,P=w$(I,sQ,Q)*W%Q,K=w$(P,X,Q)*P%Q,U=w$(K,Z,Q)*K%Q,R=w$(U,G,Q)*U%Q,V=w$(R,M,Q)*R%Q,T=w$(V,G,Q)*U%Q,L=w$(T,J,Q)*z%Q,w=w$(L,q,Q)*K%Q,j=w$(w,Y,Q)*W%Q,C=w$(j,sQ,Q);if(!tQ.eql(tQ.sqr(C),$))throw Error("Cannot find square root");return C}var tQ=iY(YX,void 0,void 0,{sqrt:F9}),Z0=$X({a:BigInt(0),b:BigInt(7),Fp:tQ,n:QX,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:($)=>{let Q=QX,J=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-B9*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),X=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),Z=J,q=BigInt("0x100000000000000000000000000000000"),G=JX(Z*$,Q),M=JX(-Y*$,Q),W=T$($-G*J-M*X,Q),z=T$(-G*Y-M*Z,Q),O=W>q,I=z>q;if(O)W=Q-W;if(I)z=Q-z;if(W>q||z>q)throw Error("splitScalar: Endomorphism failed, k="+$);return{k1neg:O,k1:W,k2neg:I,k2:z}}}},t$),$M=BigInt(0);var QM=Z0.ProjectivePoint;var eQ="0x0000000000000000000000000000000000000000";var s8="0x0000000000000000000000000000000000000000000000000000000000000000";var $J=`\x19Ethereum Signed Message:
|
|
3
|
+
`;var XX=BigInt(0),ZX=BigInt(1),qX=BigInt(2),GX=BigInt(27),MX=BigInt(28),t8=BigInt(35),a0={};function WX($){return j$(s($),32)}class $${#$;#Q;#J;#Y;get r(){return this.#$}set r($){D(a$($)===32,"invalid r","value",$),this.#$=N($)}get s(){return D(parseInt(this.#Q.substring(0,3))<8,"non-canonical s; use ._s","s",this.#Q),this.#Q}set s($){D(a$($)===32,"invalid s","value",$),this.#Q=N($)}get _s(){return this.#Q}isValid(){return parseInt(this.#Q.substring(0,3))<8}get v(){return this.#J}set v($){let Q=W$($,"value");D(Q===27||Q===28,"invalid v","v",$),this.#J=Q}get networkV(){return this.#Y}get legacyChainId(){let $=this.networkV;if($==null)return null;return $$.getChainId($)}get yParity(){return this.v===27?0:1}get yParityAndS(){let $=E(this.s);if(this.yParity)$[0]|=128;return N($)}get compactSerialized(){return d([this.r,this.yParityAndS])}get serialized(){return d([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor($,Q,J,Y){r$($,a0,"Signature"),this.#$=Q,this.#Q=J,this.#J=Y,this.#Y=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this._s}"${this.isValid()?"":', valid: "false"'}, yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){let $=new $$(a0,this.r,this._s,this.v);if(this.networkV)$.#Y=this.networkV;return $}toJSON(){let $=this.networkV;return{_type:"signature",networkV:$!=null?$.toString():null,r:this.r,s:this._s,v:this.v}}static getChainId($){let Q=p($,"v");if(Q==GX||Q==MX)return XX;return D(Q>=t8,"invalid EIP-155 v","v",$),(Q-t8)/qX}static getChainIdV($,Q){return p($)*qX+BigInt(35+Q-27)}static getNormalizedV($){let Q=p($);if(Q===XX||Q===GX)return 27;if(Q===ZX||Q===MX)return 28;return D(Q>=t8,"invalid v","v",$),Q&ZX?27:28}static from($){function Q(M,W){D(M,W,"signature",$)}if($==null)return new $$(a0,s8,s8,27);if(typeof $==="string"){let M=E($,"signature");if(M.length===64){let W=N(M.slice(0,32)),z=M.slice(32,64),O=z[0]&128?28:27;return z[0]&=127,new $$(a0,W,N(z),O)}if(M.length===65){let W=N(M.slice(0,32)),z=N(M.slice(32,64)),O=$$.getNormalizedV(M[64]);return new $$(a0,W,z,O)}Q(!1,"invalid raw signature length")}if($ instanceof $$)return $.clone();let J=$.r;Q(J!=null,"missing r");let Y=WX(J),X=function(M,W){if(M!=null)return WX(M);if(W!=null){Q(K$(W,32),"invalid yParityAndS");let z=E(W);return z[0]&=127,N(z)}Q(!1,"missing s")}($.s,$.yParityAndS),{networkV:Z,v:q}=function(M,W,z){if(M!=null){let O=p(M);return{networkV:O>=t8?O:void 0,v:$$.getNormalizedV(O)}}if(W!=null)return Q(K$(W,32),"invalid yParityAndS"),{v:E(W)[0]&128?28:27};if(z!=null){switch(W$(z,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}Q(!1,"invalid yParity")}Q(!1,"missing v")}($.v,$.yParityAndS,$.yParity),G=new $$(a0,Y,X,q);if(Z)G.#Y=Z;return Q($.yParity==null||W$($.yParity,"sig.yParity")===G.yParity,"yParity mismatch"),Q($.yParityAndS==null||$.yParityAndS===G.yParityAndS,"yParityAndS mismatch"),G}}class e{#$;constructor($){D(a$($)===32,"invalid private key","privateKey","[REDACTED]"),this.#$=N($)}get privateKey(){return this.#$}get publicKey(){return e.computePublicKey(this.#$)}get compressedPublicKey(){return e.computePublicKey(this.#$,!0)}sign($){D(a$($)===32,"invalid digest length","digest",$);let Q=Z0.sign(g$($),g$(this.#$),{lowS:!0});return $$.from({r:y$(Q.r,32),s:y$(Q.s,32),v:Q.recovery?28:27})}computeSharedSecret($){let Q=e.computePublicKey($);return N(Z0.getSharedSecret(g$(this.#$),E(Q),!1))}static computePublicKey($,Q){let J=E($,"key");if(J.length===32){let X=Z0.getPublicKey(J,!!Q);return N(X)}if(J.length===64){let X=new Uint8Array(65);X[0]=4,X.set(J,1),J=X}let Y=Z0.ProjectivePoint.fromHex(J);return N(Y.toRawBytes(Q))}static recoverPublicKey($,Q){D(a$($)===32,"invalid digest length","digest",$);let J=$$.from(Q),Y=Z0.Signature.fromCompact(g$(d([J.r,J.s])));Y=Y.addRecoveryBit(J.yParity);let X=Y.recoverPublicKey(g$($));return D(X!=null,"invalid signature for digest","signature",Q),"0x"+X.toHex(!1)}static addPoints($,Q,J){let Y=Z0.ProjectivePoint.fromHex(e.computePublicKey($).substring(2)),X=Z0.ProjectivePoint.fromHex(e.computePublicKey(Q).substring(2));return"0x"+Y.add(X).toHex(!!J)}}var A9=BigInt(0),k9=BigInt(36);function zX($){$=$.toLowerCase();let Q=$.substring(2).split(""),J=new Uint8Array(40);for(let X=0;X<40;X++)J[X]=Q[X].charCodeAt(0);let Y=E(o(J));for(let X=0;X<40;X+=2){if(Y[X>>1]>>4>=8)Q[X]=Q[X].toUpperCase();if((Y[X>>1]&15)>=8)Q[X+1]=Q[X+1].toUpperCase()}return"0x"+Q.join("")}var QJ={};for(let $=0;$<10;$++)QJ[String($)]=String($);for(let $=0;$<26;$++)QJ[String.fromCharCode(65+$)]=String(10+$);var VX=15;function _9($){$=$.toUpperCase(),$=$.substring(4)+$.substring(0,2)+"00";let Q=$.split("").map((Y)=>{return QJ[Y]}).join("");while(Q.length>=VX){let Y=Q.substring(0,VX);Q=parseInt(Y,10)%97+Q.substring(Y.length)}let J=String(98-parseInt(Q,10)%97);while(J.length<2)J="0"+J;return J}var f9=function(){let $={};for(let Q=0;Q<36;Q++){let J="0123456789abcdefghijklmnopqrstuvwxyz"[Q];$[J]=BigInt(Q)}return $}();function b9($){$=$.toLowerCase();let Q=A9;for(let J=0;J<$.length;J++)Q=Q*k9+f9[$[J]];return Q}function c($){if(D(typeof $==="string","invalid address","address",$),$.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!$.startsWith("0x"))$="0x"+$;let Q=zX($);return D(!$.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||Q===$,"bad address checksum","address",$),Q}if($.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){D($.substring(2,4)===_9($),"bad icap checksum","address",$);let Q=b9($.substring(4)).toString(16);while(Q.length<40)Q="0"+Q;return zX("0x"+Q)}D(!1,"invalid address","address",$)}function YJ($){return $&&typeof $.getAddress==="function"}async function JJ($,Q){let J=await Q;if(J==null||J==="0x0000000000000000000000000000000000000000")b(typeof $!=="string","unconfigured name","UNCONFIGURED_NAME",{value:$}),D(!1,"invalid AddressLike value; did not resolve to a value address","target",$);return c(J)}function q0($,Q){if(typeof $==="string"){if($.match(/^0x[0-9a-f]{40}$/i))return c($);return b(Q!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),JJ($,Q.resolveName($))}else if(YJ($))return JJ($,$.getAddress());else if($&&typeof $.then==="function")return JJ($,$);D(!1,"unsupported addressable value","target",$)}function XJ($,Q){return{address:c($),storageKeys:Q.map((J,Y)=>{return D(K$(J,32),"invalid slot",`storageKeys[${Y}]`,J),J.toLowerCase()})}}function R0($){if(Array.isArray($))return $.map((J,Y)=>{if(Array.isArray(J))return D(J.length===2,"invalid slot set",`value[${Y}]`,J),XJ(J[0],J[1]);return D(J!=null&&typeof J==="object","invalid address-slot set","value",$),XJ(J.address,J.storageKeys)});D($!=null&&typeof $==="object","invalid access list","value",$);let Q=Object.keys($).map((J)=>{let Y=$[J].reduce((X,Z)=>{return X[Z]=!0,X},{});return XJ(J,Object.keys(Y).sort())});return Q.sort((J,Y)=>J.address.localeCompare(Y.address)),Q}function ZJ($){return{address:c($.address),nonce:p($.nonce!=null?$.nonce:0),chainId:p($.chainId!=null?$.chainId:0),signature:$$.from($.signature)}}function k$($){let Q;if(typeof $==="string")Q=e.computePublicKey($,!1);else Q=$.publicKey;return c(o("0x"+Q.substring(4)).substring(26))}function s0($,Q){return k$(e.recoverPublicKey($,Q))}var z$=BigInt(0),g9=BigInt(2),y9=BigInt(27),h9=BigInt(28),m9=BigInt(35),c9=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),qJ=131072;function u9($){return{blobToKzgCommitment:(Y)=>{if("computeBlobProof"in $){if("blobToKzgCommitment"in $&&typeof $.blobToKzgCommitment==="function")return E($.blobToKzgCommitment(N(Y)))}else if("blobToKzgCommitment"in $&&typeof $.blobToKzgCommitment==="function")return E($.blobToKzgCommitment(Y));if("blobToKZGCommitment"in $&&typeof $.blobToKZGCommitment==="function")return E($.blobToKZGCommitment(N(Y)));D(!1,"unsupported KZG library","kzg",$)},computeBlobKzgProof:(Y,X)=>{if("computeBlobProof"in $&&typeof $.computeBlobProof==="function")return E($.computeBlobProof(N(Y),N(X)));if("computeBlobKzgProof"in $&&typeof $.computeBlobKzgProof==="function")return $.computeBlobKzgProof(Y,X);if("computeBlobKZGProof"in $&&typeof $.computeBlobKZGProof==="function")return E($.computeBlobKZGProof(N(Y),N(X)));D(!1,"unsupported KZG library","kzg",$)}}}function OX($,Q){let J=$.toString(16);while(J.length<2)J="0"+J;return J+=O$(Q).substring(4),"0x"+J}function t0($){if($==="0x")return null;return c($)}function e8($,Q){try{return R0($)}catch(J){D(!1,J.message,Q,$)}}function p9($,Q){try{if(!Array.isArray($))throw Error("authorizationList: invalid array");let J=[];for(let Y=0;Y<$.length;Y++){let X=$[Y];if(!Array.isArray(X))throw Error(`authorization[${Y}]: invalid array`);if(X.length!==6)throw Error(`authorization[${Y}]: wrong length`);if(!X[1])throw Error(`authorization[${Y}]: null address`);J.push({address:t0(X[1]),nonce:i(X[2],"nonce"),chainId:i(X[0],"chainId"),signature:$$.from({yParity:b0(X[3],"yParity"),r:j$(X[4],32),s:j$(X[5],32)})})}return J}catch(J){D(!1,J.message,Q,$)}}function b0($,Q){if($==="0x")return 0;return W$($,Q)}function i($,Q){if($==="0x")return z$;let J=p($,Q);return D(J<=c9,"value exceeds uint size",Q,J),J}function l($,Q){let J=p($,"value"),Y=s(J);return D(Y.length<=32,"value too large",`tx.${Q}`,J),Y}function $Q($){return R0($).map((Q)=>[Q.address,Q.storageKeys])}function l9($){return $.map((Q)=>{return[l(Q.chainId,"chainId"),Q.address,l(Q.nonce,"nonce"),l(Q.signature.yParity,"yParity"),s(Q.signature.r),s(Q.signature.s)]})}function d9($,Q){D(Array.isArray($),`invalid ${Q}`,"value",$);for(let J=0;J<$.length;J++)D(K$($[J],32),"invalid ${ param } hash",`value[${J}]`,$[J]);return $}function n9($){let Q=V0($);D(Array.isArray(Q)&&(Q.length===9||Q.length===6),"invalid field count for legacy transaction","data",$);let J={type:0,nonce:b0(Q[0],"nonce"),gasPrice:i(Q[1],"gasPrice"),gasLimit:i(Q[2],"gasLimit"),to:t0(Q[3]),value:i(Q[4],"value"),data:N(Q[5]),chainId:z$};if(Q.length===6)return J;let Y=i(Q[6],"v"),X=i(Q[7],"r"),Z=i(Q[8],"s");if(X===z$&&Z===z$)J.chainId=Y;else{let q=(Y-m9)/g9;if(q<z$)q=z$;J.chainId=q,D(q!==z$||(Y===y9||Y===h9),"non-canonical legacy v","v",Q[6]),J.signature=$$.from({r:j$(Q[7],32),s:j$(Q[8],32),v:Y})}return J}function o9($,Q){let J=[l($.nonce,"nonce"),l($.gasPrice||0,"gasPrice"),l($.gasLimit,"gasLimit"),$.to||"0x",l($.value,"value"),$.data],Y=z$;if($.chainId!=z$)Y=p($.chainId,"tx.chainId"),D(!Q||Q.networkV==null||Q.legacyChainId===Y,"tx.chainId/sig.v mismatch","sig",Q);else if($.signature){let Z=$.signature.legacyChainId;if(Z!=null)Y=Z}if(!Q){if(Y!==z$)J.push(s(Y)),J.push("0x"),J.push("0x");return F$(J)}let X=BigInt(27+Q.yParity);if(Y!==z$)X=$$.getChainIdV(Y,Q.v);else if(BigInt(Q.v)!==X)D(!1,"tx.chainId/sig.v mismatch","sig",Q);return J.push(s(X)),J.push(s(Q.r)),J.push(s(Q.s)),F$(J)}function QQ($,Q){let J;try{if(J=b0(Q[0],"yParity"),J!==0&&J!==1)throw Error("bad yParity")}catch(q){D(!1,"invalid yParity","yParity",Q[0])}let Y=j$(Q[1],32),X=j$(Q[2],32),Z=$$.from({r:Y,s:X,yParity:J});$.signature=Z}function i9($){let Q=V0(E($).slice(1));D(Array.isArray(Q)&&(Q.length===9||Q.length===12),"invalid field count for transaction type: 2","data",N($));let J={type:2,chainId:i(Q[0],"chainId"),nonce:b0(Q[1],"nonce"),maxPriorityFeePerGas:i(Q[2],"maxPriorityFeePerGas"),maxFeePerGas:i(Q[3],"maxFeePerGas"),gasPrice:null,gasLimit:i(Q[4],"gasLimit"),to:t0(Q[5]),value:i(Q[6],"value"),data:N(Q[7]),accessList:e8(Q[8],"accessList")};if(Q.length===9)return J;return QQ(J,Q.slice(9)),J}function r9($,Q){let J=[l($.chainId,"chainId"),l($.nonce,"nonce"),l($.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),l($.maxFeePerGas||0,"maxFeePerGas"),l($.gasLimit,"gasLimit"),$.to||"0x",l($.value,"value"),$.data,$Q($.accessList||[])];if(Q)J.push(l(Q.yParity,"yParity")),J.push(s(Q.r)),J.push(s(Q.s));return d(["0x02",F$(J)])}function a9($){let Q=V0(E($).slice(1));D(Array.isArray(Q)&&(Q.length===8||Q.length===11),"invalid field count for transaction type: 1","data",N($));let J={type:1,chainId:i(Q[0],"chainId"),nonce:b0(Q[1],"nonce"),gasPrice:i(Q[2],"gasPrice"),gasLimit:i(Q[3],"gasLimit"),to:t0(Q[4]),value:i(Q[5],"value"),data:N(Q[6]),accessList:e8(Q[7],"accessList")};if(Q.length===8)return J;return QQ(J,Q.slice(8)),J}function s9($,Q){let J=[l($.chainId,"chainId"),l($.nonce,"nonce"),l($.gasPrice||0,"gasPrice"),l($.gasLimit,"gasLimit"),$.to||"0x",l($.value,"value"),$.data,$Q($.accessList||[])];if(Q)J.push(l(Q.yParity,"recoveryParam")),J.push(s(Q.r)),J.push(s(Q.s));return d(["0x01",F$(J)])}function t9($){let Q=V0(E($).slice(1)),J="3",Y=null;if(Q.length===4&&Array.isArray(Q[0])){J="3 (network format)";let Z=Q[1],q=Q[2],G=Q[3];D(Array.isArray(Z),"invalid network format: blobs not an array","fields[1]",Z),D(Array.isArray(q),"invalid network format: commitments not an array","fields[2]",q),D(Array.isArray(G),"invalid network format: proofs not an array","fields[3]",G),D(Z.length===q.length,"invalid network format: blobs/commitments length mismatch","fields",Q),D(Z.length===G.length,"invalid network format: blobs/proofs length mismatch","fields",Q),Y=[];for(let M=0;M<Q[1].length;M++)Y.push({data:Z[M],commitment:q[M],proof:G[M]});Q=Q[0]}D(Array.isArray(Q)&&(Q.length===11||Q.length===14),`invalid field count for transaction type: ${J}`,"data",N($));let X={type:3,chainId:i(Q[0],"chainId"),nonce:b0(Q[1],"nonce"),maxPriorityFeePerGas:i(Q[2],"maxPriorityFeePerGas"),maxFeePerGas:i(Q[3],"maxFeePerGas"),gasPrice:null,gasLimit:i(Q[4],"gasLimit"),to:t0(Q[5]),value:i(Q[6],"value"),data:N(Q[7]),accessList:e8(Q[8],"accessList"),maxFeePerBlobGas:i(Q[9],"maxFeePerBlobGas"),blobVersionedHashes:Q[10]};if(Y)X.blobs=Y;D(X.to!=null,`invalid address for transaction type: ${J}`,"data",$),D(Array.isArray(X.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",$);for(let Z=0;Z<X.blobVersionedHashes.length;Z++)D(K$(X.blobVersionedHashes[Z],32),`invalid blobVersionedHash at index ${Z}: must be length 32`,"data",$);if(Q.length===11)return X;return QQ(X,Q.slice(11)),X}function e9($,Q,J){let Y=[l($.chainId,"chainId"),l($.nonce,"nonce"),l($.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),l($.maxFeePerGas||0,"maxFeePerGas"),l($.gasLimit,"gasLimit"),$.to||eQ,l($.value,"value"),$.data,$Q($.accessList||[]),l($.maxFeePerBlobGas||0,"maxFeePerBlobGas"),d9($.blobVersionedHashes||[],"blobVersionedHashes")];if(Q){if(Y.push(l(Q.yParity,"yParity")),Y.push(s(Q.r)),Y.push(s(Q.s)),J)return d(["0x03",F$([Y,J.map((X)=>X.data),J.map((X)=>X.commitment),J.map((X)=>X.proof)])])}return d(["0x03",F$(Y)])}function $q($){let Q=V0(E($).slice(1));D(Array.isArray(Q)&&(Q.length===10||Q.length===13),"invalid field count for transaction type: 4","data",N($));let J={type:4,chainId:i(Q[0],"chainId"),nonce:b0(Q[1],"nonce"),maxPriorityFeePerGas:i(Q[2],"maxPriorityFeePerGas"),maxFeePerGas:i(Q[3],"maxFeePerGas"),gasPrice:null,gasLimit:i(Q[4],"gasLimit"),to:t0(Q[5]),value:i(Q[6],"value"),data:N(Q[7]),accessList:e8(Q[8],"accessList"),authorizationList:p9(Q[9],"authorizationList")};if(Q.length===10)return J;return QQ(J,Q.slice(10)),J}function Qq($,Q){let J=[l($.chainId,"chainId"),l($.nonce,"nonce"),l($.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),l($.maxFeePerGas||0,"maxFeePerGas"),l($.gasLimit,"gasLimit"),$.to||"0x",l($.value,"value"),$.data,$Q($.accessList||[]),l9($.authorizationList||[])];if(Q)J.push(l(Q.yParity,"yParity")),J.push(s(Q.r)),J.push(s(Q.s));return d(["0x04",F$(J)])}class R${#$;#Q;#J;#Y;#M;#W;#z;#V;#O;#D;#K;#I;#G;#Z;#X;#q;#T;get type(){return this.#$}set type($){switch($){case null:this.#$=null;break;case 0:case"legacy":this.#$=0;break;case 1:case"berlin":case"eip-2930":this.#$=1;break;case 2:case"london":case"eip-1559":this.#$=2;break;case 3:case"cancun":case"eip-4844":this.#$=3;break;case 4:case"pectra":case"eip-7702":this.#$=4;break;default:D(!1,"unsupported transaction type","type",$)}}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 $=this.#Q;if($==null&&this.type===3)return eQ;return $}set to($){this.#Q=$==null?null:c($)}get nonce(){return this.#Y}set nonce($){this.#Y=W$($,"value")}get gasLimit(){return this.#M}set gasLimit($){this.#M=p($)}get gasPrice(){let $=this.#W;if($==null&&(this.type===0||this.type===1))return z$;return $}set gasPrice($){this.#W=$==null?null:p($,"gasPrice")}get maxPriorityFeePerGas(){let $=this.#z;if($==null){if(this.type===2||this.type===3)return z$;return null}return $}set maxPriorityFeePerGas($){this.#z=$==null?null:p($,"maxPriorityFeePerGas")}get maxFeePerGas(){let $=this.#V;if($==null){if(this.type===2||this.type===3)return z$;return null}return $}set maxFeePerGas($){this.#V=$==null?null:p($,"maxFeePerGas")}get data(){return this.#J}set data($){this.#J=N($)}get value(){return this.#O}set value($){this.#O=p($,"value")}get chainId(){return this.#D}set chainId($){this.#D=p($)}get signature(){return this.#K||null}set signature($){this.#K=$==null?null:$$.from($)}get accessList(){let $=this.#I||null;if($==null){if(this.type===1||this.type===2||this.type===3)return[];return null}return $}set accessList($){this.#I=$==null?null:R0($)}get authorizationList(){let $=this.#T||null;if($==null){if(this.type===4)return[]}return $}set authorizationList($){this.#T=$==null?null:$.map((Q)=>ZJ(Q))}get maxFeePerBlobGas(){let $=this.#G;if($==null&&this.type===3)return z$;return $}set maxFeePerBlobGas($){this.#G=$==null?null:p($,"maxFeePerBlobGas")}get blobVersionedHashes(){let $=this.#Z;if($==null&&this.type===3)return[];return $}set blobVersionedHashes($){if($!=null){D(Array.isArray($),"blobVersionedHashes must be an Array","value",$),$=$.slice();for(let Q=0;Q<$.length;Q++)D(K$($[Q],32),"invalid blobVersionedHash",`value[${Q}]`,$[Q])}this.#Z=$}get blobs(){if(this.#q==null)return null;return this.#q.map(($)=>Object.assign({},$))}set blobs($){if($==null){this.#q=null;return}let Q=[],J=[];for(let Y=0;Y<$.length;Y++){let X=$[Y];if(l$(X)){b(this.#X,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let Z=E(X);if(D(Z.length<=qJ,"blob is too large",`blobs[${Y}]`,X),Z.length!==qJ){let M=new Uint8Array(qJ);M.set(Z),Z=M}let q=this.#X.blobToKzgCommitment(Z),G=N(this.#X.computeBlobKzgProof(Z,q));Q.push({data:N(Z),commitment:N(q),proof:G}),J.push(OX(1,q))}else{let Z=N(X.commitment);Q.push({data:N(X.data),commitment:Z,proof:N(X.proof)}),J.push(OX(1,Z))}}this.#q=Q,this.#Z=J}get kzg(){return this.#X}set kzg($){if($==null)this.#X=null;else this.#X=u9($)}constructor(){this.#$=null,this.#Q=null,this.#Y=0,this.#M=z$,this.#W=null,this.#z=null,this.#V=null,this.#J="0x",this.#O=z$,this.#D=z$,this.#K=null,this.#I=null,this.#G=null,this.#Z=null,this.#X=null,this.#q=null,this.#T=null}get hash(){if(this.signature==null)return null;return o(this.#U(!0,!1))}get unsignedHash(){return o(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return s0(this.unsignedHash,this.signature)}get fromPublicKey(){if(this.signature==null)return null;return e.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#U($,Q){b(!$||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let J=$?this.signature:null;switch(this.inferType()){case 0:return o9(this,J);case 1:return s9(this,J);case 2:return r9(this,J);case 3:return e9(this,J,Q?this.blobs:null);case 4:return Qq(this,J)}b(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#U(!0,!0)}get unsignedSerialized(){return this.#U(!1,!1)}inferType(){let $=this.inferTypes();if($.indexOf(2)>=0)return 2;return $.pop()}inferTypes(){let $=this.gasPrice!=null,Q=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,J=this.accessList!=null,Y=this.#G!=null||this.#Z;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)b(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});b(!Q||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),b(this.type!==0||!J,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let X=[];if(this.type!=null)X.push(this.type);else if(this.authorizationList&&this.authorizationList.length)X.push(4);else if(Q)X.push(2);else if($){if(X.push(1),!J)X.push(0)}else if(J)X.push(1),X.push(2);else if(Y&&this.to)X.push(3);else X.push(0),X.push(1),X.push(2),X.push(3);return X.sort(),X}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return R$.from(this)}toJSON(){let $=(Q)=>{if(Q==null)return null;return Q.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:$(this.gasLimit),gasPrice:$(this.gasPrice),maxPriorityFeePerGas:$(this.maxPriorityFeePerGas),maxFeePerGas:$(this.maxFeePerGas),value:$(this.value),chainId:$(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from($){if($==null)return new R$;if(typeof $==="string"){let J=E($);if(J[0]>=127)return R$.from(n9(J));switch(J[0]){case 1:return R$.from(a9(J));case 2:return R$.from(i9(J));case 3:return R$.from(t9(J));case 4:return R$.from($q(J))}b(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let Q=new R$;if($.type!=null)Q.type=$.type;if($.to!=null)Q.to=$.to;if($.nonce!=null)Q.nonce=$.nonce;if($.gasLimit!=null)Q.gasLimit=$.gasLimit;if($.gasPrice!=null)Q.gasPrice=$.gasPrice;if($.maxPriorityFeePerGas!=null)Q.maxPriorityFeePerGas=$.maxPriorityFeePerGas;if($.maxFeePerGas!=null)Q.maxFeePerGas=$.maxFeePerGas;if($.maxFeePerBlobGas!=null)Q.maxFeePerBlobGas=$.maxFeePerBlobGas;if($.data!=null)Q.data=$.data;if($.value!=null)Q.value=$.value;if($.chainId!=null)Q.chainId=$.chainId;if($.signature!=null)Q.signature=$$.from($.signature);if($.accessList!=null)Q.accessList=$.accessList;if($.authorizationList!=null)Q.authorizationList=$.authorizationList;if($.blobVersionedHashes!=null)Q.blobVersionedHashes=$.blobVersionedHashes;if($.kzg!=null)Q.kzg=$.kzg;if($.blobs!=null)Q.blobs=$.blobs;if($.hash!=null)D(Q.isSigned(),"unsigned transaction cannot define '.hash'","tx",$),D(Q.hash===$.hash,"hash mismatch","tx",$);if($.from!=null)D(Q.isSigned(),"unsigned transaction cannot define '.from'","tx",$),D(Q.from.toLowerCase()===($.from||"").toLowerCase(),"from mismatch","tx",$);return Q}}function JQ($){return D(typeof $.address==="string","invalid address for hashAuthorization","auth.address",$),o(d(["0x05",F$([$.chainId!=null?s($.chainId):"0x",c($.address),$.nonce!=null?s($.nonce):"0x"])]))}function G0($){return o(q$($))}function z8($){if(typeof $==="string")$=q$($);return o(d([q$($J),q$(String($.length)),$]))}function V8($,Q){let J=z8($);return s0(J,Q)}var TX=new Uint8Array(32);TX.fill(0);var Jq=BigInt(-1),UX=BigInt(0),HX=BigInt(1),Yq=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Xq($){let Q=E($),J=Q.length%32;if(J)return d([Q,TX.slice(J)]);return N(Q)}var Zq=y$(HX,32),qq=y$(UX,32),DX={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},GJ=["name","version","chainId","verifyingContract","salt"];function KX($){return function(Q){return D(typeof Q==="string",`invalid domain value for ${JSON.stringify($)}`,`domain.${$}`,Q),Q}}var Gq={name:KX("name"),version:KX("version"),chainId:function($){let Q=p($,"domain.chainId");if(D(Q>=0,"invalid chain ID","domain.chainId",$),Number.isSafeInteger(Q))return Number(Q);return k8(Q)},verifyingContract:function($){try{return c($).toLowerCase()}catch(Q){}D(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",$)},salt:function($){let Q=E($,"domain.salt");return D(Q.length===32,'invalid domain value "salt"',"domain.salt",$),N(Q)}};function MJ($){{let Q=$.match(/^(u?)int(\d+)$/);if(Q){let J=Q[1]==="",Y=parseInt(Q[2]);D(Y%8===0&&Y!==0&&Y<=256&&Q[2]===String(Y),"invalid numeric width","type",$);let X=A8(Yq,J?Y-1:Y),Z=J?(X+HX)*Jq:UX;return function(q){let G=p(q,"value");return D(G>=Z&&G<=X,`value out-of-bounds for ${$}`,"value",G),y$(J?F8(G,256):G,32)}}}{let Q=$.match(/^bytes(\d+)$/);if(Q){let J=parseInt(Q[1]);return D(J!==0&&J<=32&&Q[1]===String(J),"invalid bytes width","type",$),function(Y){let X=E(Y);return D(X.length===J,`invalid length for ${$}`,"value",Y),Xq(Y)}}}switch($){case"address":return function(Q){return j$(c(Q),32)};case"bool":return function(Q){return!Q?qq:Zq};case"bytes":return function(Q){return o(Q)};case"string":return function(Q){return G0(Q)}}return null}function IX($,Q){return`${$}(${Q.map(({name:J,type:Y})=>Y+" "+J).join(",")})`}function YQ($){let Q=$.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(Q)return{base:Q[1],index:Q[2]+Q[4],array:{base:Q[1],prefix:Q[1]+Q[2],count:Q[5]?parseInt(Q[5]):-1}};return{base:$}}class U${primaryType;#$;get types(){return JSON.parse(this.#$)}#Q;#J;constructor($){this.#Q=new Map,this.#J=new Map;let Q=new Map,J=new Map,Y=new Map,X={};Object.keys($).forEach((G)=>{X[G]=$[G].map(({name:M,type:W})=>{let{base:z,index:O}=YQ(W);if(z==="int"&&!$.int)z="int256";if(z==="uint"&&!$.uint)z="uint256";return{name:M,type:z+(O||"")}}),Q.set(G,new Set),J.set(G,[]),Y.set(G,new Set)}),this.#$=JSON.stringify(X);for(let G in X){let M=new Set;for(let W of X[G]){D(!M.has(W.name),`duplicate variable name ${JSON.stringify(W.name)} in ${JSON.stringify(G)}`,"types",$),M.add(W.name);let z=YQ(W.type).base;if(D(z!==G,`circular type reference to ${JSON.stringify(z)}`,"types",$),MJ(z))continue;D(J.has(z),`unknown type ${JSON.stringify(z)}`,"types",$),J.get(z).push(G),Q.get(G).add(z)}}let Z=Array.from(J.keys()).filter((G)=>J.get(G).length===0);D(Z.length!==0,"missing primary type","types",$),D(Z.length===1,`ambiguous primary types or unused types: ${Z.map((G)=>JSON.stringify(G)).join(", ")}`,"types",$),a(this,{primaryType:Z[0]});function q(G,M){D(!M.has(G),`circular type reference to ${JSON.stringify(G)}`,"types",$),M.add(G);for(let W of Q.get(G)){if(!J.has(W))continue;q(W,M);for(let z of M)Y.get(z).add(W)}M.delete(G)}q(this.primaryType,new Set);for(let[G,M]of Y){let W=Array.from(M);W.sort(),this.#Q.set(G,IX(G,X[G])+W.map((z)=>IX(z,X[z])).join(""))}}getEncoder($){let Q=this.#J.get($);if(!Q)Q=this.#Y($),this.#J.set($,Q);return Q}#Y($){{let Y=MJ($);if(Y)return Y}let Q=YQ($).array;if(Q){let Y=Q.prefix,X=this.getEncoder(Y);return(Z)=>{D(Q.count===-1||Q.count===Z.length,`array length mismatch; expected length ${Q.count}`,"value",Z);let q=Z.map(X);if(this.#Q.has(Y))q=q.map(o);return o(d(q))}}let J=this.types[$];if(J){let Y=G0(this.#Q.get($));return(X)=>{let Z=J.map(({name:q,type:G})=>{let M=this.getEncoder(G)(X[q]);if(this.#Q.has(G))return o(M);return M});return Z.unshift(Y),d(Z)}}D(!1,`unknown type: ${$}`,"type",$)}encodeType($){let Q=this.#Q.get($);return D(Q,`unknown type: ${JSON.stringify($)}`,"name",$),Q}encodeData($,Q){return this.getEncoder($)(Q)}hashStruct($,Q){return o(this.encodeData($,Q))}encode($){return this.encodeData(this.primaryType,$)}hash($){return this.hashStruct(this.primaryType,$)}_visit($,Q,J){if(MJ($))return J($,Q);let Y=YQ($).array;if(Y)return D(Y.count===-1||Y.count===Q.length,`array length mismatch; expected length ${Y.count}`,"value",Q),Q.map((Z)=>this._visit(Y.prefix,Z,J));let X=this.types[$];if(X)return X.reduce((Z,{name:q,type:G})=>{return Z[q]=this._visit(G,Q[q],J),Z},{});D(!1,`unknown type: ${$}`,"type",$)}visit($,Q){return this._visit(this.primaryType,$,Q)}static from($){return new U$($)}static getPrimaryType($){return U$.from($).primaryType}static hashStruct($,Q,J){return U$.from(Q).hashStruct($,J)}static hashDomain($){let Q=[];for(let J in $){if($[J]==null)continue;let Y=DX[J];D(Y,`invalid typed-data domain key: ${JSON.stringify(J)}`,"domain",$),Q.push({name:J,type:Y})}return Q.sort((J,Y)=>{return GJ.indexOf(J.name)-GJ.indexOf(Y.name)}),U$.hashStruct("EIP712Domain",{EIP712Domain:Q},$)}static encode($,Q,J){return d(["0x1901",U$.hashDomain($),U$.from(Q).hash(J)])}static hash($,Q,J){return o(U$.encode($,Q,J))}static async resolveNames($,Q,J,Y){$=Object.assign({},$);for(let q in $)if($[q]==null)delete $[q];let X={};if($.verifyingContract&&!K$($.verifyingContract,20))X[$.verifyingContract]="0x";let Z=U$.from(Q);Z.visit(J,(q,G)=>{if(q==="address"&&!K$(G,20))X[G]="0x";return G});for(let q in X)X[q]=await Y(q);if($.verifyingContract&&X[$.verifyingContract])$.verifyingContract=X[$.verifyingContract];return J=Z.visit(J,(q,G)=>{if(q==="address"&&X[G])return X[G];return G}),{domain:$,value:J}}static getPayload($,Q,J){U$.hashDomain($);let Y={},X=[];GJ.forEach((G)=>{let M=$[G];if(M==null)return;Y[G]=Gq[G](M),X.push({name:G,type:DX[G]})});let Z=U$.from(Q);Q=Z.types;let q=Object.assign({},Q);return D(q.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",Q),q.EIP712Domain=X,Z.encode(J),{types:q,domain:Y,primaryType:Z.primaryType,message:Z.visit(J,(G,M)=>{if(G.match(/^bytes(\d*)/))return N(E(M));if(G.match(/^u?int/))return p(M).toString();switch(G){case"address":return M.toLowerCase();case"bool":return!!M;case"string":return D(typeof M==="string","invalid string","value",M),M}D(!1,"unsupported type","type",G)})}}}var RX=BigInt(0);function WJ($){if($==null)return null;return $}function V$($){if($==null)return null;return $.toString()}function O8($){let Q={};if($.to)Q.to=$.to;if($.from)Q.from=$.from;if($.data)Q.data=N($.data);let J="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let X of J){if(!(X in $)||$[X]==null)continue;Q[X]=p($[X],`request.${X}`)}let Y="type,nonce".split(/,/);for(let X of Y){if(!(X in $)||$[X]==null)continue;Q[X]=W$($[X],`request.${X}`)}if($.accessList)Q.accessList=R0($.accessList);if($.authorizationList)Q.authorizationList=$.authorizationList.slice();if("blockTag"in $)Q.blockTag=$.blockTag;if("enableCcipRead"in $)Q.enableCcipRead=!!$.enableCcipRead;if("customData"in $)Q.customData=$.customData;if("blobVersionedHashes"in $&&$.blobVersionedHashes)Q.blobVersionedHashes=$.blobVersionedHashes.slice();if("kzg"in $)Q.kzg=$.kzg;if("blobs"in $&&$.blobs)Q.blobs=$.blobs.map((X)=>{if(l$(X))return N(X);return Object.assign({},X)});return Q}class LX{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#$;constructor($,Q){this.#$=$.transactions.map((J)=>{if(typeof J!=="string")return new XQ(J,Q);return J}),a(this,{provider:Q,hash:WJ($.hash),number:$.number,timestamp:$.timestamp,parentHash:$.parentHash,parentBeaconBlockRoot:$.parentBeaconBlockRoot,nonce:$.nonce,difficulty:$.difficulty,gasLimit:$.gasLimit,gasUsed:$.gasUsed,blobGasUsed:$.blobGasUsed,excessBlobGas:$.excessBlobGas,miner:$.miner,prevRandao:WJ($.prevRandao),extraData:$.extraData,baseFeePerGas:WJ($.baseFeePerGas),stateRoot:$.stateRoot,receiptsRoot:$.receiptsRoot})}get transactions(){return this.#$.map(($)=>{if(typeof $==="string")return $;return $.hash})}get prefetchedTransactions(){let $=this.#$.slice();if($.length===0)return[];return b(typeof $[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),$}toJSON(){let{baseFeePerGas:$,difficulty:Q,extraData:J,gasLimit:Y,gasUsed:X,hash:Z,miner:q,prevRandao:G,nonce:M,number:W,parentHash:z,parentBeaconBlockRoot:O,stateRoot:I,receiptsRoot:P,timestamp:K,transactions:U}=this;return{_type:"Block",baseFeePerGas:V$($),difficulty:V$(Q),extraData:J,gasLimit:V$(Y),gasUsed:V$(X),blobGasUsed:V$(this.blobGasUsed),excessBlobGas:V$(this.excessBlobGas),hash:Z,miner:q,prevRandao:G,nonce:M,number:W,parentHash:z,timestamp:K,parentBeaconBlockRoot:O,stateRoot:I,receiptsRoot:P,transactions:U}}[Symbol.iterator](){let $=0,Q=this.transactions;return{next:()=>{if($<this.length)return{value:Q[$++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#$.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction($){let Q=void 0;if(typeof $==="number")Q=this.#$[$];else{let J=$.toLowerCase();for(let Y of this.#$)if(typeof Y==="string"){if(Y!==J)continue;Q=Y;break}else{if(Y.hash!==J)continue;Q=Y;break}}if(Q==null)throw Error("no such tx");if(typeof Q==="string")return await this.provider.getTransaction(Q);else return Q}getPrefetchedTransaction($){let Q=this.prefetchedTransactions;if(typeof $==="number")return Q[$];$=$.toLowerCase();for(let J of Q)if(J.hash===$)return J;D(!1,"no matching transaction","indexOrHash",$)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return zq(this)}}class zJ{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor($,Q){this.provider=Q;let J=Object.freeze($.topics.slice());a(this,{transactionHash:$.transactionHash,blockHash:$.blockHash,blockNumber:$.blockNumber,removed:$.removed,address:$.address,data:$.data,topics:J,index:$.index,transactionIndex:$.transactionIndex})}toJSON(){let{address:$,blockHash:Q,blockNumber:J,data:Y,index:X,removed:Z,topics:q,transactionHash:G,transactionIndex:M}=this;return{_type:"log",address:$,blockHash:Q,blockNumber:J,data:Y,index:X,removed:Z,topics:q,transactionHash:G,transactionIndex:M}}async getBlock(){let $=await this.provider.getBlock(this.blockHash);return b(!!$,"failed to find transaction","UNKNOWN_ERROR",{}),$}async getTransaction(){let $=await this.provider.getTransaction(this.transactionHash);return b(!!$,"failed to find transaction","UNKNOWN_ERROR",{}),$}async getTransactionReceipt(){let $=await this.provider.getTransactionReceipt(this.transactionHash);return b(!!$,"failed to find transaction receipt","UNKNOWN_ERROR",{}),$}removedEvent(){return Vq(this)}}class NX{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#$;constructor($,Q){this.#$=Object.freeze($.logs.map((Y)=>{return new zJ(Y,Q)}));let J=RX;if($.effectiveGasPrice!=null)J=$.effectiveGasPrice;else if($.gasPrice!=null)J=$.gasPrice;a(this,{provider:Q,to:$.to,from:$.from,contractAddress:$.contractAddress,hash:$.hash,index:$.index,blockHash:$.blockHash,blockNumber:$.blockNumber,logsBloom:$.logsBloom,gasUsed:$.gasUsed,cumulativeGasUsed:$.cumulativeGasUsed,blobGasUsed:$.blobGasUsed,gasPrice:J,blobGasPrice:$.blobGasPrice,type:$.type,status:$.status,root:$.root})}get logs(){return this.#$}toJSON(){let{to:$,from:Q,contractAddress:J,hash:Y,index:X,blockHash:Z,blockNumber:q,logsBloom:G,logs:M,status:W,root:z}=this;return{_type:"TransactionReceipt",blockHash:Z,blockNumber:q,contractAddress:J,cumulativeGasUsed:V$(this.cumulativeGasUsed),from:Q,gasPrice:V$(this.gasPrice),blobGasUsed:V$(this.blobGasUsed),blobGasPrice:V$(this.blobGasPrice),gasUsed:V$(this.gasUsed),hash:Y,index:X,logs:M,logsBloom:G,root:z,status:W,to:$}}get length(){return this.logs.length}[Symbol.iterator](){let $=0;return{next:()=>{if($<this.length)return{value:this.logs[$++],done:!1};return{value:void 0,done:!0}}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let $=await this.provider.getBlock(this.blockHash);if($==null)throw Error("TODO");return $}async getTransaction(){let $=await this.provider.getTransaction(this.hash);if($==null)throw Error("TODO");return $}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return EX(this)}reorderedEvent($){return b(!$||$.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),CX(this,$)}}class XQ{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#$;constructor($,Q){this.provider=Q,this.blockNumber=$.blockNumber!=null?$.blockNumber:null,this.blockHash=$.blockHash!=null?$.blockHash:null,this.hash=$.hash,this.index=$.index,this.type=$.type,this.from=$.from,this.to=$.to||null,this.gasLimit=$.gasLimit,this.nonce=$.nonce,this.data=$.data,this.value=$.value,this.gasPrice=$.gasPrice,this.maxPriorityFeePerGas=$.maxPriorityFeePerGas!=null?$.maxPriorityFeePerGas:null,this.maxFeePerGas=$.maxFeePerGas!=null?$.maxFeePerGas:null,this.maxFeePerBlobGas=$.maxFeePerBlobGas!=null?$.maxFeePerBlobGas:null,this.chainId=$.chainId,this.signature=$.signature,this.accessList=$.accessList!=null?$.accessList:null,this.blobVersionedHashes=$.blobVersionedHashes!=null?$.blobVersionedHashes:null,this.authorizationList=$.authorizationList!=null?$.authorizationList:null,this.#$=-1}toJSON(){let{blockNumber:$,blockHash:Q,index:J,hash:Y,type:X,to:Z,from:q,nonce:G,data:M,signature:W,accessList:z,blobVersionedHashes:O}=this;return{_type:"TransactionResponse",accessList:z,blockNumber:$,blockHash:Q,blobVersionedHashes:O,chainId:V$(this.chainId),data:M,from:q,gasLimit:V$(this.gasLimit),gasPrice:V$(this.gasPrice),hash:Y,maxFeePerGas:V$(this.maxFeePerGas),maxPriorityFeePerGas:V$(this.maxPriorityFeePerGas),maxFeePerBlobGas:V$(this.maxFeePerBlobGas),nonce:G,signature:W,to:Z,index:J,type:X,value:V$(this.value)}}async getBlock(){let $=this.blockNumber;if($==null){let J=await this.getTransaction();if(J)$=J.blockNumber}if($==null)return null;let Q=this.provider.getBlock($);if(Q==null)throw Error("TODO");return Q}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:Q,blockNumber:J}=await p$({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){let J=$==null?1:$,Y=Q==null?0:Q,X=this.#$,Z=-1,q=X===-1?!0:!1,G=async()=>{if(q)return null;let{blockNumber:O,nonce:I}=await p$({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(I<this.nonce){X=O;return}if(q)return null;let P=await this.getTransaction();if(P&&P.blockNumber!=null)return;if(Z===-1){if(Z=X-3,Z<this.#$)Z=this.#$}while(Z<=O){if(q)return null;let K=await this.provider.getBlock(Z,!0);if(K==null)return;for(let U of K)if(U===this.hash)return;for(let U=0;U<K.length;U++){let R=await K.getTransaction(U);if(R.from===this.from&&R.nonce===this.nonce){if(q)return null;let V=await this.provider.getTransactionReceipt(R.hash);if(V==null)return;if(O-V.blockNumber+1<J)return;let T="replaced";if(R.data===this.data&&R.to===this.to&&R.value===this.value)T="repriced";else if(R.data==="0x"&&R.from===R.to&&R.value===RX)T="cancelled";b(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:T==="replaced"||T==="cancelled",reason:T,replacement:R.replaceableTransaction(X),hash:R.hash,receipt:V})}}Z++}return},M=(O)=>{if(O==null||O.status!==0)return O;b(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:O.to,from:O.from,data:""},receipt:O})},W=await this.provider.getTransactionReceipt(this.hash);if(J===0)return M(W);if(W){if(J===1||await W.confirmations()>=J)return M(W)}else if(await G(),J===0)return null;return await new Promise((O,I)=>{let P=[],K=()=>{P.forEach((R)=>R())};if(P.push(()=>{q=!0}),Y>0){let R=setTimeout(()=>{K(),I(Y8("wait for transaction timeout","TIMEOUT"))},Y);P.push(()=>{clearTimeout(R)})}let U=async(R)=>{if(await R.confirmations()>=J){K();try{O(M(R))}catch(V){I(V)}}};if(P.push(()=>{this.provider.off(this.hash,U)}),this.provider.on(this.hash,U),X>=0){let R=async()=>{try{await G()}catch(V){if(B8(V,"TRANSACTION_REPLACED")){K(),I(V);return}}if(!q)this.provider.once("block",R)};P.push(()=>{this.provider.off("block",R)}),this.provider.once("block",R)}})}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 b(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),EX(this)}reorderedEvent($){return b(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),b(!$||$.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),CX(this,$)}replaceableTransaction($){D(Number.isInteger($)&&$>=0,"invalid startBlock","startBlock",$);let Q=new XQ(this,this.provider);return Q.#$=$,Q}}function zq($){return{orphan:"drop-block",hash:$.hash,number:$.number}}function CX($,Q){return{orphan:"reorder-transaction",tx:$,other:Q}}function EX($){return{orphan:"drop-transaction",tx:$}}function Vq($){return{orphan:"drop-log",log:{transactionHash:$.transactionHash,blockHash:$.blockHash,blockNumber:$.blockNumber,address:$.address,data:$.data,topics:Object.freeze($.topics.slice()),index:$.index}}}function x0($,Q){if($.provider)return $.provider;b(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:Q})}async function jX($,Q){let J=O8(Q);if(J.to!=null)J.to=q0(J.to,$);if(J.from!=null){let Y=J.from;J.from=Promise.all([$.getAddress(),q0(Y,$)]).then(([X,Z])=>{return D(X.toLowerCase()===Z.toLowerCase(),"transaction from mismatch","tx.from",Z),X})}else J.from=$.getAddress();return await p$(J)}class D8{provider;constructor($){a(this,{provider:$||null})}async getNonce($){return x0(this,"getTransactionCount").getTransactionCount(await this.getAddress(),$)}async populateCall($){return await jX(this,$)}async populateTransaction($){let Q=x0(this,"populateTransaction"),J=await jX(this,$);if(J.nonce==null)J.nonce=await this.getNonce("pending");if(J.gasLimit==null)J.gasLimit=await this.estimateGas(J);let Y=await this.provider.getNetwork();if(J.chainId!=null){let Z=p(J.chainId);D(Z===Y.chainId,"transaction chainId mismatch","tx.chainId",$.chainId)}else J.chainId=Y.chainId;let X=J.maxFeePerGas!=null||J.maxPriorityFeePerGas!=null;if(J.gasPrice!=null&&(J.type===2||X))D(!1,"eip-1559 transaction do not support gasPrice","tx",$);else if((J.type===0||J.type===1)&&X)D(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",$);if((J.type===2||J.type==null)&&(J.maxFeePerGas!=null&&J.maxPriorityFeePerGas!=null))J.type=2;else if(J.type===0||J.type===1){let Z=await Q.getFeeData();if(b(Z.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),J.gasPrice==null)J.gasPrice=Z.gasPrice}else{let Z=await Q.getFeeData();if(J.type==null)if(Z.maxFeePerGas!=null&&Z.maxPriorityFeePerGas!=null){if(J.authorizationList&&J.authorizationList.length)J.type=4;else J.type=2;if(J.gasPrice!=null){let q=J.gasPrice;delete J.gasPrice,J.maxFeePerGas=q,J.maxPriorityFeePerGas=q}else{if(J.maxFeePerGas==null)J.maxFeePerGas=Z.maxFeePerGas;if(J.maxPriorityFeePerGas==null)J.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}else if(Z.gasPrice!=null){if(b(!X,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),J.gasPrice==null)J.gasPrice=Z.gasPrice;J.type=0}else b(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(J.type===2||J.type===3||J.type===4){if(J.maxFeePerGas==null)J.maxFeePerGas=Z.maxFeePerGas;if(J.maxPriorityFeePerGas==null)J.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}return await p$(J)}async populateAuthorization($){let Q=Object.assign({},$);if(Q.chainId==null)Q.chainId=(await x0(this,"getNetwork").getNetwork()).chainId;if(Q.nonce==null)Q.nonce=await this.getNonce();return Q}async estimateGas($){return x0(this,"estimateGas").estimateGas(await this.populateCall($))}async call($){return x0(this,"call").call(await this.populateCall($))}async resolveName($){return await x0(this,"resolveName").resolveName($)}async sendTransaction($){let Q=x0(this,"sendTransaction"),J=await this.populateTransaction($);delete J.from;let Y=R$.from(J);return await Q.broadcastTransaction(await this.signTransaction(Y))}authorize($){b(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class K8 extends D8{address;constructor($,Q){super(Q);a(this,{address:$})}async getAddress(){return this.address}connect($){return new K8(this.address,$)}#$($,Q){b(!1,`VoidSigner cannot sign ${$}`,"UNSUPPORTED_OPERATION",{operation:Q})}async signTransaction($){this.#$("transactions","signTransaction")}async signMessage($){this.#$("messages","signMessage")}async signTypedData($,Q,J){this.#$("typed-data","signTypedData")}}class v0 extends D8{address;#$;constructor($,Q){super(Q);D($&&typeof $.sign==="function","invalid private key","privateKey","[ REDACTED ]"),this.#$=$;let J=k$(this.signingKey.publicKey);a(this,{address:J})}get signingKey(){return this.#$}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect($){return new v0(this.#$,$)}async signTransaction($){$=O8($);let{to:Q,from:J}=await p$({to:$.to?q0($.to,this):void 0,from:$.from?q0($.from,this):void 0});if(Q!=null)$.to=Q;if(J!=null)$.from=J;if($.from!=null)D(c($.from)===this.address,"transaction from address mismatch","tx.from",$.from),delete $.from;let Y=R$.from($);return Y.signature=this.signingKey.sign(Y.unsignedHash),Y.serialized}async signMessage($){return this.signMessageSync($)}signMessageSync($){return this.signingKey.sign(z8($)).serialized}authorizeSync($){D(typeof $.address==="string","invalid address for authorizeSync","auth.address",$);let Q=this.signingKey.sign(JQ($));return Object.assign({},{address:c($.address),nonce:p($.nonce||0),chainId:p($.chainId||0)},{signature:Q})}async authorize($){return $=Object.assign({},$,{address:await q0($.address,this)}),this.authorizeSync(await this.populateAuthorization($))}async signTypedData($,Q,J){let Y=await U$.resolveNames($,Q,J,async(X)=>{b(this.provider!=null,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:X}});let Z=await this.provider.resolveName(X);return b(Z!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:X}),Z});return this.signingKey.sign(U$.hash(Y.domain,Q,Y.value)).serialized}}var ZQ=" !#$%&'()*+,-./<=>?@[]^_`{|}~",Oq=/^[a-z]*$/i;function SX($,Q){let J=97;return $.reduce((Y,X)=>{if(X===Q)J++;else if(X.match(Oq))Y.push(String.fromCharCode(J)+X);else J=97,Y.push(X);return Y},[])}function Dq($,Q){for(let X=ZQ.length-1;X>=0;X--)$=$.split(ZQ[X]).join(Q.substring(2*X,2*X+2));let J=[],Y=$.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(X,Z,q,G)=>{if(q)for(let M=parseInt(q);M>=0;M--)J.push(";");else J.push(Z.toLowerCase());return""});if(Y)throw Error(`leftovers: ${JSON.stringify(Y)}`);return SX(SX(J,";"),":")}function PX($){return D($[0]==="0","unsupported auwl data","data",$),Dq($.substring(1+2*ZQ.length),$.substring(1,1+2*ZQ.length))}class VJ{locale;constructor($){a(this,{locale:$})}split($){return $.toLowerCase().split(/\s+/g)}join($){return $.join(" ")}}class OJ extends VJ{#$;#Q;constructor($,Q,J){super($);this.#$=Q,this.#Q=J,this.#J=null}get _data(){return this.#$}_decodeWords(){return PX(this.#$)}#J;#Y(){if(this.#J==null){let $=this._decodeWords();if(G0($.join(`
|
|
4
4
|
`)+`
|
|
5
|
-
`)!==this.#Q)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#J=$}return this.#J}getWord($){let Q=this.#Y();return O($>=0&&$<Q.length,`invalid word index: ${$}`,"index",$),Q[$]}getWordIndex($){return this.#Y().indexOf($)}}var zq="0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN<aNn RRelyRga(R*lSeS-SketTt!3A^AnAutyCau'ComeEfF%eG(Ha=H(dLie=LowLtN^Nef./TrayTt Twe&Y#d3Cyc!DKeNdOlogyRdR`Tt _{AdeAmeAnketA,EakE[IndOodO[omOu'UeUrUsh_rdAtDyIlMbNeNusOkO,Rd R(gRrowSsTtomUn)XY_{etA(AndA[A=EadEezeI{Id+IefIghtIngIskOccoliOk&OnzeOomO` OwnUsh2Bb!DdyD+tFf$oIldLbLkL!tNd!Nk Rd&Rg R,SS(e[SyTt Y Zz:Bba+B(B!CtusGeKe~LmM aMpNN$N)lNdyNn#NoeNvasNy#Pab!P.$Pta(RRb#RdRgoRpetRryRtSeShS(o/!Su$TT$ogT^Teg%yTt!UghtU'Ut]Ve3Il(gL yM|NsusNturyRe$Rta(_irAlkAmp]An+AosApt Ar+A'AtEapE{Ee'EfErryE,I{&IefIldIm}yOi)Oo'R#-U{!UnkUrn0G?Nnam#Rc!Tiz&TyVil_imApArifyAwAyE<ErkEv I{I|IffImbIn-IpO{OgO'O`OudOwnUbUmpU, Ut^_^A,C#utDeFfeeIlInL!@L%LumnMb(eMeMf%tM-Mm#Mp<yNc tNdu@NfirmNg*[N}@Nsid NtrolNv()OkOlPp PyR$ReRnR*@/Tt#U^UntryUp!Ur'Us(V Yo>_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M<dMi'Ni$Nti,NyP?tP&dPos.P`PutyRi=ScribeS tSignSkSpair/royTailTe@VelopVi)Vo>3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-Eg<tEm|Eph<tEvat%I>Se0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-P<dPe@Pi*Pla(Po'P*[T&dTra0EEbrow:Br-CeCultyDeIntI`~L'MeMilyMousNNcyNtasyRmSh]TT$Th TigueUltV%.e3Atu*Bru?yD $EEdElMa!N)/iv$T^V W3B Ct]EldGu*LeLmLt N$NdNeNg NishReRmR,Sc$ShTT}[X_gAmeAshAtAv%EeIghtIpOatO{O%Ow UidUshY_mCusGIlLd~owOdOtR)Re,R+tRkRtu}RumRw?dSsil/ UndX_gi!AmeEqu|EshI&dIn+OgOntO,OwnOz&U.2ElNNnyRna)RyTu*:D+tInLaxy~ yMePRa+Rba+Rd&Rl-Rm|SSpTeTh U+Ze3N $NiusN*Nt!Nu(e/u*2O,0AntFtGg!Ng RaffeRlVe_dAn)A*A[IdeImp'ObeOomOryO=OwUe_tDde[LdOdO'RillaSpelSsipV nWn_bA)A(AntApeA[Av.yEatE&IdIefItOc yOupOwUnt_rdE[IdeIltIt?N3M:B.IrLfMm M, NdPpyRb%RdRshR=,TVeWkZ?d3AdAl`ArtAvyD+hogIght~oLmetLpNRo3Dd&Gh~NtPRe/%y5BbyCkeyLdLeLiday~owMeNeyOdPeRnRr%R'Sp.$/TelUrV 5BGeM<Mb!M%Nd*dNgryNtRd!RryRtSb<d3Brid:1EOn0EaEntifyLe2N%e4LLeg$L}[0A+Ita>M&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryF<tFl-tF%mHa!H .Iti$Je@JuryMa>N Noc|PutQuiryS<eSe@SideSpi*/$lTa@T e,ToVe,V.eVol=3On0L<dOla>Sue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurE<Tob 0Or1FF Fi)T&2L1Ay0DI=Ymp-0It0CeEI#L(eLy1EnEraIn]Po'T]1An+B.Ch?dD D(?yG<I|Ig($Ph<0Tr-h0H 0Tdo%T TputTside0AlEnEr0NN 0Yg&0/ 0O}:CtDd!GeIrLa)LmNdaNelN-N` P RadeR|RkRrotRtySsT^ThTi|TrolTt nU'VeYm|3A)AnutArAs<tL-<NN$tyNcilOp!Pp Rfe@Rm.Rs#T2O}OtoRa'Ys-$0AnoCn-Ctu*E)GGe#~LotNkO} Pe/olT^Zza_)A}tA,-A>AyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOg<OtOwUsh0AllArtI!OkeOo`0A{AkeApIffOw0ApCc Ci$CkDaFtL?Ldi LidLut]L=Me#eNgOnRryRtUlUndUpUr)U`0A)A*Ati$AwnEakEci$EedEllEndH eI)Id IkeInIr.L.OilOns%O#OrtOtRayReadR(gY0Ua*UeezeUir*l_b!AdiumAffA+AirsAmpAndArtA>AyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NN<tNnisNtRm/Xt_nkAtEmeEnE%yE*EyIngIsOughtReeRi=RowUmbUnd 0CketDeG LtMb MeNyPRedSsueT!5A,BaccoDayDdl EGe` I!tK&MatoM%rowNeNgueNightOlO`PP-Pp!R^RnadoRtoi'SsT$Uri,W?dW WnY_{AdeAff-Ag-A(Ansf ApAshA=lAyEatEeEndI$IbeI{Igg ImIpOphyOub!U{UeUlyUmpetU,U`Y2BeIt]Mb!NaN}lRkeyRnRt!1El=EntyI)InI,O1PeP-$:5Ly5B*lla0Ab!Awa*C!Cov D DoFairFoldHappyIf%mIqueItIv 'KnownLo{TilUsu$Veil1Da>GradeHoldOnP Set1B<Ge0A+EEdEfulE![U$0Il.y:C<tCuumGueLidL!yL=NNishP%Rious/Ult3H-!L=tNd%Ntu*NueRbRifyRs]RyS'lT <3Ab!Br<tCiousCt%yDeoEw~a+Nta+Ol(Rtu$RusSaS.Su$T$Vid5C$I)IdLc<oLumeTeYa+:GeG#ItLk~LnutNtRfa*RmRri%ShSp/eT VeY3Al`Ap#ArA'lA` BDd(gEk&dIrdLcome/T_!AtEatEelEnE*IpIsp 0DeD`FeLd~NNdowNeNgNkNn Nt ReSdomSeShT}[5LfM<Nd OdOlRdRkRldRryR`_pE{E,!I,I>Ong::Rd3Ar~ow9UUngU`:3BraRo9NeO",Dq="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",OJ=null;class M0 extends DJ{constructor(){super("en",zq,Dq)}static wordlist(){if(OJ==null)OJ=new M0;return OJ}}function wX($){return(1<<$)-1<<8-$&255}function Oq($){return(1<<$)-1&255}function KJ($,Q){if(u0("NFKD"),Q==null)Q=M0.wordlist();let J=Q.split($);O(J.length%3===0&&J.length>=12&&J.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*J.length/8)),X=0;for(let W=0;W<J.length;W++){let V=Q.getWordIndex(J[W].normalize("NFKD"));O(V>=0,`invalid mnemonic word at index ${W}`,"mnemonic","[ REDACTED ]");for(let D=0;D<11;D++){if(V&1<<10-D)Y[X>>3]|=1<<7-X%8;X++}}let Z=32*J.length/3,q=J.length/3,G=wX(q),M=E(M$(Y.slice(0,Z/8)))[0]&G;return O(M===(Y[Y.length-1]&G),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),C(Y.slice(0,Z/8))}function IJ($,Q){if(O($.length%4===0&&$.length>=16&&$.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),Q==null)Q=M0.wordlist();let J=[0],Y=11;for(let q=0;q<$.length;q++)if(Y>8)J[J.length-1]<<=8,J[J.length-1]|=$[q],Y-=8;else J[J.length-1]<<=Y,J[J.length-1]|=$[q]>>8-Y,J.push($[q]&Oq(8-Y)),Y+=3;let X=$.length/4,Z=parseInt(M$($).substring(2,4),16)&wX(X);return J[J.length-1]<<=X,J[J.length-1]|=Z>>8-X,Q.join(J.map((q)=>Q.getWord(q)))}var TJ={};class W0{phrase;password;wordlist;entropy;constructor($,Q,J,Y,X){if(Y==null)Y="";if(X==null)X=M0.wordlist();r$($,TJ,"Mnemonic"),r(this,{phrase:J,password:Y,wordlist:X,entropy:Q})}computeSeed(){let $=G$("mnemonic"+this.password,"NFKD");return P$(G$(this.phrase,"NFKD"),$,2048,64,"sha512")}static fromPhrase($,Q,J){let Y=KJ($,J);return $=IJ(E(Y),J),new W0(TJ,Y,$,Q,J)}static fromEntropy($,Q,J){let Y=E($,"entropy"),X=IJ(Y,J);return new W0(TJ,C(Y),X,Q,J)}static entropyToPhrase($,Q){let J=E($,"entropy");return IJ(J,Q)}static phraseToEntropy($,Q){return KJ($,Q)}static isValidMnemonic($,Q){try{return KJ($,Q),!0}catch(J){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var K$=function($,Q,J,Y){if(J==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?$!==Q||!Y:!Q.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?Y:J==="a"?Y.call($):Y?Y.value:Q.get($)},UJ=function($,Q,J,Y,X){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!X)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?$!==Q||!X:!Q.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?X.call($,J):X?X.value=J:Q.set($,J),J},GQ,f$,n$,Kq={16:10,24:12,32:14},Iq=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],_$=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],qQ=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],Tq=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],Uq=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],Hq=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],Lq=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],Nq=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],Rq=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],Cq=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],Eq=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],jq=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],Pq=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Sq=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],wq=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function HJ($){let Q=[];for(let J=0;J<$.length;J+=4)Q.push($[J]<<24|$[J+1]<<16|$[J+2]<<8|$[J+3]);return Q}class MQ{get key(){return K$(this,GQ,"f").slice()}constructor($){if(GQ.set(this,void 0),f$.set(this,void 0),n$.set(this,void 0),!(this instanceof MQ))throw Error("AES must be instanitated with `new`");UJ(this,GQ,new Uint8Array($),"f");let Q=Kq[this.key.length];if(Q==null)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");UJ(this,n$,[],"f"),UJ(this,f$,[],"f");for(let W=0;W<=Q;W++)K$(this,n$,"f").push([0,0,0,0]),K$(this,f$,"f").push([0,0,0,0]);let J=(Q+1)*4,Y=this.key.length/4,X=HJ(this.key),Z;for(let W=0;W<Y;W++)Z=W>>2,K$(this,n$,"f")[Z][W%4]=X[W],K$(this,f$,"f")[Q-Z][W%4]=X[W];let q=0,G=Y,M;while(G<J){if(M=X[Y-1],X[0]^=_$[M>>16&255]<<24^_$[M>>8&255]<<16^_$[M&255]<<8^_$[M>>24&255]^Iq[q]<<24,q+=1,Y!=8)for(let I=1;I<Y;I++)X[I]^=X[I-1];else{for(let I=1;I<Y/2;I++)X[I]^=X[I-1];M=X[Y/2-1],X[Y/2]^=_$[M&255]^_$[M>>8&255]<<8^_$[M>>16&255]<<16^_$[M>>24&255]<<24;for(let I=Y/2+1;I<Y;I++)X[I]^=X[I-1]}let W=0,V,D;while(W<Y&&G<J)V=G>>2,D=G%4,K$(this,n$,"f")[V][D]=X[W],K$(this,f$,"f")[Q-V][D]=X[W++],G++}for(let W=1;W<Q;W++)for(let V=0;V<4;V++)M=K$(this,f$,"f")[W][V],K$(this,f$,"f")[W][V]=jq[M>>24&255]^Pq[M>>16&255]^Sq[M>>8&255]^wq[M&255]}encrypt($){if($.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let Q=K$(this,n$,"f").length-1,J=[0,0,0,0],Y=HJ($);for(let q=0;q<4;q++)Y[q]^=K$(this,n$,"f")[0][q];for(let q=1;q<Q;q++){for(let G=0;G<4;G++)J[G]=Tq[Y[G]>>24&255]^Uq[Y[(G+1)%4]>>16&255]^Hq[Y[(G+2)%4]>>8&255]^Lq[Y[(G+3)%4]&255]^K$(this,n$,"f")[q][G];Y=J.slice()}let X=new Uint8Array(16),Z=0;for(let q=0;q<4;q++)Z=K$(this,n$,"f")[Q][q],X[4*q]=(_$[Y[q]>>24&255]^Z>>24)&255,X[4*q+1]=(_$[Y[(q+1)%4]>>16&255]^Z>>16)&255,X[4*q+2]=(_$[Y[(q+2)%4]>>8&255]^Z>>8)&255,X[4*q+3]=(_$[Y[(q+3)%4]&255]^Z)&255;return X}decrypt($){if($.length!=16)throw TypeError("invalid ciphertext size (must be 16 bytes)");let Q=K$(this,f$,"f").length-1,J=[0,0,0,0],Y=HJ($);for(let q=0;q<4;q++)Y[q]^=K$(this,f$,"f")[0][q];for(let q=1;q<Q;q++){for(let G=0;G<4;G++)J[G]=Nq[Y[G]>>24&255]^Rq[Y[(G+3)%4]>>16&255]^Cq[Y[(G+2)%4]>>8&255]^Eq[Y[(G+1)%4]&255]^K$(this,f$,"f")[q][G];Y=J.slice()}let X=new Uint8Array(16),Z=0;for(let q=0;q<4;q++)Z=K$(this,f$,"f")[Q][q],X[4*q]=(qQ[Y[q]>>24&255]^Z>>24)&255,X[4*q+1]=(qQ[Y[(q+3)%4]>>16&255]^Z>>16)&255,X[4*q+2]=(qQ[Y[(q+2)%4]>>8&255]^Z>>8)&255,X[4*q+3]=(qQ[Y[(q+1)%4]&255]^Z)&255;return X}}GQ=new WeakMap,f$=new WeakMap,n$=new WeakMap;class T8{constructor($,Q,J){if(J&&!(this instanceof J))throw Error(`${$} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new MQ(Q)},name:{enumerable:!0,value:$}})}}var WQ=function($,Q,J,Y,X){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!X)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?$!==Q||!X:!Q.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?X.call($,J):X?X.value=J:Q.set($,J),J},e0=function($,Q,J,Y){if(J==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?$!==Q||!Y:!Q.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?Y:J==="a"?Y.call($):Y?Y.value:Q.get($)},U8,V0;class H8 extends T8{constructor($,Q){super("ECC",$,H8);if(U8.set(this,void 0),V0.set(this,void 0),Q){if(Q.length%16)throw TypeError("invalid iv size (must be 16 bytes)");WQ(this,U8,new Uint8Array(Q),"f")}else WQ(this,U8,new Uint8Array(16),"f");WQ(this,V0,this.iv,"f")}get iv(){return new Uint8Array(e0(this,U8,"f"))}encrypt($){if($.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let Q=new Uint8Array($.length);for(let J=0;J<$.length;J+=16){for(let Y=0;Y<16;Y++)e0(this,V0,"f")[Y]^=$[J+Y];WQ(this,V0,this.aes.encrypt(e0(this,V0,"f")),"f"),Q.set(e0(this,V0,"f"),J)}return Q}decrypt($){if($.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let Q=new Uint8Array($.length);for(let J=0;J<$.length;J+=16){let Y=this.aes.decrypt($.subarray(J,J+16));for(let X=0;X<16;X++)Q[J+X]=Y[X]^e0(this,V0,"f")[X],e0(this,V0,"f")[X]=$[J+X]}return Q}}U8=new WeakMap,V0=new WeakMap;var $8=function($,Q,J,Y,X){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!X)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?$!==Q||!X:!Q.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?X.call($,J):X?X.value=J:Q.set($,J),J},b$=function($,Q,J,Y){if(J==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?$!==Q||!Y:!Q.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?Y:J==="a"?Y.call($):Y?Y.value:Q.get($)},L8,y0,x$;class R0 extends T8{constructor($,Q){super("CTR",$,R0);if(L8.set(this,void 0),y0.set(this,void 0),x$.set(this,void 0),$8(this,x$,new Uint8Array(16),"f"),b$(this,x$,"f").fill(0),$8(this,L8,b$(this,x$,"f"),"f"),$8(this,y0,16,"f"),Q==null)Q=1;if(typeof Q==="number")this.setCounterValue(Q);else this.setCounterBytes(Q)}get counter(){return new Uint8Array(b$(this,x$,"f"))}setCounterValue($){if(!Number.isInteger($)||$<0||$>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let Q=15;Q>=0;--Q)b$(this,x$,"f")[Q]=$%256,$=Math.floor($/256)}setCounterBytes($){if($.length!==16)throw TypeError("invalid counter initial Uint8Array value length");b$(this,x$,"f").set($)}increment(){for(let $=15;$>=0;$--)if(b$(this,x$,"f")[$]===255)b$(this,x$,"f")[$]=0;else{b$(this,x$,"f")[$]++;break}}encrypt($){var Q,J;let Y=new Uint8Array($);for(let X=0;X<Y.length;X++){if(b$(this,y0,"f")===16)$8(this,L8,this.aes.encrypt(b$(this,x$,"f")),"f"),$8(this,y0,0,"f"),this.increment();Y[X]^=b$(this,L8,"f")[$8(this,y0,(J=b$(this,y0,"f"),Q=J++,J),"f"),Q]}return Y}decrypt($){return this.encrypt($)}}L8=new WeakMap,y0=new WeakMap,x$=new WeakMap;function LJ($){if($.length<16)throw TypeError("PKCS#7 invalid length");let Q=$[$.length-1];if(Q>16)throw TypeError("PKCS#7 padding byte out of range");let J=$.length-Q;for(let Y=0;Y<Q;Y++)if($[J+Y]!==Q)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array($.subarray(0,J))}function NJ($){if(typeof $==="string"&&!$.startsWith("0x"))$="0x"+$;return y$($)}function Q8($,Q){$=String($);while($.length<Q)$="0"+$;return $}function g0($){if(typeof $==="string")return G$($,"NFKC");return y$($)}function Q$($,Q){let J=Q.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);O(J!=null,"invalid path","path",Q);let Y=J[1],X=J[3],Z=J[4]==="!",q=$;for(let G of Y.toLowerCase().split(".")){if(Array.isArray(q)){if(!G.match(/^[0-9]+$/))break;q=q[parseInt(G)]}else if(typeof q==="object"){let M=null;for(let W in q)if(W.toLowerCase()===G){M=q[W];break}q=M}else q=null;if(q==null)break}if(O(!Z||q!=null,"missing required value","path",Y),X&&q!=null){if(X==="int"){if(typeof q==="string"&&q.match(/^-?[0-9]+$/))return parseInt(q);else if(Number.isSafeInteger(q))return q}if(X==="number"){if(typeof q==="string"&&q.match(/^-?[0-9.]*$/))return parseFloat(q)}if(X==="data"){if(typeof q==="string")return NJ(q)}if(X==="array"&&Array.isArray(q))return q;if(X===typeof q)return q;O(!1,`wrong type found for ${X} `,"path",Y)}return q}var FX="m/44'/60'/0'/0/0";function zQ($){try{let Q=JSON.parse($);if((Q.version!=null?parseInt(Q.version):0)===3)return!0}catch(Q){}return!1}function Bq($,Q,J){if(Q$($,"crypto.cipher:string")==="aes-128-ctr"){let X=Q$($,"crypto.cipherparams.iv:data!"),Z=new R0(Q,X);return C(Z.decrypt(J))}b(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function VQ($,Q){let J=E(Q),Y=Q$($,"crypto.ciphertext:data!"),X=C(n(o([J.slice(16,32),Y]))).substring(2);O(X===Q$($,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let Z=Bq($,J.slice(0,16),Y),q=k$(Z);if($.address){let W=$.address.toLowerCase();if(!W.startsWith("0x"))W="0x"+W;O(m(W)===q,"keystore address/privateKey mismatch","address",$.address)}let G={address:q,privateKey:Z};if(Q$($,"x-ethers.version:string")==="0.1"){let W=J.slice(32,64),V=Q$($,"x-ethers.mnemonicCiphertext:data!"),D=Q$($,"x-ethers.mnemonicCounter:data!"),I=new R0(W,D);G.mnemonic={path:Q$($,"x-ethers.path:string")||FX,locale:Q$($,"x-ethers.locale:string")||"en",entropy:C(E(I.decrypt(V)))}}return G}function AX($){let Q=Q$($,"crypto.kdf:string");if(Q&&typeof Q==="string"){if(Q.toLowerCase()==="scrypt"){let J=Q$($,"crypto.kdfparams.salt:data!"),Y=Q$($,"crypto.kdfparams.n:int!"),X=Q$($,"crypto.kdfparams.r:int!"),Z=Q$($,"crypto.kdfparams.p:int!");O(Y>0&&(Y&Y-1)===0,"invalid kdf.N","kdf.N",Y),O(X>0&&Z>0,"invalid kdf","kdf",Q);let q=Q$($,"crypto.kdfparams.dklen:int!");return O(q===32,"invalid kdf.dklen","kdf.dflen",q),{name:"scrypt",salt:J,N:Y,r:X,p:Z,dkLen:64}}else if(Q.toLowerCase()==="pbkdf2"){let J=Q$($,"crypto.kdfparams.salt:data!"),Y=Q$($,"crypto.kdfparams.prf:string!"),X=Y.split("-").pop();O(X==="sha256"||X==="sha512","invalid kdf.pdf","kdf.pdf",Y);let Z=Q$($,"crypto.kdfparams.c:int!"),q=Q$($,"crypto.kdfparams.dklen:int!");return O(q===32,"invalid kdf.dklen","kdf.dklen",q),{name:"pbkdf2",salt:J,count:Z,dkLen:q,algorithm:X}}}O(!1,"unsupported key-derivation function","kdf",Q)}function RJ($,Q){let J=JSON.parse($),Y=g0(Q),X=AX(J);if(X.name==="pbkdf2"){let{salt:D,count:I,dkLen:P,algorithm:K}=X,H=P$(Y,D,I,P,K);return VQ(J,H)}b(X.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:X});let{salt:Z,N:q,r:G,p:M,dkLen:W}=X,V=J0(Y,Z,q,G,M,W);return VQ(J,V)}function BX($){return new Promise((Q)=>{setTimeout(()=>{Q()},$)})}async function CJ($,Q,J){let Y=JSON.parse($),X=g0(Q),Z=AX(Y);if(Z.name==="pbkdf2"){if(J)J(0),await BX(0);let{salt:I,count:P,dkLen:K,algorithm:H}=Z,L=P$(X,I,P,K,H);if(J)J(1),await BX(0);return VQ(Y,L)}b(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:q,N:G,r:M,p:W,dkLen:V}=Z,D=await Q0(X,q,G,M,W,V,J);return VQ(Y,D)}function kX($){let Q=$.salt!=null?E($.salt,"options.salt"):J$(32),J=131072,Y=8,X=1;if($.scrypt){if($.scrypt.N)J=$.scrypt.N;if($.scrypt.r)Y=$.scrypt.r;if($.scrypt.p)X=$.scrypt.p}return O(typeof J==="number"&&J>0&&Number.isSafeInteger(J)&&(BigInt(J)&BigInt(J-1))===BigInt(0),"invalid scrypt N parameter","options.N",J),O(typeof Y==="number"&&Y>0&&Number.isSafeInteger(Y),"invalid scrypt r parameter","options.r",Y),O(typeof X==="number"&&X>0&&Number.isSafeInteger(X),"invalid scrypt p parameter","options.p",X),{name:"scrypt",dkLen:32,salt:Q,N:J,r:Y,p:X}}function _X($,Q,J,Y){let X=E(J.privateKey,"privateKey"),Z=Y.iv!=null?E(Y.iv,"options.iv"):J$(16);O(Z.length===16,"invalid options.iv length","options.iv",Y.iv);let q=Y.uuid!=null?E(Y.uuid,"options.uuid"):J$(16);O(q.length===16,"invalid options.uuid length","options.uuid",Y.iv);let G=$.slice(0,16),M=$.slice(16,32),W=new R0(G,Z),V=E(W.encrypt(X)),D=n(o([M,V])),I={address:J.address.substring(2).toLowerCase(),id:v8(q),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:C(Z).substring(2)},ciphertext:C(V).substring(2),kdf:"scrypt",kdfparams:{salt:C(Q.salt).substring(2),n:Q.N,dklen:32,p:Q.p,r:Q.r},mac:D.substring(2)}};if(J.mnemonic){let P=Y.client!=null?Y.client:`ethers/${w8}`,K=J.mnemonic.path||FX,H=J.mnemonic.locale||"en",L=$.slice(32,64),z=E(J.mnemonic.entropy,"account.mnemonic.entropy"),U=J$(16),N=new R0(L,U),w=E(N.encrypt(z)),S=new Date,j="UTC--"+(S.getUTCFullYear()+"-"+Q8(S.getUTCMonth()+1,2)+"-"+Q8(S.getUTCDate(),2)+"T"+Q8(S.getUTCHours(),2)+"-"+Q8(S.getUTCMinutes(),2)+"-"+Q8(S.getUTCSeconds(),2)+".0Z")+"--"+I.address;I["x-ethers"]={client:P,gethFilename:j,path:K,locale:H,mnemonicCounter:C(U).substring(2),mnemonicCiphertext:C(w).substring(2),version:"0.1"}}return JSON.stringify(I)}function N8($,Q,J){if(J==null)J={};let Y=g0(Q),X=kX(J),Z=J0(Y,X.salt,X.N,X.r,X.p,64);return _X(E(Z),X,$,J)}async function R8($,Q,J){if(J==null)J={};let Y=g0(Q),X=kX(J),Z=await Q0(Y,X.salt,X.N,X.r,X.p,64,J.progressCallback);return _X(E(Z),X,$,J)}var DQ="m/44'/60'/0'/0/0",Fq=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),C0=2147483648,Aq=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),kq="0123456789abcdef";function OQ($,Q){let J="";while($)J=kq[$%16]+J,$=Math.trunc($/16);while(J.length<Q*2)J="0"+J;return"0x"+J}function EJ($){let Q=E($),J=p0(M$(M$(Q)),0,4),Y=o([Q,J]);return b8(Y)}var o$={};function fX($,Q,J,Y){let X=new Uint8Array(37);if($&C0)b(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),X.set(E(Y),1);else X.set(E(J));for(let q=24;q>=0;q-=8)X[33+(q>>3)]=$>>24-q&255;let Z=E(e$("sha512",Q,X));return{IL:Z.slice(0,32),IR:Z.slice(32)}}function bX($,Q){let J=Q.split("/");if(O(J.length>0,"invalid path","path",Q),J[0]==="m")O($.depth===0,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${$.depth}`,"path",Q),J.shift();let Y=$;for(let X=0;X<J.length;X++){let Z=J[X];if(Z.match(/^[0-9]+'$/)){let q=parseInt(Z.substring(0,Z.length-1));O(q<C0,"invalid path index",`path[${X}]`,Z),Y=Y.deriveChild(C0+q)}else if(Z.match(/^[0-9]+$/)){let q=parseInt(Z);O(q<C0,"invalid path index",`path[${X}]`,Z),Y=Y.deriveChild(q)}else O(!1,"invalid path component",`path[${X}]`,Z)}return Y}class R$ extends v0{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor($,Q,J,Y,X,Z,q,G,M){super(Q,M);r$($,o$,"HDNodeWallet"),r(this,{publicKey:Q.compressedPublicKey});let W=p0($0(M$(this.publicKey)),0,4);r(this,{parentFingerprint:J,fingerprint:W,chainCode:Y,path:X,index:Z,depth:q}),r(this,{mnemonic:G})}connect($){return new R$(o$,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,$)}#$(){let $={address:this.address,privateKey:this.privateKey},Q=this.mnemonic;if(this.path&&Q&&Q.wordlist.locale==="en"&&Q.password==="")$.mnemonic={path:this.path,locale:"en",entropy:Q.entropy};return $}async encrypt($,Q){return await R8(this.#$(),$,{progressCallback:Q})}encryptSync($){return N8(this.#$(),$)}get extendedKey(){return b(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),EJ(o(["0x0488ADE4",OQ(this.depth,1),this.parentFingerprint,OQ(this.index,4),this.chainCode,o(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new J8(o$,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild($){let Q=z$($,"index");O(Q<=4294967295,"invalid index","index",Q);let J=this.path;if(J){if(J+="/"+(Q&~C0),Q&C0)J+="'"}let{IR:Y,IL:X}=fX(Q,this.chainCode,this.publicKey,this.privateKey),Z=new e(g$((d0(X)+BigInt(this.privateKey))%Aq,32));return new R$(o$,Z,this.fingerprint,C(Y),J,Q,this.depth+1,this.mnemonic,this.provider)}derivePath($){return bX(this,$)}static#Q($,Q){O(l$($),"invalid seed","seed","[REDACTED]");let J=E($,"seed");O(J.length>=16&&J.length<=64,"invalid seed","seed","[REDACTED]");let Y=E(e$("sha512",Fq,J)),X=new e(C(Y.slice(0,32)));return new R$(o$,X,"0x00000000",C(Y.slice(32)),"m",0,0,Q,null)}static fromExtendedKey($){let Q=a(x8($));O(Q.length===82||EJ(Q.slice(0,78))===$,"invalid extended key","extendedKey","[ REDACTED ]");let J=Q[4],Y=C(Q.slice(5,9)),X=parseInt(C(Q.slice(9,13)).substring(2),16),Z=C(Q.slice(13,45)),q=Q.slice(45,78);switch(C(Q.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let G=C(q);return new J8(o$,k$(G),G,Y,Z,null,X,J,null)}case"0x0488ade4":case"0x04358394 ":if(q[0]!==0)break;return new R$(o$,new e(q.slice(1)),Y,Z,null,X,J,null,null)}O(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom($,Q,J){if($==null)$="";if(Q==null)Q=DQ;if(J==null)J=M0.wordlist();let Y=W0.fromEntropy(J$(16),$,J);return R$.#Q(Y.computeSeed(),Y).derivePath(Q)}static fromMnemonic($,Q){if(!Q)Q=DQ;return R$.#Q($.computeSeed(),$).derivePath(Q)}static fromPhrase($,Q,J,Y){if(Q==null)Q="";if(J==null)J=DQ;if(Y==null)Y=M0.wordlist();let X=W0.fromPhrase($,Q,Y);return R$.#Q(X.computeSeed(),X).derivePath(J)}static fromSeed($){return R$.#Q($,null)}}class J8 extends I8{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor($,Q,J,Y,X,Z,q,G,M){super(Q,M);r$($,o$,"HDNodeVoidWallet"),r(this,{publicKey:J});let W=p0($0(M$(J)),0,4);r(this,{publicKey:J,fingerprint:W,parentFingerprint:Y,chainCode:X,path:Z,index:q,depth:G})}connect($){return new J8(o$,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,$)}get extendedKey(){return b(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),EJ(o(["0x0488B21E",OQ(this.depth,1),this.parentFingerprint,OQ(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild($){let Q=z$($,"index");O(Q<=4294967295,"invalid index","index",Q);let J=this.path;if(J){if(J+="/"+(Q&~C0),Q&C0)J+="'"}let{IR:Y,IL:X}=fX(Q,this.chainCode,this.publicKey,null),Z=e.addPoints(X,this.publicKey,!0),q=k$(Z);return new J8(o$,q,Z,this.fingerprint,C(Y),J,Q,this.depth+1,this.provider)}derivePath($){return bX(this,$)}}function KQ($){try{if(JSON.parse($).encseed)return!0}catch(Q){}return!1}function IQ($,Q){let J=JSON.parse($),Y=g0(Q),X=m(Q$(J,"ethaddr:string!")),Z=NJ(Q$(J,"encseed:string!"));O(Z&&Z.length%16===0,"invalid encseed","json",$);let q=E(P$(Y,Y,2000,32,"sha256")).slice(0,16),G=Z.slice(0,16),M=Z.slice(16),W=new H8(q,G),V=LJ(E(W.decrypt(M))),D="";for(let I=0;I<V.length;I++)D+=String.fromCharCode(V[I]);return{address:X,privateKey:G0(D)}}function xX($){return new Promise((Q)=>{setTimeout(()=>{Q()},$)})}class v$ extends v0{constructor($,Q){if(typeof $==="string"&&!$.startsWith("0x"))$="0x"+$;let J=typeof $==="string"?new e($):$;super(J,Q)}connect($){return new v$(this.signingKey,$)}async encrypt($,Q){let J={address:this.address,privateKey:this.privateKey};return await R8(J,$,{progressCallback:Q})}encryptSync($){let Q={address:this.address,privateKey:this.privateKey};return N8(Q,$)}static#$($){if(O($,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in $&&$.mnemonic&&$.mnemonic.locale==="en"){let J=W0.fromEntropy($.mnemonic.entropy),Y=R$.fromMnemonic(J,$.mnemonic.path);if(Y.address===$.address&&Y.privateKey===$.privateKey)return Y;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let Q=new v$($.privateKey);return O(Q.address===$.address,"address/privateKey mismatch","json","[ REDACTED ]"),Q}static async fromEncryptedJson($,Q,J){let Y=null;if(zQ($))Y=await CJ($,Q,J);else if(KQ($)){if(J)J(0),await xX(0);if(Y=IQ($,Q),J)J(1),await xX(0)}return v$.#$(Y)}static fromEncryptedJsonSync($,Q){let J=null;if(zQ($))J=RJ($,Q);else if(KQ($))J=IQ($,Q);else O(!1,"invalid JSON wallet","json","[ REDACTED ]");return v$.#$(J)}static createRandom($){let Q=R$.createRandom();if($)return Q.connect($);return Q}static fromPhrase($,Q){let J=R$.fromPhrase($);if(Q)return J.connect(Q);return J}}var C8=($)=>`${$.slice(0,6)}...${$.slice(-4)}`;function vX($,Q,J,Y=[]){let X=$,Z=Q,q=J,G=(Y||[]).map((F)=>{try{return m(F)}catch(A){return log.warn(`⚠️ SM: Invalid superadmin address skipped: ${C8(F)}`),null}}).filter(Boolean),M=null,W=X&&typeof X.getAddress==="function"?V():Promise.resolve();async function V(){if(X)M=m(await X.getAddress())}async function D(F){X=F,M=null,W=F&&typeof F.getAddress==="function"?V():Promise.resolve(),await W}async function I(){return W}function P(F){let A=(k)=>k&&typeof k==="object"&&!Array.isArray(k)?Object.keys(k).sort().reduce((T,B)=>(T[B]=A(k[B]),T),{}):Array.isArray(k)?k.map(A):k;return JSON.stringify(A(F))}function K(F){if(!F?.signature||!F?.originEthAddress||!F?.originUser)return{ok:!1,reason:"missing-fields"};let A;try{if(A=m(F.originEthAddress),m(F.originUser)!==A)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:k,originEthAddress:T,base:B,...f}=F,y=P(f);try{let h=D8(G$(y),k);if(m(h)!==A)return{ok:!1,reason:"invalid-signature"};let{originUser:u,...t}=f;return{ok:!0,normalizedOriginEthAddress:A,payload:B===void 0?t:{...t,base:B}}}catch(h){return{ok:!1,reason:"verify-error",error:h}}}let H=(F)=>X.signMessage(G$(P(F)));function L(F,A){try{return m(D8(G$(P(F)),A))}catch{return null}}async function z(F){if(await I(),!X||!M)return log.warn("⚠️ SM: Cannot sign outgoing operations; no active signer session."),[];let A=M,k=[];for(let T of F){if(T?.signature&&T?.originEthAddress&&T?.originUser){k.push(T);continue}let{base:B,...f}=T,y={...f,originUser:A},h=P(y);try{let u=await X.signMessage(G$(h));k.push({...T,originUser:A,originEthAddress:A,signature:u})}catch(u){log.error(`❌ SM: Failed to sign operation for ${C8(A)}:`,u.message)}}return k}async function U(F){let A=[],k="guest";for(let T of F){let B,f;if(T.type==="sync"){A.push(T);continue}if(T.type==="fullStateSync"){if(T.signature&&T.originEthAddress&&T.originUser){let Z$=K(T);if(!Z$.ok){log.warn("⚠️ SM: fullStateSync inválido:",Z$.reason);continue}A.push(Z$.payload)}else A.push(T);continue}if(T.type==="deltaSync"){if(T.signature&&T.originEthAddress&&T.originUser){let Z$=K(T);if(!Z$.ok){log.warn("⚠️ SM: deltaSync inválido:",Z$.reason);continue}A.push(Z$.payload)}else A.push(T);continue}{let Z$=K(T);if(!Z$.ok){log.warn("⚠️ SM: Operación firmada inválida:",Z$.reason);continue}B=Z$.normalizedOriginEthAddress,f=Z$.payload}let y;if(G.includes(B))y="superadmin";else{let c$=(await Z.get(`user:${B}`)).result?.value;if(y=c$?.role||"guest",c$?.expiresAt&&new Date(c$.expiresAt).getTime()<Date.now())y="guest"}let h=f.type,u=q.mapChangeTypeToAction(h,f),t={...f,signer:B,originUser:T.originUser,originEthAddress:T.originEthAddress,signature:T.signature};if(h==="upsert"&&f.id===`user:${B}`&&!(await Z.get(f.id)).result){A.push(t);continue}let{role:V$,ethAddress:B$}=f.value??{};if(V$==="superadmin"&&!G.includes(m(B$??""))){log.warn(`⚠️ SM: [POLICY] ${C8(B)} tried to assign superadmin to ${C8(B$)}. Blocked.`);continue}if(q.can(y,u))A.push(t);else log.warn(`⚠️ SM: ${C8(B)} (role: ${y}) DENIED ${u}`,f)}return{validatedOperations:A}}async function N(F){if(await I(),!X)throw Error("\uD83D\uDEE1️ SM Encrypt: User session (signer) required for encryption.");try{let A=await S("ssm-encrypt-for-current-user-v1"),k=Z.encode(F),T=Z.pako.deflate(k),B=J$(12),f=await crypto.subtle.encrypt({name:"AES-GCM",iv:B},A,T);return JSON.stringify({iv:C(B),encrypted:C(new Uint8Array(f)),type:"aes-gcm-self-ssm-v2"})}catch(A){throw log.error("\uD83D\uDEE1️ SM: Error in encryptDataForCurrentUser:",A),Error("\uD83D\uDEE1️ SM: Failed to encrypt personal data.")}}async function w(F){if(await I(),!X)throw Error("\uD83D\uDEE1️ SM Decrypt: User session (signer) required for decryption.");let A;try{A=JSON.parse(F)}catch{throw Error("\uD83D\uDEE1️ SM Decrypt: encryptedString is not valid JSON.")}if(A.type!=="aes-gcm-self-ssm-v2")throw Error("\uD83D\uDEE1️ SM Decrypt: Unsupported encryption type or incorrect version.");if(!A.iv||!A.encrypted)throw Error("\uD83D\uDEE1️ SM Decrypt: Invalid encrypted data format.");try{let k=E(A.iv),T=E(A.encrypted),B=await S("ssm-encrypt-for-current-user-v1"),f=await crypto.subtle.decrypt({name:"AES-GCM",iv:k},B,T),y=Z.pako.inflate(new Uint8Array(f));return Z.decode(y)}catch(k){throw log.error("\uD83D\uDEE1️ SM: Error in decryptDataForCurrentUser:",k),Error("\uD83D\uDEE1️ SM: Failed to decrypt personal data.")}}async function S(F="ssm-default-aes-salt"){let A=E(X.privateKey),k=G$(F),T=await crypto.subtle.importKey("raw",A,{name:"PBKDF2"},!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"PBKDF2",salt:k,iterations:1e5,hash:"SHA-256"},T,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"])}let R=(F)=>crypto.subtle.importKey("raw",E(M$(E(F))),{name:"AES-GCM"},!1,["encrypt","decrypt"]);async function j(F,A,k){if(k$(F)!==k)throw Error("\uD83D\uDEE1️ SM Envelope: public key does not match the address.");let T=new e(C(J$(32))),B=await R(T.computeSharedSecret(F)),f=J$(12),y=await crypto.subtle.encrypt({name:"AES-GCM",iv:f},B,A);return{p:T.compressedPublicKey,i:C(f),c:C(new Uint8Array(y)),r:e.computePublicKey(F,!0)}}async function _(F){if(await I(),!X)throw Error("\uD83D\uDEE1️ SM Envelope: user session required.");if(!F)throw Error("\uD83D\uDEE1️ SM Envelope: no envelope for this user.");let A=await R(X.signingKey.computeSharedSecret(F.p)),k=await crypto.subtle.decrypt({name:"AES-GCM",iv:E(F.i)},A,E(F.c));return new Uint8Array(k)}async function x(F,A){let k=await crypto.subtle.importKey("raw",A,{name:"AES-GCM"},!1,["encrypt"]),T=J$(12),B=await crypto.subtle.encrypt({name:"AES-GCM",iv:T},k,Z.pako.deflate(Z.encode(F)));return{iv:C(T),encrypted:C(new Uint8Array(B))}}async function v(F,A,k){let T=await crypto.subtle.importKey("raw",k,{name:"AES-GCM"},!1,["decrypt"]),B=await crypto.subtle.decrypt({name:"AES-GCM",iv:E(A)},T,E(F));return Z.decode(Z.pako.inflate(new Uint8Array(B)))}return{get localUserEthAddress(){return M},updateSigner:D,get publicKey(){return X?.signingKey?.compressedPublicKey??null},wrapKeyFor:j,unwrapKey:_,sealWithKey:x,openWithKey:v,signOutgoingOperations:z,verifyIncomingOperations:U,recoverAuthor:L,signValue:H,encryptDataForCurrentUser:N,decryptDataForCurrentUser:w}}var TQ="gdb_ethereum_material_encrypted_webauthn_v2",UQ="gdb_webauthn_registration_details_v2",HQ="gdb_webauthn_session_secret_v3",yX=new TextEncoder().encode("genosdb/webauthn/prf/v1"),fq=($)=>`${$.slice(0,6)}...${$.slice(-4)}`;function z0($){if(!($ instanceof ArrayBuffer))if($.buffer&&$.buffer instanceof ArrayBuffer)$=$.buffer.slice($.byteOffset,$.byteOffset+$.byteLength);else throw log.error("❌ SM: arrayBufferToBase64Url input is not ArrayBuffer nor TypedArray with .buffer",$),Error("arrayBufferToBase64Url: ArrayBuffer or TypedArray required.");return btoa(String.fromCharCode(...new Uint8Array($))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Y8($){let Q=$.replace(/-/g,"+").replace(/_/g,"/"),J=atob(Q),Y=new ArrayBuffer(J.length),X=new Uint8Array(Y);for(let Z=0;Z<J.length;Z++)X[Z]=J.charCodeAt(Z);return Y}function gX(){let $=null,Q=null,J=null,Y=null,X=null;async function Z(){let R=v$.createRandom();return J=R.mnemonic.phrase,log.info("\uD83D\uDEE1️ SM: New Ethereum identity generated (mnemonic and private key in memory)."),{address:await R.getAddress(),mnemonic:J,privateKey:R.privateKey}}async function q(R,j){let _=J$(12),x=E(R),v=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:_},j,x);return JSON.stringify({iv:z0(_.buffer.slice(_.byteOffset,_.byteOffset+_.byteLength)),ciphertext:z0(v)})}async function G(R,j){let{iv:_,ciphertext:x}=JSON.parse(R),v=Y8(_),c=Y8(x),F=await window.crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(v)},j,c);return C(new Uint8Array(F))}async function M(R,j){let _=await window.crypto.subtle.importKey("raw",j,{name:"PBKDF2"},!1,["deriveKey"]);return window.crypto.subtle.deriveKey({name:"PBKDF2",salt:R,iterations:200000,hash:"SHA-256"},_,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"])}async function W(R,j){let _=localStorage.getItem(TQ);if(!_)return log.warn("⚠️ SM (_loadAndDecrypt): No encrypted Ethereum material found."),z(),null;try{let x=await M(R,j),v=await G(_,x),c=new v$(v);return $=c,Q=await c.getAddress(),J=null,Y=R,X=j,log.info(`✅ SM (_loadAndDecrypt): Session established for ${fq(Q)}`),Q}catch(x){return log.error("❌ SM (_loadAndDecrypt): Error (decryption/wallet loading):",x),z(),null}}async function V(R){let j=J$(32),_=await window.navigator.credentials.get({publicKey:{challenge:j,allowCredentials:[{type:"public-key",id:R}],userVerification:"required",timeout:60000,extensions:{prf:{eval:{first:yX}}}}});if(!_?.rawId||!_.response?.signature)throw Error("❌ WebAuthn authentication failed or was canceled.");if(z0(_.rawId)!==z0(R))throw Error("❌ WebAuthn credential ID in assertion does not match stored ID.");if(JSON.parse(new TextDecoder().decode(_.response.clientDataJSON)).challenge!==z0(j))throw Error("❌ WebAuthn assertion challenge mismatch.");return _.getClientExtensionResults?.().prf?.results?.first}async function D(R){if(!window.navigator.credentials||!window.navigator.credentials.create)return log.error("❌ SM: WebAuthn is not supported by this browser."),alert("WebAuthn is not supported by this browser."),!1;let j=J$(32);try{let _=E(e.computePublicKey(R,!1)),x=E(n(_)).slice(0,64),v=new v$(R).address.slice(0,10),c=await window.navigator.credentials.create({publicKey:{challenge:j,rp:{name:"GDB WebAuthn App",id:window.location.hostname},user:{id:x,name:`user-${v}`,displayName:"GDB User"},pubKeyCredParams:[{type:"public-key",alg:-7},{type:"public-key",alg:-257}],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"required",residentKey:"preferred",requireResidentKey:!1},timeout:60000,attestation:"none",extensions:{prf:{eval:{first:yX}}}}});if(!c?.rawId)throw Error("❌ WebAuthn registration failed or was canceled (no credential).");let F=c.rawId,A=c.getClientExtensionResults?.().prf??{},k=A.results?.first??(A.enabled?await V(F):void 0);if(!k)log.warn("⚠️ SM: this authenticator has no PRF — the key is protected by origin isolation only.");let T=await M(F,k??j);if(localStorage.setItem(TQ,await q(R,T)),localStorage.setItem(UQ,JSON.stringify({credentialIdBase64Url:z0(F),...!k&&{originalChallengeBase64Url:z0(j)}})),k)sessionStorage.setItem(HQ,z0(k));return log.info("\uD83D\uDEE1️ SM: WebAuthn registered and Ethereum key encrypted and saved."),await W(F,k??j)}catch(_){return log.error("❌ SM: Error during WebAuthn registration:",_),z(),localStorage.removeItem(TQ),localStorage.removeItem(UQ),alert(`❌ WebAuthn registration error: ${_.message||"Unknown. Check console."}`),!1}}let I=()=>{try{return JSON.parse(localStorage.getItem(UQ))}catch{return null}};async function P(){if(!window.navigator.credentials||!window.navigator.credentials.get)return log.error("❌ SM: WebAuthn is not supported."),alert("WebAuthn is not supported by this browser."),null;let R=I();if(!R?.credentialIdBase64Url)return log.warn("⚠️ SM: No WebAuthn registration details saved."),null;let j=Y8(R.credentialIdBase64Url);try{let _=await V(j),x=R.originalChallengeBase64Url?Y8(R.originalChallengeBase64Url):_;if(!x)throw Error("❌ WebAuthn: this credential yielded no PRF secret.");if(!R.originalChallengeBase64Url)sessionStorage.setItem(HQ,z0(x));return log.info("\uD83D\uDEE1️ SM: Interactive WebAuthn assertion received and validated."),await W(j,x)}catch(_){return log.error("❌ SM: Error during interactive WebAuthn login:",_),z(),null}}async function K(){let R=I();if(!R?.credentialIdBase64Url)return log.warn("⚠️ SM Silent Login: No WebAuthn registration details."),null;let j=R.originalChallengeBase64Url??sessionStorage.getItem(HQ);if(!j)return log.info("\uD83D\uDEE1️ SM Silent Login: a new session needs the authenticator."),null;try{return await W(Y8(R.credentialIdBase64Url),Y8(j))}catch(_){return log.error("❌ SM Silent Login: Error during silent login attempt:",_),z(),null}}async function H(R){try{let j=v$.fromPhrase(R);return $=j,Q=await j.getAddress(),J=R,Y=null,X=null,{address:Q,privateKey:j.privateKey,mnemonic:J}}catch(j){return log.error("❌ SM: Error loading wallet from mnemonic:",j),z(),null}}function L(){return localStorage.getItem(UQ)!==null&&localStorage.getItem(TQ)!==null}function z(){sessionStorage.removeItem(HQ),$=null,Q=null,J=null,Y=null,X=null}function U(){return $}function N(){return Q}function w(){if(J&&(!Y||!X))return J;return null}function S(){return!!($&&Y&&X)}return{createNewEthereumIdentity:Z,registerAndProtectWithWebAuthn:D,loginWithWebAuthn:P,trySilentWebAuthnLogin:K,loadWalletFromMnemonic:H,hasWebAuthnRegistration:L,logout:z,getSigner:U,getAddress:N,getMnemonicForDisplay:w,isSessionWebAuthnProtected:S}}var jJ=Math.PI/180,hX=($)=>Math.sin($*jJ/2)**2,bq=new Intl.Collator().compare,E8={$eq:($,Q)=>$===Q,$ne:($,Q)=>$!==Q,$gt:($,Q)=>$>Q,$gte:($,Q)=>$>=Q,$lt:($,Q)=>$<Q,$lte:($,Q)=>$<=Q,$in:($,Q)=>Array.isArray(Q)&&(Array.isArray($)?$.some((J)=>Q.includes(J)):Q.includes($)),$between:($,[Q,J])=>$>=Q&&$<=J,$near:($,{latitude:Q,longitude:J,radius:Y})=>{let X=$?.value??$,Z=X?.latitude??X?.location?.latitude,q=X?.longitude??X?.location?.longitude;return[Z,q,Q,J,Y].every(Number.isFinite)&&hX(Z-Q)+Math.cos(Q*jJ)*Math.cos(Z*jJ)*hX(q-J)<=Math.sin(Math.min(Y/12742,Math.PI/2))**2},$exists:($,Q)=>Q?$!==void 0:$===void 0,$startsWith:($,Q)=>typeof $==="string"&&$.startsWith(Q),$endsWith:($,Q)=>typeof $==="string"&&$.endsWith(Q),$contains:($,Q)=>typeof $==="string"&&$.includes(Q),$text:{global:($,Q)=>{let J=(X)=>String(X).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=J(Q);return Object.values($).some((X)=>typeof X==="object"?null.fieldSearch(X,Y):J(X).includes(Y))},field:($,Q)=>{let J=(X)=>String(X).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=J(Q);return Array.isArray($)?$.some((X)=>J(X).includes(Y)):J($).includes(Y)}},$like:($,Q)=>typeof $==="string"&&typeof Q==="string"&&new RegExp(`^${Q.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test($),$regex:($,Q)=>typeof $==="string"&&new RegExp(Q.$regex||Q,"i").test($),$and:($,Q,J)=>Q.every((Y)=>J.createFilter(Y,J.allNodes)($)),$or:($,Q,J)=>Q.some((Y)=>J.createFilter(Y,J.allNodes)($)),$not:($,Q,J)=>!J.createFilter(Q,J.allNodes)($),$edge:($,Q,J)=>{if(!$.edges?.length||typeof Q!=="object"||Q===null)return!1;let Y=J.createFilter(Q,J.allNodes),X=[...$.edges],Z=new Set(X).add($.id),q=[];while(X.length){let G=X.shift(),M=J.allNodes[G];if(!M)continue;if(Y(M))q.push(M);M.edges?.forEach((W)=>!Z.has(W)&&Z.add(W)&&X.push(W))}if(q.length)$._edgeResult=q;return q.length>0}},PJ=($,Q)=>Q.split(".").reduce((J,Y)=>J&&typeof J==="object"&&(Y in J)?J[Y]:void 0,$),LQ=($,Q)=>{if(Object.keys($).length===0)return()=>!0;return(J)=>Object.entries($).every(([Y,X])=>{if(Y.startsWith("$"))return E8[Y](J,X,{createFilter:LQ,allNodes:Q});let Z=PJ(J.value,Y);if(Z===void 0)Z=PJ(J,Y);if(X instanceof RegExp)return X.test(String(Z));if(typeof X!=="object"||X===null)return E8.$eq(Z,X);return Object.entries(X).every(([q,G])=>{if(q==="$text")return E8.$text.field(Z,G);if(q==="$between"&&G.every((M)=>M instanceof Date))return E8.$between(new Date(Z),G);return E8[q]?.(Z,G,{createFilter:LQ,allNodes:Q})??!1})})},mX=($,Q)=>{let{$edge:J,...Y}=Q.query||{},X=LQ(Y,$),Z=Object.values($).filter(X),G=[...J?(()=>{let M=LQ({$edge:J},$);Z.forEach((V)=>M(V));let W=new Map;return Z.forEach((V)=>{if(V._edgeResult)V._edgeResult.forEach((D)=>W.set(D.id,D)),delete V._edgeResult}),Array.from(W.values())})():Z];if(Q.field){let M=Q.order==="asc"?1:-1,W=G.map((V)=>[PJ(V.value,Q.field),V]);W.sort(([V,D],[I,P])=>((typeof V==="string"&&typeof I==="string"?bq(V,I):(V??0)-(I??0))||(D.id<P.id?-1:1))*M),G=W.map(([,V])=>V)}if(Q.$after){let M=G.findIndex((W)=>W.id===Q.$after);G=M>=0?G.slice(M+1):[]}if(Q.$before){let M=G.findIndex((W)=>W.id===Q.$before);G=M>=0?G.slice(0,M):[]}if(Q.$limit)G=G.slice(0,Q.$limit);return G.map((M)=>({...M,edges:(M.edges??[]).filter((W)=>Object.hasOwn($,W))}))};var E0=($)=>`${$.slice(0,6)}...${$.slice(-4)}`,BJ={superadmin:{can:["assignRole","deleteAny"],inherits:["admin"]},admin:{can:["delete"],inherits:["manager"]},manager:{can:["publish"],inherits:["user"]},user:{can:["write","link","sync"],inherits:["guest"]},guest:{can:["read","sync"]}},i$="gdb_sm_last_session_was_webauthn";function xq($){if(typeof $!=="object"||$===null||Array.isArray($))throw Error("\uD83D\uDEE1️ SM: Custom roles must be a valid object.");BJ=$,log.info("\uD83D\uDEE1️ SM: Custom roles set.")}function j8($,Q,J=new Set){let Y=BJ;if(!$||!Y[$])return!1;if(J.has($))return log.warn(`⚠️ SM: Inheritance loop detected involving role '${$}'.`),!1;if(J.add($),Y[$].can&&Y[$].can.includes(Q))return J.delete($),!0;if(Y[$].inherits&&Array.isArray(Y[$].inherits)){if(Y[$].inherits.some((X)=>j8(X,Q,new Set(J))))return J.delete($),!0}return J.delete($),!1}function vq($,Q={}){if($==="upsert")return"write";if($==="remove")return"delete";if($==="link")return"link";if($==="unlink")return"link";if($==="sync"||$==="syncReceive"||$==="deltaSync")return"sync";return log.warn(`⚠️ SM mapChangeTypeToAction: Unknown change type '${$}'.`),"unknown"}var X$=null,q$=null,s=gX(),SJ=[],L$=!1,RQ=new Set,C$=null,m$=!1,CQ=null,EQ=null;function uV($){if(typeof $==="function")CQ=$,E$();else if($===null)CQ=null;else log.warn("⚠️ SM: Attempted to set invalid state change callback.")}function pV($){if(typeof $==="function")EQ=$,E$();else if($===null)EQ=null;else log.warn("⚠️ SM: Attempted to set invalid governance state change callback.")}function E$(){if(CQ)CQ({isActive:L$,activeAddress:q$?.localUserEthAddress||s.getAddress(),abbrAddr:E0(q$?.localUserEthAddress||s.getAddress()||"N/A"),isWebAuthnProtected:m$,hasVolatileIdentity:!!C$,hasWebAuthnHardwareRegistration:s.hasWebAuthnRegistration()});if(EQ)EQ({isActive:L$,activeAddress:q$?.localUserEthAddress||s.getAddress()})}async function lV(){if(L$)await PQ();s.logout(),C$=null,m$=!1,localStorage.removeItem(i$);try{let $=await s.createNewEthereumIdentity();if($)C$=$;return E$(),$}catch($){throw C$=null,E$(),$}}async function dV($){let Q=$||C$?.privateKey;if(!Q)return alert("\uD83D\uDEE1️ SM Error: No volatile ETH identity to protect."),null;if(L$&&m$&&q$?.signer)return q$.localUserEthAddress;if(L$)await PQ();s.logout();let J=await s.registerAndProtectWithWebAuthn(Q);if(J&&s.getSigner()){if(C$=null,m$=!0,localStorage.setItem(i$,"true"),X$)await jQ(s.getSigner(),{method:"WebAuthn"});else log.warn("⚠️ SM: Identity protected, but GDB not configured. Global SM signing not active.");return J}else return m$=!1,localStorage.removeItem(i$),E$(),null}async function nV(){if(L$)await PQ();s.logout(),C$=null;let $=await s.loginWithWebAuthn();if($&&s.getSigner()){if(m$=!0,localStorage.setItem(i$,"true"),X$)await jQ(s.getSigner(),{method:"silent WebAuthn"});else log.warn("⚠️ SM: WebAuthn login OK, but GDB not configured for full security activation.");return $}else return m$=!1,localStorage.removeItem(i$),E$(),null}async function oV($){if(L$)await PQ();s.logout(),C$=null;let Q=await s.loadWalletFromMnemonic($);if(Q&&Q.address&&s.getSigner()){if(C$=Q,m$=!1,localStorage.removeItem(i$),X$)await jQ(s.getSigner(),{method:"mnemonic"});else log.warn("⚠️ SM: Mnemonic loaded, but GDB not configured for full security activation.");return C$}else return E$(),null}var yq=($,Q,J)=>{let Y=(z)=>J.graph.get(z),X=new Map,Z=(z,U)=>{if(X.size>4096)X.clear();let N=U+JSON.stringify(z);if(!X.has(N))X.set(N,$.recoverAuthor(z,U));return X.get(N)},q=(z)=>z?.owner??z?._meta?.owner,G=(z)=>/^(?:SM_ID_PREFIX_)?(0x[0-9a-fA-F]{40}):/.exec(z)?.[1],M=(z)=>typeof z==="string"&&z.startsWith("user:"),W=(z,U,N)=>z===U||["write","delete"].includes(N?.[z]),V=(z,U,N)=>z===U||N?.[z]==="delete",D=(z,U)=>z.physical-U.physical||z.logical-U.logical,I=({type:z,id:U,sourceId:N,targetId:w,edges:S,value:R,timestamp:j,originUser:_})=>N?{type:z,sourceId:N,targetId:w,edges:S,timestamp:j,originUser:_}:{type:z,id:U,value:R,timestamp:j,originUser:_},P=(z)=>{if(Q.includes(z))return"superadmin";let U=Y(`user:${z}`)?.value;if(!U?.role)return"guest";return U.expiresAt&&new Date(U.expiresAt).getTime()<Date.now()?"guest":U.role},K=(z,U)=>!!z?.sig&&Q.includes(z.author)&&Z({type:"upsert",id:U,value:z.value,timestamp:z.ts,originUser:z.author},z.sig)===z.author,H=(z)=>z?.meta?.role??(z?.meta&&{...z.meta,ts:z.meta.ts??z.timestamp}),L=(z,U,N)=>[z,H(U)].filter((w)=>K(w,N)).sort((w,S)=>D(S.ts,w.ts))[0];return{op(z,U){if(!z?.signature)return!1;let N=Z(I(z),z.signature);if(!N||N!==z.originUser)return!1;let w=z.sourceId??z.id,S=z.type==="remove"?"delete":z.sourceId?"link":"write";if(M(w)){if(Q.includes(N))return!0;if(S!=="write"||N!==w.slice(5))return!1;if(U&&!j8(P(N),"write"))return!1;let{role:_="guest",expiresAt:x=null}=L(z.receipt,U,w)?.value??{},v=z.value??{};return v.role===_&&(v.expiresAt??null)===x}if(!j8(P(N),S))return!1;let R=q(U?.value)??G(w);if(R)return(S==="delete"?V:W)(N,R,U?.value?.collaborators);let j=q(z.value);return!j||N===j},opOf(z,U){let N=U.meta??{};return{type:"upsert",id:z,value:N.value??U.value,timestamp:N.ts??U.timestamp,originUser:N.author,originEthAddress:N.author,signature:N.sig,...N.role&&{receipt:N.role}}},edgeOf(z,U){let N=U.meta?.edges;return N?{type:N.type,sourceId:z,targetId:N.targetId,edges:U.edges??[],timestamp:N.ts,originUser:N.author,originEthAddress:N.author,signature:N.sig}:null},edgeReceipt(z){if(!z?.signature||!Array.isArray(z.edges))return null;return{author:Z(I(z),z.signature),sig:z.signature,ts:z.timestamp,type:z.type,targetId:z.targetId}},edges(z,U,N){let w=U.meta?.edges,S=N.meta?.edges;if(!w||S&&D(S.ts,w.ts)>=0)return null;let R=this.edgeOf(z,U);return this.op(R,N)?R:null},describe(z,U){let N=z?.signature&&Z(I(z),z.signature);if(!N)return"unsigned or invalid signature";return`${N} as ${P(N)}, owner ${q(U?.value)??G(z.sourceId??z.id)??"none"}`},receipt(z,U,N){if(!z?.signature)return null;let w=Z(I(z),z.signature),S={author:w,sig:z.signature,ts:z.timestamp};if(N.meta?.edges)S.edges=N.meta.edges;if(M(z.id)){if(S.value=z.value,!Q.includes(w)){let R=L(z.receipt,U,z.id);if(R)S.role=R}}return S}}};async function gq($,Q={}){if(!$){log.error("❌ SM: GDB instance is required.");return}X$=$,SJ=((Q.superAdmins??[])||[]).map((Z)=>{try{return m(Z)}catch(q){return log.warn(`⚠️ SM: Invalid superadmin address skipped: ${E0(Z)}`),null}}).filter(Boolean);let Y=SJ;if(!Y.length)log.warn("⚠️ SM: superAdmins is empty — only a superadmin's signed write sets a role, so no identity can be promoted; open the base role in customRoles if guests should write.");let X=vX(null,$,{can:j8,mapChangeTypeToAction:vq},Y);if(q$=X,$.use(async function(q){let{validatedOperations:G}=await X.verifyIncomingOperations(q);return G||[]}),$.setSyncAuthGate?.(yq(X,Y,$)),RQ.add({db:$,ssm:X,superAdmins:Y}),log.info("\uD83D\uDEE1️ SM: Security context established and middleware registered."),localStorage.getItem(i$)==="true"&&s.hasWebAuthnRegistration()){log.info("\uD83D\uDEE1️ SM: Previous WebAuthn session detected. Attempting silent login...");try{let Z=await s.trySilentWebAuthnLogin();if(Z&&s.getSigner())m$=!0,await jQ(s.getSigner()),log.info(`\uD83D\uDEE1️ SM: Silent WebAuthn login successful for ${E0(Z)}.`);else log.warn("⚠️ SM: Silent WebAuthn login failed or no signer obtained. Manual login required."),localStorage.removeItem(i$),E$()}catch(Z){log.error("❌ SM: Error during silent WebAuthn login attempt:",Z),localStorage.removeItem(i$),E$()}}else E$();if(Q.customRoles)xq(Q.customRoles);if(Q.acls){log.info("\uD83D\uDEE1️ SM: ACLS options activated.");try{(await import(new URL("./sm-acls.min.js",import.meta.url).href)).start(X$,Q,q$)}catch(Z){log.error("❌ SM: Failed to load or start the ACLS module.",Z)}}if(Q.governanceRules)try{(await import(new URL("./sm-gov.min.js",import.meta.url).href)).start(X$,Q)}catch(Z){log.error("❌ SM: Failed to load or start the governance module.",Z)}}var hq=async($,Q)=>{let{results:J}=await $.map({realtime:!1}),Y=(Z)=>(Z.value?.owner??Z.value?._meta?.owner)===Q,X=J.filter((Z)=>!Z.meta&&Y(Z)).map(({id:Z,value:q,timestamp:G})=>({type:"upsert",id:Z,value:q,timestamp:G}));for(let Z of J.filter((q)=>q.edges?.length&&!q.meta?.edges&&Y(q)))$.link(Z.id,Z.edges.at(-1));if(!X.length)return;log.info(`\uD83D\uDD0F SM: re-signing ${X.length} node(s) whose receipt was lost.`),await $.syncChannel.send(X)},mq=async({db:$,ssm:Q,superAdmins:J},Y,X)=>{await Q.updateSigner(Y);let Z=Q.localUserEthAddress,{syncChannel:q}=$??{};if(q?.send&&!q._originalSendBySM)q._originalSendBySM=q.send.bind(q),q.send=async(G)=>{let M=await Q.signOutgoingOperations(G);return $.captureProvenance?.(M),q._originalSendBySM(M)};hq($,Z).catch((G)=>log.warn("⚠️ SM: could not re-sign own nodes:",G.message));try{let G=Y.signingKey?.compressedPublicKey,{result:M}=await $.get(`user:${Z}`);if(!M)X.role=J.includes(Z)?"superadmin":"guest",X.status="New user.",await $.put({ethAddress:Z,role:X.role,...G&&{pub:G}},`user:${Z}`);else if(X.role=M.value.role||"unknown",G&&!M.value.pub)await $.put({...M.value,pub:G},`user:${Z}`);q?.send?.([{type:"sync",timestamp:null}])}catch(G){log.error(`❌ SM: User node check failed for ${Z}: ${G}`)}return Z},jQ=async($,Q={})=>{if(!RQ.size||!$)return log.error("❌ SM: GDB, SSM, or signer missing."),L$=!1,E$(),!1;let J={role:"unknown",status:"Existing user."},Y=null;for(let Z of RQ)try{Y=await mq(Z,$,J)}catch(q){return log.error("❌ SM: updateSigner failed:",q),L$=!1,E$(),!1}L$=!0,E$();let X=Q.method?` via ${Q.method}`:"";return log.info(`\uD83D\uDEE1️\uD83D\uDD12 SM: ACTIVE for \x1B[32m${E0(Y)} (${J.role})\x1B[0m${X}. ${J.status}`),!0};async function PQ(){for(let{db:$,ssm:Q}of RQ){let J=$?.syncChannel;if(J?._originalSendBySM)J.send=J._originalSendBySM,delete J._originalSendBySM;try{await Q.updateSigner(null)}catch(Y){log.error("❌ SM: Error during signer deactivation in clearSecurity:",Y)}}s.logout(),C$=null,m$=!1,localStorage.removeItem(i$),L$=!1,E$(),log.info("\uD83D\uDEE1️ SM: Session closed. Now in anonymous verification mode.")}var wJ="_gdbSecurePayloadV1",NQ=async($,Q)=>{if(!$)return null;let J=q$,Y=$.value,X=!1;if(Y&&Y._gdbWrapperType===wJ){let{_payload:Z,_meta:q}=Y;Y=typeof Z==="string"?Z:Y;let G=J?.localUserEthAddress&&q?.keys?.[J.localUserEthAddress];if(G)try{Y=await J.openWithKey(Z,q.iv,await J.unwrapKey(G)),X=!0}catch(M){log.error(`❌ SM: Decryption failed for node ${$.id}: ${M.message}`)}else log.warn(`⚠️ SM: No read envelope for node ${$.id}. Owner: ${q?.owner}.`)}return{id:Q??$.id,value:Y,edges:($.edges||[]).map((Z)=>Z.replace(/^SM_ID_PREFIX_/,"")),timestamp:$.timestamp,decrypted:X}};async function iV($,Q){if(!X$)throw Error("❌ SM.put: Not initialized");if(!SQ())throw Error("❌ SM.put: Session not active");let J=q$,Y=J.localUserEthAddress,X=Q??`${Y}:${crypto.randomUUID()}`,Z=`SM_ID_PREFIX_${X}`,q=(await X$.get(Z,null))?.result?.value,G=q?._gdbWrapperType===wJ?q:null;if(q&&!G)throw Error(`❌ SM.put: Node '${X}' exists but is not an SM node. DENIED.`);if(G&&G._meta.owner!==Y&&!["write","delete"].includes(G.collaborators?.[Y]))throw Error(`❌ SM.put: No write permission on node '${X}'. DENIED.`);let M;try{let W=G?._meta.keys?.[Y];if(G&&!W&&G._meta.owner!==Y)throw Error(`❌ SM.put: No envelope for '${X}'. DENIED.`);let V=W?await J.unwrapKey(W):crypto.getRandomValues(new Uint8Array(32)),{iv:D,encrypted:I}=await J.sealWithKey($,V);M={_gdbWrapperType:wJ,_payload:I,collaborators:G?.collaborators??{},_meta:{owner:G?._meta.owner??Y,iv:D,keys:G?._meta.keys??{[Y]:await J.wrapKeyFor(J.publicKey,V,Y)}}}}catch(W){throw log.error(`❌ SM.put: Encryption failed for ID ${Q||"(new)"}: ${W.message}`),W}return log.info(`\uD83D\uDEE1️ SM (put): Storing wrapped secure payload for ID: ${Q||"(new)"}`),await X$.put(M,Z),X}async function rV($){if(!SQ())throw Error("❌ SM.sign: Session not active");let Q={kind:"app",from:q$.localUserEthAddress,at:Date.now(),value:$};return{...Q,signature:await q$.signValue(Q)}}var aV=({signature:$,...Q}={},J=60000)=>Q.kind==="app"&&Math.abs(Date.now()-Q.at)<=J&&q$?.recoverAuthor(Q,$)===Q.from?Q.from:null;async function sV($,Q=null){if(!$)throw Error("❌ SM.get: id is required");let J=`SM_ID_PREFIX_${$}`;if(!X$)throw Error("❌ SM.get: Not initialized");if(!Q){let q=await X$.get(J,null);return{result:await NQ(q?q.result:null,$)}}let Y=null,X=await X$.get(J,null);if(Y=await NQ(X?X.result:null,$),typeof Q==="function")Q(Y);let{unsubscribe:Z}=await X$.get(J,async(q)=>{let G=await NQ(q,$),M=G&&Y&&X$.hybridClock?.compare(G.timestamp,Y.timestamp)>0,W=JSON.stringify(G?G.value:null)!==JSON.stringify(Y?Y.value:null);if(!G&&Y){if(Y=null,typeof Q==="function")Q(null)}else if(G&&(!Y||M||W)){if(Y=G,typeof Q==="function")Q(G)}});return{result:Y,unsubscribe:()=>{if(Z)Z()}}}async function tV($){if(!$)throw Error("❌ SM.remove: id is required");if(!X$)throw Error("❌ SM.remove: Not initialized");return X$.remove(`SM_ID_PREFIX_${$}`)}async function eV($={}){if(!X$)throw Error("❌ SM.map: Not initialized");let{query:Q,field:J,order:Y="asc",$limit:X,...Z}=$,{results:q}=await X$.map({...Z,query:{id:/^SM_ID_PREFIX_/},realtime:!1}),G=(await Promise.all(q.map((V)=>NQ(V,V.id.replace("SM_ID_PREFIX_",""))))).filter(Boolean),M=Object.fromEntries(G.map((V)=>[V.id,V]));return{results:mX(M,{query:Q,field:J,order:Y,$limit:X})}}function cX(){if(!L$||!q$?.localUserEthAddress)throw Error("❌ SM Operation: Security not active or no local user ETH identified in SecurityManager.");return q$.localUserEthAddress}async function $z($,Q,J=null){if(!$||!Q)throw Error("❌ SM assignRole: targetUserEthAddress, and role are required.");let Y;try{Y=m($)}catch(W){throw Error(`❌ SM assignRole: targetUserEthAddress '${E0($)}' is invalid.`)}if(!BJ[Q])throw Error(`❌ SM assignRole: Role '${Q}' is not a defined role.`);let X=cX(),Z=`user:${Y}`,G=(await X$.get(Z)).result?.value||{},M={...G,ethAddress:Y,role:Q,assignedByEthAddress:X,expiresAt:J?new Date(J).toISOString():null,priority:!0};await X$.put(M,Z),log.info(`\uD83D\uDEE1️ SM: PROMOTING \x1B[32m ${E0(Y)} \x1B[0m from \x1B[32m '${G.role}' \x1B[0m to \x1B[32m ${Q} \x1B[0m by \x1B[32m ${E0(X)} \x1B[0m written.`)}async function cq(){if(!L$||!q$?.localUserEthAddress)return!1;return SJ.includes(q$.localUserEthAddress)}async function uq($,Q="unknown"){let J;try{J=m($)}catch(Z){throw Error(`❌ SM: Invalid ETH address '${E0($)}' when verifying role for op '${Q}'.`)}let Y=await X$.get(`user:${J}`);if(!Y.result?.value?.role)throw log.warn(`⚠️ SM verifyUserRoleLocal: Node/role not found for ETH ${J}. Op: ${Q}. Data:`,Y.result?.value),Error(`❌ SM: Role not found for ETH ${J} (operation: ${Q}).`);let X=Y.result.value;if(X.expiresAt&&new Date(X.expiresAt)<new Date)throw Error(`❌ SM: Role for ETH ${J} has expired.`);return X.role}async function pq($,Q){let J=await uq($,Q);if(!j8(J,Q))throw Error(`❌ SM: ETH User ${$} (role ${J}) does not have permission for '${Q}'.`)}async function Qz($){if(!$)throw Error("❌ SM executeWithPermission: operationName is required.");let Q=cX();if(!($==="assignRole"&&await cq()))await pq(Q,$);return Q}function Jz(){return L$?q$?.localUserEthAddress:null}function SQ(){return L$}function Yz(){return L$&&m$}function Xz(){return s.hasWebAuthnRegistration()}function Zz(){if(C$&&C$.mnemonic&&!s.isSessionWebAuthnProtected())return C$.mnemonic;return s.getMnemonicForDisplay()}async function qz($){if(!SQ()||!q$)throw Error("❌ SM Encryption: Local signing security not active or SecurityManager not available.");return await q$.encryptDataForCurrentUser($)}async function Gz($){if(!SQ()||!q$)throw Error("❌ SM Decryption: Local signing security not active or SecurityManager not available.");return await q$.decryptDataForCurrentUser($)}async function Mz($,Q,J={}){X$=$;let Y=async(Z)=>{if((await $.get(Z,null))?.result)return Z;let q=`SM_ID_PREFIX_${Z}`;return(await $.get(q,null))?.result?q:Z};for(let Z of["link","unlink"]){let q=$[Z].bind($);$[Z]=async(G,M)=>q(await Y(G),await Y(M))}let X={...Q};return $.sm=X,Object.hasOwn(J,"superAdmins")&&await gq($,J),Object.freeze(X),{sm:X}}export{aV as verify,lV as startNewUserRegistration,rV as sign,uV as setSecurityStateChangeCallback,pV as setGovernanceStateChangeCallback,tV as remove,iV as put,dV as protectCurrentIdentityWithWebAuthn,eV as map,oV as loginOrRecoverUserWithMnemonic,nV as loginCurrentUserWithWebAuthn,SQ as isSecurityActive,Yz as isCurrentSessionProtectedByWebAuthn,Mz as init,Xz as hasExistingWebAuthnRegistration,Zz as getMnemonicForDisplayAfterRegistrationOrRecovery,Jz as getActiveEthAddress,sV as get,Qz as executeWithPermission,qz as encryptDataForCurrentUser,Gz as decryptDataForCurrentUser,PQ as clearSecurity,$z as assignRole,E0 as abbrAddr};
|
|
5
|
+
`)!==this.#Q)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#J=$}return this.#J}getWord($){let Q=this.#Y();return D($>=0&&$<Q.length,`invalid word index: ${$}`,"index",$),Q[$]}getWordIndex($){return this.#Y().indexOf($)}}var Kq="0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN<aNn RRelyRga(R*lSeS-SketTt!3A^AnAutyCau'ComeEfF%eG(Ha=H(dLie=LowLtN^Nef./TrayTt Twe&Y#d3Cyc!DKeNdOlogyRdR`Tt _{AdeAmeAnketA,EakE[IndOodO[omOu'UeUrUsh_rdAtDyIlMbNeNusOkO,Rd R(gRrowSsTtomUn)XY_{etA(AndA[A=EadEezeI{Id+IefIghtIngIskOccoliOk&OnzeOomO` OwnUsh2Bb!DdyD+tFf$oIldLbLkL!tNd!Nk Rd&Rg R,SS(e[SyTt Y Zz:Bba+B(B!CtusGeKe~LmM aMpNN$N)lNdyNn#NoeNvasNy#Pab!P.$Pta(RRb#RdRgoRpetRryRtSeShS(o/!Su$TT$ogT^Teg%yTt!UghtU'Ut]Ve3Il(gL yM|NsusNturyRe$Rta(_irAlkAmp]An+AosApt Ar+A'AtEapE{Ee'EfErryE,I{&IefIldIm}yOi)Oo'R#-U{!UnkUrn0G?Nnam#Rc!Tiz&TyVil_imApArifyAwAyE<ErkEv I{I|IffImbIn-IpO{OgO'O`OudOwnUbUmpU, Ut^_^A,C#utDeFfeeIlInL!@L%LumnMb(eMeMf%tM-Mm#Mp<yNc tNdu@NfirmNg*[N}@Nsid NtrolNv()OkOlPp PyR$ReRnR*@/Tt#U^UntryUp!Ur'Us(V Yo>_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M<dMi'Ni$Nti,NyP?tP&dPos.P`PutyRi=ScribeS tSignSkSpair/royTailTe@VelopVi)Vo>3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-Eg<tEm|Eph<tEvat%I>Se0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-P<dPe@Pi*Pla(Po'P*[T&dTra0EEbrow:Br-CeCultyDeIntI`~L'MeMilyMousNNcyNtasyRmSh]TT$Th TigueUltV%.e3Atu*Bru?yD $EEdElMa!N)/iv$T^V W3B Ct]EldGu*LeLmLt N$NdNeNg NishReRmR,Sc$ShTT}[X_gAmeAshAtAv%EeIghtIpOatO{O%Ow UidUshY_mCusGIlLd~owOdOtR)Re,R+tRkRtu}RumRw?dSsil/ UndX_gi!AmeEqu|EshI&dIn+OgOntO,OwnOz&U.2ElNNnyRna)RyTu*:D+tInLaxy~ yMePRa+Rba+Rd&Rl-Rm|SSpTeTh U+Ze3N $NiusN*Nt!Nu(e/u*2O,0AntFtGg!Ng RaffeRlVe_dAn)A*A[IdeImp'ObeOomOryO=OwUe_tDde[LdOdO'RillaSpelSsipV nWn_bA)A(AntApeA[Av.yEatE&IdIefItOc yOupOwUnt_rdE[IdeIltIt?N3M:B.IrLfMm M, NdPpyRb%RdRshR=,TVeWkZ?d3AdAl`ArtAvyD+hogIght~oLmetLpNRo3Dd&Gh~NtPRe/%y5BbyCkeyLdLeLiday~owMeNeyOdPeRnRr%R'Sp.$/TelUrV 5BGeM<Mb!M%Nd*dNgryNtRd!RryRtSb<d3Brid:1EOn0EaEntifyLe2N%e4LLeg$L}[0A+Ita>M&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryF<tFl-tF%mHa!H .Iti$Je@JuryMa>N Noc|PutQuiryS<eSe@SideSpi*/$lTa@T e,ToVe,V.eVol=3On0L<dOla>Sue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurE<Tob 0Or1FF Fi)T&2L1Ay0DI=Ymp-0It0CeEI#L(eLy1EnEraIn]Po'T]1An+B.Ch?dD D(?yG<I|Ig($Ph<0Tr-h0H 0Tdo%T TputTside0AlEnEr0NN 0Yg&0/ 0O}:CtDd!GeIrLa)LmNdaNelN-N` P RadeR|RkRrotRtySsT^ThTi|TrolTt nU'VeYm|3A)AnutArAs<tL-<NN$tyNcilOp!Pp Rfe@Rm.Rs#T2O}OtoRa'Ys-$0AnoCn-Ctu*E)GGe#~LotNkO} Pe/olT^Zza_)A}tA,-A>AyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOg<OtOwUsh0AllArtI!OkeOo`0A{AkeApIffOw0ApCc Ci$CkDaFtL?Ldi LidLut]L=Me#eNgOnRryRtUlUndUpUr)U`0A)A*Ati$AwnEakEci$EedEllEndH eI)Id IkeInIr.L.OilOns%O#OrtOtRayReadR(gY0Ua*UeezeUir*l_b!AdiumAffA+AirsAmpAndArtA>AyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NN<tNnisNtRm/Xt_nkAtEmeEnE%yE*EyIngIsOughtReeRi=RowUmbUnd 0CketDeG LtMb MeNyPRedSsueT!5A,BaccoDayDdl EGe` I!tK&MatoM%rowNeNgueNightOlO`PP-Pp!R^RnadoRtoi'SsT$Uri,W?dW WnY_{AdeAff-Ag-A(Ansf ApAshA=lAyEatEeEndI$IbeI{Igg ImIpOphyOub!U{UeUlyUmpetU,U`Y2BeIt]Mb!NaN}lRkeyRnRt!1El=EntyI)InI,O1PeP-$:5Ly5B*lla0Ab!Awa*C!Cov D DoFairFoldHappyIf%mIqueItIv 'KnownLo{TilUsu$Veil1Da>GradeHoldOnP Set1B<Ge0A+EEdEfulE![U$0Il.y:C<tCuumGueLidL!yL=NNishP%Rious/Ult3H-!L=tNd%Ntu*NueRbRifyRs]RyS'lT <3Ab!Br<tCiousCt%yDeoEw~a+Nta+Ol(Rtu$RusSaS.Su$T$Vid5C$I)IdLc<oLumeTeYa+:GeG#ItLk~LnutNtRfa*RmRri%ShSp/eT VeY3Al`Ap#ArA'lA` BDd(gEk&dIrdLcome/T_!AtEatEelEnE*IpIsp 0DeD`FeLd~NNdowNeNgNkNn Nt ReSdomSeShT}[5LfM<Nd OdOlRdRkRldRryR`_pE{E,!I,I>Ong::Rd3Ar~ow9UUngU`:3BraRo9NeO",Iq="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",DJ=null;class M0 extends OJ{constructor(){super("en",Kq,Iq)}static wordlist(){if(DJ==null)DJ=new M0;return DJ}}function wX($){return(1<<$)-1<<8-$&255}function Tq($){return(1<<$)-1&255}function KJ($,Q){if(u0("NFKD"),Q==null)Q=M0.wordlist();let J=Q.split($);D(J.length%3===0&&J.length>=12&&J.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*J.length/8)),X=0;for(let W=0;W<J.length;W++){let z=Q.getWordIndex(J[W].normalize("NFKD"));D(z>=0,`invalid mnemonic word at index ${W}`,"mnemonic","[ REDACTED ]");for(let O=0;O<11;O++){if(z&1<<10-O)Y[X>>3]|=1<<7-X%8;X++}}let Z=32*J.length/3,q=J.length/3,G=wX(q),M=E(O$(Y.slice(0,Z/8)))[0]&G;return D(M===(Y[Y.length-1]&G),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),N(Y.slice(0,Z/8))}function IJ($,Q){if(D($.length%4===0&&$.length>=16&&$.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),Q==null)Q=M0.wordlist();let J=[0],Y=11;for(let q=0;q<$.length;q++)if(Y>8)J[J.length-1]<<=8,J[J.length-1]|=$[q],Y-=8;else J[J.length-1]<<=Y,J[J.length-1]|=$[q]>>8-Y,J.push($[q]&Tq(8-Y)),Y+=3;let X=$.length/4,Z=parseInt(O$($).substring(2,4),16)&wX(X);return J[J.length-1]<<=X,J[J.length-1]|=Z>>8-X,Q.join(J.map((q)=>Q.getWord(q)))}var TJ={};class W0{phrase;password;wordlist;entropy;constructor($,Q,J,Y,X){if(Y==null)Y="";if(X==null)X=M0.wordlist();r$($,TJ,"Mnemonic"),a(this,{phrase:J,password:Y,wordlist:X,entropy:Q})}computeSeed(){let $=q$("mnemonic"+this.password,"NFKD");return S$(q$(this.phrase,"NFKD"),$,2048,64,"sha512")}static fromPhrase($,Q,J){let Y=KJ($,J);return $=IJ(E(Y),J),new W0(TJ,Y,$,Q,J)}static fromEntropy($,Q,J){let Y=E($,"entropy"),X=IJ(Y,J);return new W0(TJ,N(Y),X,Q,J)}static entropyToPhrase($,Q){let J=E($,"entropy");return IJ(J,Q)}static phraseToEntropy($,Q){return KJ($,Q)}static isValidMnemonic($,Q){try{return KJ($,Q),!0}catch(J){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var D$=function($,Q,J,Y){if(J==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?$!==Q||!Y:!Q.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?Y:J==="a"?Y.call($):Y?Y.value:Q.get($)},UJ=function($,Q,J,Y,X){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!X)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?$!==Q||!X:!Q.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?X.call($,J):X?X.value=J:Q.set($,J),J},GQ,f$,n$,Uq={16:10,24:12,32:14},Hq=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],_$=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],qQ=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],Rq=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],Lq=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],Nq=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],Cq=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],Eq=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],jq=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],Sq=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],Pq=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],wq=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],Bq=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Fq=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],Aq=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function HJ($){let Q=[];for(let J=0;J<$.length;J+=4)Q.push($[J]<<24|$[J+1]<<16|$[J+2]<<8|$[J+3]);return Q}class MQ{get key(){return D$(this,GQ,"f").slice()}constructor($){if(GQ.set(this,void 0),f$.set(this,void 0),n$.set(this,void 0),!(this instanceof MQ))throw Error("AES must be instanitated with `new`");UJ(this,GQ,new Uint8Array($),"f");let Q=Uq[this.key.length];if(Q==null)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");UJ(this,n$,[],"f"),UJ(this,f$,[],"f");for(let W=0;W<=Q;W++)D$(this,n$,"f").push([0,0,0,0]),D$(this,f$,"f").push([0,0,0,0]);let J=(Q+1)*4,Y=this.key.length/4,X=HJ(this.key),Z;for(let W=0;W<Y;W++)Z=W>>2,D$(this,n$,"f")[Z][W%4]=X[W],D$(this,f$,"f")[Q-Z][W%4]=X[W];let q=0,G=Y,M;while(G<J){if(M=X[Y-1],X[0]^=_$[M>>16&255]<<24^_$[M>>8&255]<<16^_$[M&255]<<8^_$[M>>24&255]^Hq[q]<<24,q+=1,Y!=8)for(let I=1;I<Y;I++)X[I]^=X[I-1];else{for(let I=1;I<Y/2;I++)X[I]^=X[I-1];M=X[Y/2-1],X[Y/2]^=_$[M&255]^_$[M>>8&255]<<8^_$[M>>16&255]<<16^_$[M>>24&255]<<24;for(let I=Y/2+1;I<Y;I++)X[I]^=X[I-1]}let W=0,z,O;while(W<Y&&G<J)z=G>>2,O=G%4,D$(this,n$,"f")[z][O]=X[W],D$(this,f$,"f")[Q-z][O]=X[W++],G++}for(let W=1;W<Q;W++)for(let z=0;z<4;z++)M=D$(this,f$,"f")[W][z],D$(this,f$,"f")[W][z]=wq[M>>24&255]^Bq[M>>16&255]^Fq[M>>8&255]^Aq[M&255]}encrypt($){if($.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let Q=D$(this,n$,"f").length-1,J=[0,0,0,0],Y=HJ($);for(let q=0;q<4;q++)Y[q]^=D$(this,n$,"f")[0][q];for(let q=1;q<Q;q++){for(let G=0;G<4;G++)J[G]=Rq[Y[G]>>24&255]^Lq[Y[(G+1)%4]>>16&255]^Nq[Y[(G+2)%4]>>8&255]^Cq[Y[(G+3)%4]&255]^D$(this,n$,"f")[q][G];Y=J.slice()}let X=new Uint8Array(16),Z=0;for(let q=0;q<4;q++)Z=D$(this,n$,"f")[Q][q],X[4*q]=(_$[Y[q]>>24&255]^Z>>24)&255,X[4*q+1]=(_$[Y[(q+1)%4]>>16&255]^Z>>16)&255,X[4*q+2]=(_$[Y[(q+2)%4]>>8&255]^Z>>8)&255,X[4*q+3]=(_$[Y[(q+3)%4]&255]^Z)&255;return X}decrypt($){if($.length!=16)throw TypeError("invalid ciphertext size (must be 16 bytes)");let Q=D$(this,f$,"f").length-1,J=[0,0,0,0],Y=HJ($);for(let q=0;q<4;q++)Y[q]^=D$(this,f$,"f")[0][q];for(let q=1;q<Q;q++){for(let G=0;G<4;G++)J[G]=Eq[Y[G]>>24&255]^jq[Y[(G+3)%4]>>16&255]^Sq[Y[(G+2)%4]>>8&255]^Pq[Y[(G+1)%4]&255]^D$(this,f$,"f")[q][G];Y=J.slice()}let X=new Uint8Array(16),Z=0;for(let q=0;q<4;q++)Z=D$(this,f$,"f")[Q][q],X[4*q]=(qQ[Y[q]>>24&255]^Z>>24)&255,X[4*q+1]=(qQ[Y[(q+3)%4]>>16&255]^Z>>16)&255,X[4*q+2]=(qQ[Y[(q+2)%4]>>8&255]^Z>>8)&255,X[4*q+3]=(qQ[Y[(q+1)%4]&255]^Z)&255;return X}}GQ=new WeakMap,f$=new WeakMap,n$=new WeakMap;class I8{constructor($,Q,J){if(J&&!(this instanceof J))throw Error(`${$} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new MQ(Q)},name:{enumerable:!0,value:$}})}}var WQ=function($,Q,J,Y,X){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!X)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?$!==Q||!X:!Q.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?X.call($,J):X?X.value=J:Q.set($,J),J},e0=function($,Q,J,Y){if(J==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?$!==Q||!Y:!Q.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?Y:J==="a"?Y.call($):Y?Y.value:Q.get($)},T8,z0;class U8 extends I8{constructor($,Q){super("ECC",$,U8);if(T8.set(this,void 0),z0.set(this,void 0),Q){if(Q.length%16)throw TypeError("invalid iv size (must be 16 bytes)");WQ(this,T8,new Uint8Array(Q),"f")}else WQ(this,T8,new Uint8Array(16),"f");WQ(this,z0,this.iv,"f")}get iv(){return new Uint8Array(e0(this,T8,"f"))}encrypt($){if($.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let Q=new Uint8Array($.length);for(let J=0;J<$.length;J+=16){for(let Y=0;Y<16;Y++)e0(this,z0,"f")[Y]^=$[J+Y];WQ(this,z0,this.aes.encrypt(e0(this,z0,"f")),"f"),Q.set(e0(this,z0,"f"),J)}return Q}decrypt($){if($.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let Q=new Uint8Array($.length);for(let J=0;J<$.length;J+=16){let Y=this.aes.decrypt($.subarray(J,J+16));for(let X=0;X<16;X++)Q[J+X]=Y[X]^e0(this,z0,"f")[X],e0(this,z0,"f")[X]=$[J+X]}return Q}}T8=new WeakMap,z0=new WeakMap;var $8=function($,Q,J,Y,X){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!X)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?$!==Q||!X:!Q.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?X.call($,J):X?X.value=J:Q.set($,J),J},b$=function($,Q,J,Y){if(J==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?$!==Q||!Y:!Q.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?Y:J==="a"?Y.call($):Y?Y.value:Q.get($)},H8,g0,x$;class L0 extends I8{constructor($,Q){super("CTR",$,L0);if(H8.set(this,void 0),g0.set(this,void 0),x$.set(this,void 0),$8(this,x$,new Uint8Array(16),"f"),b$(this,x$,"f").fill(0),$8(this,H8,b$(this,x$,"f"),"f"),$8(this,g0,16,"f"),Q==null)Q=1;if(typeof Q==="number")this.setCounterValue(Q);else this.setCounterBytes(Q)}get counter(){return new Uint8Array(b$(this,x$,"f"))}setCounterValue($){if(!Number.isInteger($)||$<0||$>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let Q=15;Q>=0;--Q)b$(this,x$,"f")[Q]=$%256,$=Math.floor($/256)}setCounterBytes($){if($.length!==16)throw TypeError("invalid counter initial Uint8Array value length");b$(this,x$,"f").set($)}increment(){for(let $=15;$>=0;$--)if(b$(this,x$,"f")[$]===255)b$(this,x$,"f")[$]=0;else{b$(this,x$,"f")[$]++;break}}encrypt($){var Q,J;let Y=new Uint8Array($);for(let X=0;X<Y.length;X++){if(b$(this,g0,"f")===16)$8(this,H8,this.aes.encrypt(b$(this,x$,"f")),"f"),$8(this,g0,0,"f"),this.increment();Y[X]^=b$(this,H8,"f")[$8(this,g0,(J=b$(this,g0,"f"),Q=J++,J),"f"),Q]}return Y}decrypt($){return this.encrypt($)}}H8=new WeakMap,g0=new WeakMap,x$=new WeakMap;function RJ($){if($.length<16)throw TypeError("PKCS#7 invalid length");let Q=$[$.length-1];if(Q>16)throw TypeError("PKCS#7 padding byte out of range");let J=$.length-Q;for(let Y=0;Y<Q;Y++)if($[J+Y]!==Q)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array($.subarray(0,J))}function LJ($){if(typeof $==="string"&&!$.startsWith("0x"))$="0x"+$;return g$($)}function Q8($,Q){$=String($);while($.length<Q)$="0"+$;return $}function y0($){if(typeof $==="string")return q$($,"NFKC");return g$($)}function Q$($,Q){let J=Q.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);D(J!=null,"invalid path","path",Q);let Y=J[1],X=J[3],Z=J[4]==="!",q=$;for(let G of Y.toLowerCase().split(".")){if(Array.isArray(q)){if(!G.match(/^[0-9]+$/))break;q=q[parseInt(G)]}else if(typeof q==="object"){let M=null;for(let W in q)if(W.toLowerCase()===G){M=q[W];break}q=M}else q=null;if(q==null)break}if(D(!Z||q!=null,"missing required value","path",Y),X&&q!=null){if(X==="int"){if(typeof q==="string"&&q.match(/^-?[0-9]+$/))return parseInt(q);else if(Number.isSafeInteger(q))return q}if(X==="number"){if(typeof q==="string"&&q.match(/^-?[0-9.]*$/))return parseFloat(q)}if(X==="data"){if(typeof q==="string")return LJ(q)}if(X==="array"&&Array.isArray(q))return q;if(X===typeof q)return q;D(!1,`wrong type found for ${X} `,"path",Y)}return q}var FX="m/44'/60'/0'/0/0";function VQ($){try{let Q=JSON.parse($);if((Q.version!=null?parseInt(Q.version):0)===3)return!0}catch(Q){}return!1}function kq($,Q,J){if(Q$($,"crypto.cipher:string")==="aes-128-ctr"){let X=Q$($,"crypto.cipherparams.iv:data!"),Z=new L0(Q,X);return N(Z.decrypt(J))}b(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function zQ($,Q){let J=E(Q),Y=Q$($,"crypto.ciphertext:data!"),X=N(o(d([J.slice(16,32),Y]))).substring(2);D(X===Q$($,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let Z=kq($,J.slice(0,16),Y),q=k$(Z);if($.address){let W=$.address.toLowerCase();if(!W.startsWith("0x"))W="0x"+W;D(c(W)===q,"keystore address/privateKey mismatch","address",$.address)}let G={address:q,privateKey:Z};if(Q$($,"x-ethers.version:string")==="0.1"){let W=J.slice(32,64),z=Q$($,"x-ethers.mnemonicCiphertext:data!"),O=Q$($,"x-ethers.mnemonicCounter:data!"),I=new L0(W,O);G.mnemonic={path:Q$($,"x-ethers.path:string")||FX,locale:Q$($,"x-ethers.locale:string")||"en",entropy:N(E(I.decrypt(z)))}}return G}function AX($){let Q=Q$($,"crypto.kdf:string");if(Q&&typeof Q==="string"){if(Q.toLowerCase()==="scrypt"){let J=Q$($,"crypto.kdfparams.salt:data!"),Y=Q$($,"crypto.kdfparams.n:int!"),X=Q$($,"crypto.kdfparams.r:int!"),Z=Q$($,"crypto.kdfparams.p:int!");D(Y>0&&(Y&Y-1)===0,"invalid kdf.N","kdf.N",Y),D(X>0&&Z>0,"invalid kdf","kdf",Q);let q=Q$($,"crypto.kdfparams.dklen:int!");return D(q===32,"invalid kdf.dklen","kdf.dflen",q),{name:"scrypt",salt:J,N:Y,r:X,p:Z,dkLen:64}}else if(Q.toLowerCase()==="pbkdf2"){let J=Q$($,"crypto.kdfparams.salt:data!"),Y=Q$($,"crypto.kdfparams.prf:string!"),X=Y.split("-").pop();D(X==="sha256"||X==="sha512","invalid kdf.pdf","kdf.pdf",Y);let Z=Q$($,"crypto.kdfparams.c:int!"),q=Q$($,"crypto.kdfparams.dklen:int!");return D(q===32,"invalid kdf.dklen","kdf.dklen",q),{name:"pbkdf2",salt:J,count:Z,dkLen:q,algorithm:X}}}D(!1,"unsupported key-derivation function","kdf",Q)}function NJ($,Q){let J=JSON.parse($),Y=y0(Q),X=AX(J);if(X.name==="pbkdf2"){let{salt:O,count:I,dkLen:P,algorithm:K}=X,U=S$(Y,O,I,P,K);return zQ(J,U)}b(X.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:X});let{salt:Z,N:q,r:G,p:M,dkLen:W}=X,z=J0(Y,Z,q,G,M,W);return zQ(J,z)}function BX($){return new Promise((Q)=>{setTimeout(()=>{Q()},$)})}async function CJ($,Q,J){let Y=JSON.parse($),X=y0(Q),Z=AX(Y);if(Z.name==="pbkdf2"){if(J)J(0),await BX(0);let{salt:I,count:P,dkLen:K,algorithm:U}=Z,R=S$(X,I,P,K,U);if(J)J(1),await BX(0);return zQ(Y,R)}b(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:q,N:G,r:M,p:W,dkLen:z}=Z,O=await Q0(X,q,G,M,W,z,J);return zQ(Y,O)}function kX($){let Q=$.salt!=null?E($.salt,"options.salt"):J$(32),J=131072,Y=8,X=1;if($.scrypt){if($.scrypt.N)J=$.scrypt.N;if($.scrypt.r)Y=$.scrypt.r;if($.scrypt.p)X=$.scrypt.p}return D(typeof J==="number"&&J>0&&Number.isSafeInteger(J)&&(BigInt(J)&BigInt(J-1))===BigInt(0),"invalid scrypt N parameter","options.N",J),D(typeof Y==="number"&&Y>0&&Number.isSafeInteger(Y),"invalid scrypt r parameter","options.r",Y),D(typeof X==="number"&&X>0&&Number.isSafeInteger(X),"invalid scrypt p parameter","options.p",X),{name:"scrypt",dkLen:32,salt:Q,N:J,r:Y,p:X}}function _X($,Q,J,Y){let X=E(J.privateKey,"privateKey"),Z=Y.iv!=null?E(Y.iv,"options.iv"):J$(16);D(Z.length===16,"invalid options.iv length","options.iv",Y.iv);let q=Y.uuid!=null?E(Y.uuid,"options.uuid"):J$(16);D(q.length===16,"invalid options.uuid length","options.uuid",Y.iv);let G=$.slice(0,16),M=$.slice(16,32),W=new L0(G,Z),z=E(W.encrypt(X)),O=o(d([M,z])),I={address:J.address.substring(2).toLowerCase(),id:v8(q),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:N(Z).substring(2)},ciphertext:N(z).substring(2),kdf:"scrypt",kdfparams:{salt:N(Q.salt).substring(2),n:Q.N,dklen:32,p:Q.p,r:Q.r},mac:O.substring(2)}};if(J.mnemonic){let P=Y.client!=null?Y.client:`ethers/${w8}`,K=J.mnemonic.path||FX,U=J.mnemonic.locale||"en",R=$.slice(32,64),V=E(J.mnemonic.entropy,"account.mnemonic.entropy"),T=J$(16),L=new L0(R,T),w=E(L.encrypt(V)),j=new Date,S="UTC--"+(j.getUTCFullYear()+"-"+Q8(j.getUTCMonth()+1,2)+"-"+Q8(j.getUTCDate(),2)+"T"+Q8(j.getUTCHours(),2)+"-"+Q8(j.getUTCMinutes(),2)+"-"+Q8(j.getUTCSeconds(),2)+".0Z")+"--"+I.address;I["x-ethers"]={client:P,gethFilename:S,path:K,locale:U,mnemonicCounter:N(T).substring(2),mnemonicCiphertext:N(w).substring(2),version:"0.1"}}return JSON.stringify(I)}function R8($,Q,J){if(J==null)J={};let Y=y0(Q),X=kX(J),Z=J0(Y,X.salt,X.N,X.r,X.p,64);return _X(E(Z),X,$,J)}async function L8($,Q,J){if(J==null)J={};let Y=y0(Q),X=kX(J),Z=await Q0(Y,X.salt,X.N,X.r,X.p,64,J.progressCallback);return _X(E(Z),X,$,J)}var OQ="m/44'/60'/0'/0/0",_q=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),N0=2147483648,fq=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),bq="0123456789abcdef";function DQ($,Q){let J="";while($)J=bq[$%16]+J,$=Math.trunc($/16);while(J.length<Q*2)J="0"+J;return"0x"+J}function EJ($){let Q=E($),J=p0(O$(O$(Q)),0,4),Y=d([Q,J]);return b8(Y)}var o$={};function fX($,Q,J,Y){let X=new Uint8Array(37);if($&N0)b(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),X.set(E(Y),1);else X.set(E(J));for(let q=24;q>=0;q-=8)X[33+(q>>3)]=$>>24-q&255;let Z=E(e$("sha512",Q,X));return{IL:Z.slice(0,32),IR:Z.slice(32)}}function bX($,Q){let J=Q.split("/");if(D(J.length>0,"invalid path","path",Q),J[0]==="m")D($.depth===0,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${$.depth}`,"path",Q),J.shift();let Y=$;for(let X=0;X<J.length;X++){let Z=J[X];if(Z.match(/^[0-9]+'$/)){let q=parseInt(Z.substring(0,Z.length-1));D(q<N0,"invalid path index",`path[${X}]`,Z),Y=Y.deriveChild(N0+q)}else if(Z.match(/^[0-9]+$/)){let q=parseInt(Z);D(q<N0,"invalid path index",`path[${X}]`,Z),Y=Y.deriveChild(q)}else D(!1,"invalid path component",`path[${X}]`,Z)}return Y}class L$ extends v0{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor($,Q,J,Y,X,Z,q,G,M){super(Q,M);r$($,o$,"HDNodeWallet"),a(this,{publicKey:Q.compressedPublicKey});let W=p0($0(O$(this.publicKey)),0,4);a(this,{parentFingerprint:J,fingerprint:W,chainCode:Y,path:X,index:Z,depth:q}),a(this,{mnemonic:G})}connect($){return new L$(o$,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,$)}#$(){let $={address:this.address,privateKey:this.privateKey},Q=this.mnemonic;if(this.path&&Q&&Q.wordlist.locale==="en"&&Q.password==="")$.mnemonic={path:this.path,locale:"en",entropy:Q.entropy};return $}async encrypt($,Q){return await L8(this.#$(),$,{progressCallback:Q})}encryptSync($){return R8(this.#$(),$)}get extendedKey(){return b(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),EJ(d(["0x0488ADE4",DQ(this.depth,1),this.parentFingerprint,DQ(this.index,4),this.chainCode,d(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new J8(o$,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild($){let Q=W$($,"index");D(Q<=4294967295,"invalid index","index",Q);let J=this.path;if(J){if(J+="/"+(Q&~N0),Q&N0)J+="'"}let{IR:Y,IL:X}=fX(Q,this.chainCode,this.publicKey,this.privateKey),Z=new e(y$((d0(X)+BigInt(this.privateKey))%fq,32));return new L$(o$,Z,this.fingerprint,N(Y),J,Q,this.depth+1,this.mnemonic,this.provider)}derivePath($){return bX(this,$)}static#Q($,Q){D(l$($),"invalid seed","seed","[REDACTED]");let J=E($,"seed");D(J.length>=16&&J.length<=64,"invalid seed","seed","[REDACTED]");let Y=E(e$("sha512",_q,J)),X=new e(N(Y.slice(0,32)));return new L$(o$,X,"0x00000000",N(Y.slice(32)),"m",0,0,Q,null)}static fromExtendedKey($){let Q=s(x8($));D(Q.length===82||EJ(Q.slice(0,78))===$,"invalid extended key","extendedKey","[ REDACTED ]");let J=Q[4],Y=N(Q.slice(5,9)),X=parseInt(N(Q.slice(9,13)).substring(2),16),Z=N(Q.slice(13,45)),q=Q.slice(45,78);switch(N(Q.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let G=N(q);return new J8(o$,k$(G),G,Y,Z,null,X,J,null)}case"0x0488ade4":case"0x04358394 ":if(q[0]!==0)break;return new L$(o$,new e(q.slice(1)),Y,Z,null,X,J,null,null)}D(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom($,Q,J){if($==null)$="";if(Q==null)Q=OQ;if(J==null)J=M0.wordlist();let Y=W0.fromEntropy(J$(16),$,J);return L$.#Q(Y.computeSeed(),Y).derivePath(Q)}static fromMnemonic($,Q){if(!Q)Q=OQ;return L$.#Q($.computeSeed(),$).derivePath(Q)}static fromPhrase($,Q,J,Y){if(Q==null)Q="";if(J==null)J=OQ;if(Y==null)Y=M0.wordlist();let X=W0.fromPhrase($,Q,Y);return L$.#Q(X.computeSeed(),X).derivePath(J)}static fromSeed($){return L$.#Q($,null)}}class J8 extends K8{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor($,Q,J,Y,X,Z,q,G,M){super(Q,M);r$($,o$,"HDNodeVoidWallet"),a(this,{publicKey:J});let W=p0($0(O$(J)),0,4);a(this,{publicKey:J,fingerprint:W,parentFingerprint:Y,chainCode:X,path:Z,index:q,depth:G})}connect($){return new J8(o$,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,$)}get extendedKey(){return b(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),EJ(d(["0x0488B21E",DQ(this.depth,1),this.parentFingerprint,DQ(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild($){let Q=W$($,"index");D(Q<=4294967295,"invalid index","index",Q);let J=this.path;if(J){if(J+="/"+(Q&~N0),Q&N0)J+="'"}let{IR:Y,IL:X}=fX(Q,this.chainCode,this.publicKey,null),Z=e.addPoints(X,this.publicKey,!0),q=k$(Z);return new J8(o$,q,Z,this.fingerprint,N(Y),J,Q,this.depth+1,this.provider)}derivePath($){return bX(this,$)}}function KQ($){try{if(JSON.parse($).encseed)return!0}catch(Q){}return!1}function IQ($,Q){let J=JSON.parse($),Y=y0(Q),X=c(Q$(J,"ethaddr:string!")),Z=LJ(Q$(J,"encseed:string!"));D(Z&&Z.length%16===0,"invalid encseed","json",$);let q=E(S$(Y,Y,2000,32,"sha256")).slice(0,16),G=Z.slice(0,16),M=Z.slice(16),W=new U8(q,G),z=RJ(E(W.decrypt(M))),O="";for(let I=0;I<z.length;I++)O+=String.fromCharCode(z[I]);return{address:X,privateKey:G0(O)}}function xX($){return new Promise((Q)=>{setTimeout(()=>{Q()},$)})}class v$ extends v0{constructor($,Q){if(typeof $==="string"&&!$.startsWith("0x"))$="0x"+$;let J=typeof $==="string"?new e($):$;super(J,Q)}connect($){return new v$(this.signingKey,$)}async encrypt($,Q){let J={address:this.address,privateKey:this.privateKey};return await L8(J,$,{progressCallback:Q})}encryptSync($){let Q={address:this.address,privateKey:this.privateKey};return R8(Q,$)}static#$($){if(D($,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in $&&$.mnemonic&&$.mnemonic.locale==="en"){let J=W0.fromEntropy($.mnemonic.entropy),Y=L$.fromMnemonic(J,$.mnemonic.path);if(Y.address===$.address&&Y.privateKey===$.privateKey)return Y;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let Q=new v$($.privateKey);return D(Q.address===$.address,"address/privateKey mismatch","json","[ REDACTED ]"),Q}static async fromEncryptedJson($,Q,J){let Y=null;if(VQ($))Y=await CJ($,Q,J);else if(KQ($)){if(J)J(0),await xX(0);if(Y=IQ($,Q),J)J(1),await xX(0)}return v$.#$(Y)}static fromEncryptedJsonSync($,Q){let J=null;if(VQ($))J=NJ($,Q);else if(KQ($))J=IQ($,Q);else D(!1,"invalid JSON wallet","json","[ REDACTED ]");return v$.#$(J)}static createRandom($){let Q=L$.createRandom();if($)return Q.connect($);return Q}static fromPhrase($,Q){let J=L$.fromPhrase($);if(Q)return J.connect(Q);return J}}var N8=($)=>`${$.slice(0,6)}...${$.slice(-4)}`,vq="genosdb/self-encrypt/v3",vX="aes-gcm-self-ssm-v3",gq="genosdb/envelope/v2",gX=2,yX=new Set(["sync","deltaSync","fullStateSync"]);function hX($,Q,J,Y=[]){let X=$,Z=Q,q=J,G=(Y||[]).map((F)=>{try{return c(F)}catch(_){return log.warn(`⚠️ SM: Invalid superadmin address skipped: ${N8(F)}`),null}}).filter(Boolean),M=null,W=X&&typeof X.getAddress==="function"?z():Promise.resolve();async function z(){if(X)M=c(await X.getAddress())}async function O(F){X=F,M=null,W=F&&typeof F.getAddress==="function"?z():Promise.resolve(),await W}async function I(){return W}function P(F){let _=(k)=>k&&typeof k==="object"&&!Array.isArray(k)?Object.keys(k).sort().reduce((H,B)=>(H[B]=_(k[B]),H),{}):Array.isArray(k)?k.map(_):k;return JSON.stringify(_(F))}function K(F){if(!F?.signature||!F?.originEthAddress||!F?.originUser)return{ok:!1,reason:"missing-fields"};let _;try{if(_=c(F.originEthAddress),c(F.originUser)!==_)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:k,originEthAddress:H,base:B,...f}=F,g=P(f);try{let y=V8(q$(g),k);if(c(y)!==_)return{ok:!1,reason:"invalid-signature"};let{originUser:u,...t}=f;return{ok:!0,normalizedOriginEthAddress:_,payload:B===void 0?t:{...t,base:B}}}catch(y){return{ok:!1,reason:"verify-error",error:y}}}let U=(F)=>X.signMessage(q$(P(F)));function R(F,_){try{return c(V8(q$(P(F)),_))}catch{return null}}async function V(F){if(await I(),!X||!M)return log.warn("⚠️ SM: Cannot sign outgoing operations; no active signer session."),[];let _=M,k=[];for(let H of F){if(yX.has(H?.type)||H?.signature&&H?.originEthAddress&&H?.originUser){k.push(H);continue}let{base:B,...f}=H,g={...f,originUser:_},y=P(g);try{let u=await X.signMessage(q$(y));k.push({...H,originUser:_,originEthAddress:_,signature:u})}catch(u){log.error(`❌ SM: Failed to sign operation for ${N8(_)}:`,u.message)}}return k}async function T(F){let _=[],k="guest";for(let H of F){let B,f;if(yX.has(H.type)){_.push(H);continue}{let E$=K(H);if(!E$.ok){log.warn("⚠️ SM: Operación firmada inválida:",E$.reason);continue}B=E$.normalizedOriginEthAddress,f=E$.payload}let g;if(G.includes(B))g="superadmin";else{let c$=(await Z.get(`user:${B}`)).result?.value;if(g=c$?.role||"guest",c$?.expiresAt&&new Date(c$.expiresAt).getTime()<Date.now())g="guest"}let y=f.type,u=q.mapChangeTypeToAction(y,f),t={...f,signer:B,originUser:H.originUser,originEthAddress:H.originEthAddress,signature:H.signature};if(y==="upsert"&&f.id===`user:${B}`&&!(await Z.get(f.id)).result){_.push(t);continue}let{role:M$,ethAddress:B$}=f.value??{};if(M$==="superadmin"&&!G.includes(c(B$??""))){log.warn(`⚠️ SM: [POLICY] ${N8(B)} tried to assign superadmin to ${N8(B$)}. Blocked.`);continue}if(q.can(g,u))_.push(t);else log.warn(`⚠️ SM: ${N8(B)} (role: ${g}) DENIED ${u}`,f)}return{validatedOperations:_}}async function L(F){if(await I(),!X)throw Error("\uD83D\uDEE1️ SM Encrypt: User session (signer) required for encryption.");try{let _=await j(),k=Z.encode(F),H=Z.pako.deflate(k),B=J$(12),f=await crypto.subtle.encrypt({name:"AES-GCM",iv:B},_,H);return JSON.stringify({iv:N(B),encrypted:N(new Uint8Array(f)),type:vX})}catch(_){throw log.error("\uD83D\uDEE1️ SM: Error in encryptDataForCurrentUser:",_),Error("\uD83D\uDEE1️ SM: Failed to encrypt personal data.")}}async function w(F){if(await I(),!X)throw Error("\uD83D\uDEE1️ SM Decrypt: User session (signer) required for decryption.");let _;try{_=JSON.parse(F)}catch{throw Error("\uD83D\uDEE1️ SM Decrypt: encryptedString is not valid JSON.")}if(_.type!==vX)throw Error("\uD83D\uDEE1️ SM Decrypt: Unsupported encryption type or incorrect version.");if(!_.iv||!_.encrypted)throw Error("\uD83D\uDEE1️ SM Decrypt: Invalid encrypted data format.");try{let k=E(_.iv),H=E(_.encrypted),B=await j(),f=await crypto.subtle.decrypt({name:"AES-GCM",iv:k},B,H),g=Z.pako.inflate(new Uint8Array(f));return Z.decode(g)}catch(k){throw log.error("\uD83D\uDEE1️ SM: Error in decryptDataForCurrentUser:",k),Error("\uD83D\uDEE1️ SM: Failed to decrypt personal data.")}}async function j(){let F=await crypto.subtle.importKey("raw",E(X.privateKey),"HKDF",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"HKDF",hash:"SHA-256",salt:new Uint8Array,info:q$(vq)},F,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}let C=async(F,_,k)=>crypto.subtle.deriveKey({name:"HKDF",hash:"SHA-256",salt:new Uint8Array,info:E(d([q$(gq),_,k]))},await crypto.subtle.importKey("raw",E(F).slice(1,33),"HKDF",!1,["deriveKey"]),{name:"AES-GCM",length:256},!1,["encrypt","decrypt"]);async function S(F,_,k){if(k$(F)!==k)throw Error("\uD83D\uDEE1️ SM Envelope: public key does not match the address.");let H=new e(N(J$(32))),B=e.computePublicKey(F,!0),f=await C(H.computeSharedSecret(F),H.compressedPublicKey,B),g=J$(12),y=await crypto.subtle.encrypt({name:"AES-GCM",iv:g},f,_);return{v:gX,p:H.compressedPublicKey,i:N(g),c:N(new Uint8Array(y)),r:B}}async function A(F){if(await I(),!X)throw Error("\uD83D\uDEE1️ SM Envelope: user session required.");if(!F)throw Error("\uD83D\uDEE1️ SM Envelope: no envelope for this user.");if(F.v!==gX)throw Error("\uD83D\uDEE1️ SM Envelope: sealed before 0.36.0 — re-save the record.");let _=await C(X.signingKey.computeSharedSecret(F.p),F.p,X.signingKey.compressedPublicKey),k=await crypto.subtle.decrypt({name:"AES-GCM",iv:E(F.i)},_,E(F.c));return new Uint8Array(k)}async function x(F,_){let k=await crypto.subtle.importKey("raw",_,{name:"AES-GCM"},!1,["encrypt"]),H=J$(12),B=await crypto.subtle.encrypt({name:"AES-GCM",iv:H},k,Z.pako.deflate(Z.encode(F)));return{iv:N(H),encrypted:N(new Uint8Array(B))}}async function v(F,_,k){let H=await crypto.subtle.importKey("raw",k,{name:"AES-GCM"},!1,["decrypt"]),B=await crypto.subtle.decrypt({name:"AES-GCM",iv:E(_)},H,E(F));return Z.decode(Z.pako.inflate(new Uint8Array(B)))}return{get localUserEthAddress(){return M},updateSigner:O,get publicKey(){return X?.signingKey?.compressedPublicKey??null},wrapKeyFor:S,unwrapKey:A,sealWithKey:x,openWithKey:v,signOutgoingOperations:V,verifyIncomingOperations:T,recoverAuthor:R,signValue:U,encryptDataForCurrentUser:L,decryptDataForCurrentUser:w}}var TQ="gdb_ethereum_material_encrypted_webauthn_v3",UQ="gdb_webauthn_registration_details_v3",HQ="gdb_webauthn_session_secret_v3",mX=new TextEncoder().encode("genosdb/webauthn/prf/v1"),yq=new TextEncoder().encode("genosdb/webauthn/wrap/v3"),hq=($)=>`${$.slice(0,6)}...${$.slice(-4)}`;function C0($){if(!($ instanceof ArrayBuffer))if($.buffer&&$.buffer instanceof ArrayBuffer)$=$.buffer.slice($.byteOffset,$.byteOffset+$.byteLength);else throw log.error("❌ SM: arrayBufferToBase64Url input is not ArrayBuffer nor TypedArray with .buffer",$),Error("arrayBufferToBase64Url: ArrayBuffer or TypedArray required.");return btoa(String.fromCharCode(...new Uint8Array($))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function C8($){let Q=$.replace(/-/g,"+").replace(/_/g,"/"),J=atob(Q),Y=new ArrayBuffer(J.length),X=new Uint8Array(Y);for(let Z=0;Z<J.length;Z++)X[Z]=J.charCodeAt(Z);return Y}function cX(){let $=null,Q=null,J=null,Y=null,X=!0;async function Z(){let C=v$.createRandom();return J=C.mnemonic.phrase,log.info("\uD83D\uDEE1️ SM: New Ethereum identity generated (mnemonic and private key in memory)."),{address:await C.getAddress(),mnemonic:J,privateKey:C.privateKey}}async function q(C,S){let A=J$(12),x=E(C),v=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:A},S,x);return JSON.stringify({iv:C0(A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength)),ciphertext:C0(v)})}async function G(C,S){let{iv:A,ciphertext:x}=JSON.parse(C),v=C8(A),m=C8(x),F=await window.crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(v)},S,m);return N(new Uint8Array(F))}async function M(C,S){let A=await window.crypto.subtle.importKey("raw",S,"HKDF",!1,["deriveKey"]);return window.crypto.subtle.deriveKey({name:"HKDF",hash:"SHA-256",salt:C,info:yq},A,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}async function W(C,S){let A=localStorage.getItem(TQ);if(!A)return log.warn("⚠️ SM (_loadAndDecrypt): No encrypted Ethereum material found."),V(),null;try{let x=await M(C,S),v=await G(A,x),m=new v$(v);return $=m,Q=await m.getAddress(),J=null,Y=C,log.info(`✅ SM (_loadAndDecrypt): Session established for ${hq(Q)}`),Q}catch(x){return log.error("❌ SM (_loadAndDecrypt): Error (decryption/wallet loading):",x),V(),null}}async function z(C){let S=J$(32),A=await window.navigator.credentials.get({publicKey:{challenge:S,allowCredentials:[{type:"public-key",id:C}],userVerification:"required",timeout:60000,extensions:{prf:{eval:{first:mX}}}}});if(!A?.rawId||!A.response?.signature)throw Error("❌ WebAuthn authentication failed or was canceled.");if(C0(A.rawId)!==C0(C))throw Error("❌ WebAuthn credential ID in assertion does not match stored ID.");if(JSON.parse(new TextDecoder().decode(A.response.clientDataJSON)).challenge!==C0(S))throw Error("❌ WebAuthn assertion challenge mismatch.");return A.getClientExtensionResults?.().prf?.results?.first}async function O(C){if(!window.navigator.credentials||!window.navigator.credentials.create)return log.error("❌ SM: WebAuthn is not supported by this browser."),alert("WebAuthn is not supported by this browser."),!1;let S=J$(32);try{let A=E(e.computePublicKey(C,!1)),x=E(o(A)).slice(0,64),v=new v$(C).address.slice(0,10),m=await window.navigator.credentials.create({publicKey:{challenge:S,rp:{name:"GDB WebAuthn App",id:window.location.hostname},user:{id:x,name:`user-${v}`,displayName:"GDB User"},pubKeyCredParams:[{type:"public-key",alg:-7},{type:"public-key",alg:-257}],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"required",residentKey:"preferred",requireResidentKey:!1},timeout:60000,attestation:"none",extensions:{prf:{eval:{first:mX}}}}});if(!m?.rawId)throw Error("❌ WebAuthn registration failed or was canceled (no credential).");let F=m.rawId,_=m.getClientExtensionResults?.().prf??{},k=_.results?.first??(_.enabled?await z(F):void 0);if(!k)throw Error("❌ WebAuthn: this authenticator has no PRF — a passkey cannot protect the key here; the session stays mnemonic-only.");let H=await M(F,k);if(localStorage.setItem(TQ,await q(C,H)),localStorage.setItem(UQ,JSON.stringify({credentialIdBase64Url:C0(F)})),X)sessionStorage.setItem(HQ,C0(k));return log.info("\uD83D\uDEE1️ SM: WebAuthn registered and Ethereum key encrypted and saved."),await W(F,k)}catch(A){return log.error("❌ SM: Error during WebAuthn registration:",A),V(),localStorage.removeItem(TQ),localStorage.removeItem(UQ),alert(`❌ WebAuthn registration error: ${A.message||"Unknown. Check console."}`),!1}}let I=()=>{try{return JSON.parse(localStorage.getItem(UQ))}catch{return null}};async function P(){if(!window.navigator.credentials||!window.navigator.credentials.get)return log.error("❌ SM: WebAuthn is not supported."),alert("WebAuthn is not supported by this browser."),null;let C=I();if(!C?.credentialIdBase64Url)return log.warn("⚠️ SM: No WebAuthn registration details saved."),null;let S=C8(C.credentialIdBase64Url);try{let A=await z(S);if(!A)throw Error("❌ WebAuthn: this credential yielded no PRF secret.");if(X)sessionStorage.setItem(HQ,C0(A));return log.info("\uD83D\uDEE1️ SM: Interactive WebAuthn assertion received and validated."),await W(S,A)}catch(A){return log.error("❌ SM: Error during interactive WebAuthn login:",A),V(),null}}async function K(){let C=I();if(!C?.credentialIdBase64Url)return log.warn("⚠️ SM Silent Login: No WebAuthn registration details."),null;let S=sessionStorage.getItem(HQ);if(!S)return log.info("\uD83D\uDEE1️ SM Silent Login: a new session needs the authenticator."),null;try{return await W(C8(C.credentialIdBase64Url),C8(S))}catch(A){return log.error("❌ SM Silent Login: Error during silent login attempt:",A),V(),null}}async function U(C){try{let S=v$.fromPhrase(C);return $=S,Q=await S.getAddress(),J=C,Y=null,{address:Q,privateKey:S.privateKey,mnemonic:J}}catch(S){return log.error("❌ SM: Error loading wallet from mnemonic:",S),V(),null}}function R(){return localStorage.getItem(UQ)!==null&&localStorage.getItem(TQ)!==null}function V(){sessionStorage.removeItem(HQ),$=null,Q=null,J=null,Y=null}function T(){return $}function L(){return Q}function w(){if(J&&!Y)return J;return null}function j(){return!!($&&Y)}return{createNewEthereumIdentity:Z,registerAndProtectWithWebAuthn:O,loginWithWebAuthn:P,trySilentWebAuthnLogin:K,loadWalletFromMnemonic:U,hasWebAuthnRegistration:R,logout:V,getSigner:T,getAddress:L,getMnemonicForDisplay:w,isSessionWebAuthnProtected:j,set resume(C){X=C}}}var jJ=Math.PI/180,uX=($)=>Math.sin($*jJ/2)**2,mq=new Intl.Collator().compare,E8={$eq:($,Q)=>$===Q,$ne:($,Q)=>$!==Q,$gt:($,Q)=>$>Q,$gte:($,Q)=>$>=Q,$lt:($,Q)=>$<Q,$lte:($,Q)=>$<=Q,$in:($,Q)=>Array.isArray(Q)&&(Array.isArray($)?$.some((J)=>Q.includes(J)):Q.includes($)),$between:($,[Q,J])=>$>=Q&&$<=J,$near:($,{latitude:Q,longitude:J,radius:Y})=>{let X=$?.value??$,Z=X?.latitude??X?.location?.latitude,q=X?.longitude??X?.location?.longitude;return[Z,q,Q,J,Y].every(Number.isFinite)&&uX(Z-Q)+Math.cos(Q*jJ)*Math.cos(Z*jJ)*uX(q-J)<=Math.sin(Math.min(Y/12742,Math.PI/2))**2},$exists:($,Q)=>Q?$!==void 0:$===void 0,$startsWith:($,Q)=>typeof $==="string"&&$.startsWith(Q),$endsWith:($,Q)=>typeof $==="string"&&$.endsWith(Q),$contains:($,Q)=>typeof $==="string"&&$.includes(Q),$text:{global:($,Q)=>{let J=(X)=>String(X).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=J(Q);return Object.values($).some((X)=>typeof X==="object"?null.fieldSearch(X,Y):J(X).includes(Y))},field:($,Q)=>{let J=(X)=>String(X).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=J(Q);return Array.isArray($)?$.some((X)=>J(X).includes(Y)):J($).includes(Y)}},$like:($,Q)=>typeof $==="string"&&typeof Q==="string"&&new RegExp(`^${Q.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test($),$regex:($,Q)=>typeof $==="string"&&new RegExp(Q.$regex||Q,"i").test($),$and:($,Q,J)=>Q.every((Y)=>J.createFilter(Y,J.allNodes)($)),$or:($,Q,J)=>Q.some((Y)=>J.createFilter(Y,J.allNodes)($)),$not:($,Q,J)=>!J.createFilter(Q,J.allNodes)($),$edge:($,Q,J)=>{if(!$.edges?.length||typeof Q!=="object"||Q===null)return!1;let Y=J.createFilter(Q,J.allNodes),X=[...$.edges],Z=new Set(X).add($.id),q=[];while(X.length){let G=X.shift(),M=J.allNodes[G];if(!M)continue;if(Y(M))q.push(M);M.edges?.forEach((W)=>!Z.has(W)&&Z.add(W)&&X.push(W))}if(q.length)$._edgeResult=q;return q.length>0}},SJ=($,Q)=>Q.split(".").reduce((J,Y)=>J&&typeof J==="object"&&(Y in J)?J[Y]:void 0,$),RQ=($,Q)=>{if(Object.keys($).length===0)return()=>!0;return(J)=>Object.entries($).every(([Y,X])=>{if(Y.startsWith("$"))return E8[Y](J,X,{createFilter:RQ,allNodes:Q});let Z=SJ(J.value,Y);if(Z===void 0)Z=SJ(J,Y);if(X instanceof RegExp)return X.test(String(Z));if(typeof X!=="object"||X===null)return E8.$eq(Z,X);return Object.entries(X).every(([q,G])=>{if(q==="$text")return E8.$text.field(Z,G);if(q==="$between"&&G.every((M)=>M instanceof Date))return E8.$between(new Date(Z),G);return E8[q]?.(Z,G,{createFilter:RQ,allNodes:Q})??!1})})},pX=($,Q)=>{let{$edge:J,...Y}=Q.query||{},X=RQ(Y,$),Z=Object.values($).filter(X),G=[...J?(()=>{let M=RQ({$edge:J},$);Z.forEach((z)=>M(z));let W=new Map;return Z.forEach((z)=>{if(z._edgeResult)z._edgeResult.forEach((O)=>W.set(O.id,O)),delete z._edgeResult}),Array.from(W.values())})():Z];if(Q.field){let M=Q.order==="asc"?1:-1,W=G.map((z)=>[SJ(z.value,Q.field),z]);W.sort(([z,O],[I,P])=>((typeof z==="string"&&typeof I==="string"?mq(z,I):(z??0)-(I??0))||(O.id<P.id?-1:1))*M),G=W.map(([,z])=>z)}if(Q.$after){let M=G.findIndex((W)=>W.id===Q.$after);G=M>=0?G.slice(M+1):[]}if(Q.$before){let M=G.findIndex((W)=>W.id===Q.$before);G=M>=0?G.slice(0,M):[]}if(Q.$limit)G=G.slice(0,Q.$limit);return G.map((M)=>({...M,edges:(M.edges??[]).filter((W)=>Object.hasOwn($,W))}))};var E0=($)=>`${$.slice(0,6)}...${$.slice(-4)}`,BJ={superadmin:{can:["assignRole","deleteAny"],inherits:["admin"]},admin:{can:["delete"],inherits:["manager"]},manager:{can:["publish"],inherits:["user"]},user:{can:["write","link","sync"],inherits:["guest"]},guest:{can:["read","sync"]}},i$="gdb_sm_last_session_was_webauthn";function cq($){if(typeof $!=="object"||$===null||Array.isArray($))throw Error("\uD83D\uDEE1️ SM: Custom roles must be a valid object.");BJ=$,log.info("\uD83D\uDEE1️ SM: Custom roles set.")}function j8($,Q,J=new Set){let Y=BJ;if(!$||!Y[$])return!1;if(J.has($))return log.warn(`⚠️ SM: Inheritance loop detected involving role '${$}'.`),!1;if(J.add($),Y[$].can&&Y[$].can.includes(Q))return J.delete($),!0;if(Y[$].inherits&&Array.isArray(Y[$].inherits)){if(Y[$].inherits.some((X)=>j8(X,Q,new Set(J))))return J.delete($),!0}return J.delete($),!1}function uq($,Q={}){if($==="upsert")return"write";if($==="remove")return"delete";if($==="link")return"link";if($==="unlink")return"link";if($==="sync"||$==="syncReceive"||$==="deltaSync")return"sync";return log.warn(`⚠️ SM mapChangeTypeToAction: Unknown change type '${$}'.`),"unknown"}var X$=null,Z$=null,r=cX(),PJ=[],H$=!1,NQ=new Set,N$=null,m$=!1,CQ=null,EQ=null;function iz($){if(typeof $==="function")CQ=$,C$();else if($===null)CQ=null;else log.warn("⚠️ SM: Attempted to set invalid state change callback.")}function rz($){if(typeof $==="function")EQ=$,C$();else if($===null)EQ=null;else log.warn("⚠️ SM: Attempted to set invalid governance state change callback.")}function C$(){if(CQ)CQ({isActive:H$,activeAddress:Z$?.localUserEthAddress||r.getAddress(),abbrAddr:E0(Z$?.localUserEthAddress||r.getAddress()||"N/A"),isWebAuthnProtected:m$,hasVolatileIdentity:!!N$,hasWebAuthnHardwareRegistration:r.hasWebAuthnRegistration()});if(EQ)EQ({isActive:H$,activeAddress:Z$?.localUserEthAddress||r.getAddress()})}async function az(){if(H$)await SQ();r.logout(),N$=null,m$=!1,localStorage.removeItem(i$);try{let $=await r.createNewEthereumIdentity();if($)N$=$;return C$(),$}catch($){throw N$=null,C$(),$}}async function sz($){let Q=$||N$?.privateKey;if(!Q)return alert("\uD83D\uDEE1️ SM Error: No volatile ETH identity to protect."),null;if(H$&&m$&&Z$?.signer)return Z$.localUserEthAddress;if(H$)await SQ();r.logout();let J=await r.registerAndProtectWithWebAuthn(Q);if(J&&r.getSigner()){if(N$=null,m$=!0,localStorage.setItem(i$,"true"),X$)await jQ(r.getSigner(),{method:"WebAuthn"});else log.warn("⚠️ SM: Identity protected, but GDB not configured. Global SM signing not active.");return J}else return m$=!1,localStorage.removeItem(i$),C$(),null}async function tz(){if(H$)await SQ();r.logout(),N$=null;let $=await r.loginWithWebAuthn();if($&&r.getSigner()){if(m$=!0,localStorage.setItem(i$,"true"),X$)await jQ(r.getSigner(),{method:"silent WebAuthn"});else log.warn("⚠️ SM: WebAuthn login OK, but GDB not configured for full security activation.");return $}else return m$=!1,localStorage.removeItem(i$),C$(),null}async function ez($){if(H$)await SQ();r.logout(),N$=null;let Q=await r.loadWalletFromMnemonic($);if(Q&&Q.address&&r.getSigner()){if(N$=Q,m$=!1,localStorage.removeItem(i$),X$)await jQ(r.getSigner(),{method:"mnemonic"});else log.warn("⚠️ SM: Mnemonic loaded, but GDB not configured for full security activation.");return N$}else return C$(),null}var pq=($,Q,J)=>{let Y=(V)=>J.graph.get(V),X=new Map,Z=(V,T)=>{if(X.size>4096)X.clear();let L=T+JSON.stringify(V);if(!X.has(L))X.set(L,$.recoverAuthor(V,T));return X.get(L)},q=(V)=>V?.owner??V?._meta?.owner,G=(V)=>/^(?:SM_ID_PREFIX_)?(0x[0-9a-fA-F]{40}):/.exec(V)?.[1],M=(V)=>typeof V==="string"&&V.startsWith("user:"),W=(V,T,L)=>V===T||["write","delete"].includes(L?.[V]),z=(V,T,L)=>V===T||L?.[V]==="delete",O=(V,T)=>V.physical-T.physical||V.logical-T.logical,I=({type:V,id:T,sourceId:L,targetId:w,edges:j,value:C,timestamp:S,originUser:A})=>L?{type:V,sourceId:L,targetId:w,edges:j,timestamp:S,originUser:A}:{type:V,id:T,value:C,timestamp:S,originUser:A},P=(V)=>{if(Q.includes(V))return"superadmin";let T=Y(`user:${V}`)?.value;if(!T?.role)return"guest";return T.expiresAt&&new Date(T.expiresAt).getTime()<Date.now()?"guest":T.role},K=(V,T)=>!!V?.sig&&Q.includes(V.author)&&Z({type:"upsert",id:T,value:V.value,timestamp:V.ts,originUser:V.author},V.sig)===V.author,U=(V)=>V?.meta?.role??(V?.meta&&{...V.meta,ts:V.meta.ts??V.timestamp}),R=(V,T)=>{let L=U(V);return K(L,T)?L:void 0};return{op(V,T){if(!V?.signature)return!1;let L=Z(I(V),V.signature);if(!L||L!==V.originUser)return!1;let w=V.sourceId??V.id,j=V.type==="remove"?"delete":V.sourceId?"link":"write";if(M(w)){let A=R(T,w);if(Q.includes(L))return!A||O(V.timestamp,A.ts)>0;if(j!=="write"||L!==w.slice(5))return!1;if(T&&!j8(P(L),"write"))return!1;let{role:x="guest",expiresAt:v=null}=A?.value??{},m=V.value??{};return m.role===x&&(m.expiresAt??null)===v}if(!j8(P(L),j))return!1;let C=q(T?.value)??G(w);if(C)return(j==="delete"?z:W)(L,C,T?.value?.collaborators);let S=q(V.value);return!S||L===S},opOf(V,T){let L=T.meta??{},w=(j)=>({type:"upsert",id:V,value:j.value??T.value,timestamp:j.ts??T.timestamp,originUser:j.author,originEthAddress:j.author,signature:j.sig});return L.role?[w(L.role),w(L)]:[w(L)]},edgeOf(V,T){let L=T.meta?.edges;return L?{type:L.type,sourceId:V,targetId:L.targetId,edges:T.edges??[],timestamp:L.ts,originUser:L.author,originEthAddress:L.author,signature:L.sig}:null},edgeReceipt(V){if(!V?.signature||!Array.isArray(V.edges))return null;return{author:Z(I(V),V.signature),sig:V.signature,ts:V.timestamp,type:V.type,targetId:V.targetId}},edges(V,T,L){let w=T.meta?.edges,j=L.meta?.edges;if(!w||j&&O(j.ts,w.ts)>=0)return null;let C=this.edgeOf(V,T);return this.op(C,L)?C:null},describe(V,T){let L=V?.signature&&Z(I(V),V.signature);if(!L)return"unsigned or invalid signature";return`${L} as ${P(L)}, owner ${q(T?.value)??G(V.sourceId??V.id)??"none"}`},receipt(V,T,L){if(!V?.signature)return null;let w=Z(I(V),V.signature),j={author:w,sig:V.signature,ts:V.timestamp};if(L.meta?.edges)j.edges=L.meta.edges;if(M(V.id)){if(j.value=V.value,!Q.includes(w)){let C=R(T,V.id);if(C)j.role=C}}return j}}};async function lq($,Q={}){if(!$){log.error("❌ SM: GDB instance is required.");return}X$=$,PJ=((Q.superAdmins??[])||[]).map((q)=>{try{return c(q)}catch(G){return log.warn(`⚠️ SM: Invalid superadmin address skipped: ${E0(q)}`),null}}).filter(Boolean);let Y=PJ;if(!Y.length)log.warn("⚠️ SM: superAdmins is empty — only a superadmin's signed write sets a role, so no identity can be promoted; open the base role in customRoles if guests should write.");let X=hX(null,$,{can:j8,mapChangeTypeToAction:uq},Y);Z$=X,$.use(async function(G){let{validatedOperations:M}=await X.verifyIncomingOperations(G);return M||[]}),$.setSyncAuthGate?.(pq(X,Y,$)),NQ.add({db:$,ssm:X,superAdmins:Y}),log.info("\uD83D\uDEE1️ SM: Security context established and middleware registered.");let Z=Q.resume??!0;if(r.resume=Z,Z&&localStorage.getItem(i$)==="true"&&r.hasWebAuthnRegistration()){log.info("\uD83D\uDEE1️ SM: Previous WebAuthn session detected. Attempting silent login...");try{let q=await r.trySilentWebAuthnLogin();if(q&&r.getSigner())m$=!0,await jQ(r.getSigner()),log.info(`\uD83D\uDEE1️ SM: Silent WebAuthn login successful for ${E0(q)}.`);else log.warn("⚠️ SM: Silent WebAuthn login failed or no signer obtained. Manual login required."),localStorage.removeItem(i$),C$()}catch(q){log.error("❌ SM: Error during silent WebAuthn login attempt:",q),localStorage.removeItem(i$),C$()}}else C$();if(Q.customRoles)cq(Q.customRoles);if(Q.acls){log.info("\uD83D\uDEE1️ SM: ACLS options activated.");try{(await import(new URL("./sm-acls.min.js",import.meta.url).href)).start(X$,Q,Z$)}catch(q){log.error("❌ SM: Failed to load or start the ACLS module.",q)}}if(Q.governanceRules)try{(await import(new URL("./sm-gov.min.js",import.meta.url).href)).start(X$,Q)}catch(q){log.error("❌ SM: Failed to load or start the governance module.",q)}}var dq=async($,Q)=>{let{results:J}=await $.map({realtime:!1}),Y=(Z)=>(Z.value?.owner??Z.value?._meta?.owner)===Q,X=J.filter((Z)=>!Z.meta&&Y(Z)).map(({id:Z,value:q,timestamp:G})=>({type:"upsert",id:Z,value:q,timestamp:G}));for(let Z of J.filter((q)=>q.edges?.length&&!q.meta?.edges&&Y(q)))$.link(Z.id,Z.edges.at(-1));if(!X.length)return;log.info(`\uD83D\uDD0F SM: re-signing ${X.length} node(s) whose receipt was lost.`),await $.syncChannel.send(X)},nq=async({db:$,ssm:Q,superAdmins:J},Y,X)=>{await Q.updateSigner(Y);let Z=Q.localUserEthAddress,{syncChannel:q}=$??{};if(q?.send&&!q._originalSendBySM)q._originalSendBySM=q.send.bind(q),q.send=async(G)=>{let M=await Q.signOutgoingOperations(G);return $.captureProvenance?.(M),q._originalSendBySM(M)};dq($,Z).catch((G)=>log.warn("⚠️ SM: could not re-sign own nodes:",G.message));try{let G=Y.signingKey?.compressedPublicKey,{result:M}=await $.get(`user:${Z}`);if(!M)X.role=J.includes(Z)?"superadmin":"guest",X.status="New user.",await $.put({ethAddress:Z,role:X.role,...G&&{pub:G}},`user:${Z}`);else if(X.role=M.value.role||"unknown",G&&!M.value.pub)await $.put({...M.value,pub:G},`user:${Z}`);q?.send?.([{type:"sync",timestamp:null}])}catch(G){log.error(`❌ SM: User node check failed for ${Z}: ${G}`)}return Z},jQ=async($,Q={})=>{if(!NQ.size||!$)return log.error("❌ SM: GDB, SSM, or signer missing."),H$=!1,C$(),!1;let J={role:"unknown",status:"Existing user."},Y=null;for(let Z of NQ)try{Y=await nq(Z,$,J)}catch(q){return log.error("❌ SM: updateSigner failed:",q),H$=!1,C$(),!1}H$=!0,C$();let X=Q.method?` via ${Q.method}`:"";return log.info(`\uD83D\uDEE1️\uD83D\uDD12 SM: ACTIVE for \x1B[32m${E0(Y)} (${J.role})\x1B[0m${X}. ${J.status}`),!0};async function SQ(){for(let{db:$,ssm:Q}of NQ){let J=$?.syncChannel;if(J?._originalSendBySM)J.send=J._originalSendBySM,delete J._originalSendBySM;try{await Q.updateSigner(null)}catch(Y){log.error("❌ SM: Error during signer deactivation in clearSecurity:",Y)}}r.logout(),N$=null,m$=!1,localStorage.removeItem(i$),H$=!1,C$(),log.info("\uD83D\uDEE1️ SM: Session closed. Now in anonymous verification mode.")}var wJ="_gdbSecurePayloadV1",LQ=async($,Q)=>{if(!$)return null;let J=Z$,Y=$.value,X=!1;if(Y&&Y._gdbWrapperType===wJ){let{_payload:Z,_meta:q}=Y;Y=typeof Z==="string"?Z:Y;let G=J?.localUserEthAddress&&q?.keys?.[J.localUserEthAddress];if(G)try{Y=await J.openWithKey(Z,q.iv,await J.unwrapKey(G)),X=!0}catch(M){log.error(`❌ SM: Decryption failed for node ${$.id}: ${M.message}`)}else log.warn(`⚠️ SM: No read envelope for node ${$.id}. Owner: ${q?.owner}.`)}return{id:Q??$.id,value:Y,edges:($.edges||[]).map((Z)=>Z.replace(/^SM_ID_PREFIX_/,"")),timestamp:$.timestamp,decrypted:X}};async function $V($,Q){if(!X$)throw Error("❌ SM.put: Not initialized");if(!PQ())throw Error("❌ SM.put: Session not active");let J=Z$,Y=J.localUserEthAddress,X=Q??`${Y}:${crypto.randomUUID()}`,Z=`SM_ID_PREFIX_${X}`,q=(await X$.get(Z,null))?.result?.value,G=q?._gdbWrapperType===wJ?q:null;if(q&&!G)throw Error(`❌ SM.put: Node '${X}' exists but is not an SM node. DENIED.`);if(G&&G._meta.owner!==Y&&!["write","delete"].includes(G.collaborators?.[Y]))throw Error(`❌ SM.put: No write permission on node '${X}'. DENIED.`);let M;try{let W=G?._meta.keys?.[Y];if(G&&!W&&G._meta.owner!==Y)throw Error(`❌ SM.put: No envelope for '${X}'. DENIED.`);let z=W?await J.unwrapKey(W):crypto.getRandomValues(new Uint8Array(32)),{iv:O,encrypted:I}=await J.sealWithKey($,z);M={_gdbWrapperType:wJ,_payload:I,collaborators:G?.collaborators??{},_meta:{owner:G?._meta.owner??Y,iv:O,keys:G?._meta.keys??{[Y]:await J.wrapKeyFor(J.publicKey,z,Y)}}}}catch(W){throw log.error(`❌ SM.put: Encryption failed for ID ${Q||"(new)"}: ${W.message}`),W}return log.info(`\uD83D\uDEE1️ SM (put): Storing wrapped secure payload for ID: ${Q||"(new)"}`),await X$.put(M,Z),X}async function QV($){if(!PQ())throw Error("❌ SM.sign: Session not active");let Q={kind:"app",from:Z$.localUserEthAddress,at:Date.now(),value:$};return{...Q,signature:await Z$.signValue(Q)}}var JV=({signature:$,...Q}={},J=60000)=>Q.kind==="app"&&Math.abs(Date.now()-Q.at)<=J&&Z$?.recoverAuthor(Q,$)===Q.from?Q.from:null;async function YV($,Q=null){if(!$)throw Error("❌ SM.get: id is required");let J=`SM_ID_PREFIX_${$}`;if(!X$)throw Error("❌ SM.get: Not initialized");if(!Q){let q=await X$.get(J,null);return{result:await LQ(q?q.result:null,$)}}let Y=null,X=await X$.get(J,null);if(Y=await LQ(X?X.result:null,$),typeof Q==="function")Q(Y);let{unsubscribe:Z}=await X$.get(J,async(q)=>{let G=await LQ(q,$),M=G&&Y&&X$.hybridClock?.compare(G.timestamp,Y.timestamp)>0,W=JSON.stringify(G?G.value:null)!==JSON.stringify(Y?Y.value:null);if(!G&&Y){if(Y=null,typeof Q==="function")Q(null)}else if(G&&(!Y||M||W)){if(Y=G,typeof Q==="function")Q(G)}});return{result:Y,unsubscribe:()=>{if(Z)Z()}}}async function XV($){if(!$)throw Error("❌ SM.remove: id is required");if(!X$)throw Error("❌ SM.remove: Not initialized");return X$.remove(`SM_ID_PREFIX_${$}`)}async function ZV($={}){if(!X$)throw Error("❌ SM.map: Not initialized");let{query:Q,field:J,order:Y="asc",$limit:X,...Z}=$,{results:q}=await X$.map({...Z,query:{id:/^SM_ID_PREFIX_/},realtime:!1}),G=(await Promise.all(q.map((z)=>LQ(z,z.id.replace("SM_ID_PREFIX_",""))))).filter(Boolean),M=Object.fromEntries(G.map((z)=>[z.id,z]));return{results:pX(M,{query:Q,field:J,order:Y,$limit:X})}}function lX(){if(!H$||!Z$?.localUserEthAddress)throw Error("❌ SM Operation: Security not active or no local user ETH identified in SecurityManager.");return Z$.localUserEthAddress}async function qV($,Q,J=null){if(!$||!Q)throw Error("❌ SM assignRole: targetUserEthAddress, and role are required.");let Y;try{Y=c($)}catch(W){throw Error(`❌ SM assignRole: targetUserEthAddress '${E0($)}' is invalid.`)}if(!BJ[Q])throw Error(`❌ SM assignRole: Role '${Q}' is not a defined role.`);let X=lX(),Z=`user:${Y}`,G=(await X$.get(Z)).result?.value||{},M={...G,ethAddress:Y,role:Q,assignedByEthAddress:X,expiresAt:J?new Date(J).toISOString():null,priority:!0};await X$.put(M,Z),log.info(`\uD83D\uDEE1️ SM: PROMOTING \x1B[32m ${E0(Y)} \x1B[0m from \x1B[32m '${G.role}' \x1B[0m to \x1B[32m ${Q} \x1B[0m by \x1B[32m ${E0(X)} \x1B[0m written.`)}async function oq(){if(!H$||!Z$?.localUserEthAddress)return!1;return PJ.includes(Z$.localUserEthAddress)}async function iq($,Q="unknown"){let J;try{J=c($)}catch(Z){throw Error(`❌ SM: Invalid ETH address '${E0($)}' when verifying role for op '${Q}'.`)}let Y=await X$.get(`user:${J}`);if(!Y.result?.value?.role)throw log.warn(`⚠️ SM verifyUserRoleLocal: Node/role not found for ETH ${J}. Op: ${Q}. Data:`,Y.result?.value),Error(`❌ SM: Role not found for ETH ${J} (operation: ${Q}).`);let X=Y.result.value;if(X.expiresAt&&new Date(X.expiresAt)<new Date)throw Error(`❌ SM: Role for ETH ${J} has expired.`);return X.role}async function rq($,Q){let J=await iq($,Q);if(!j8(J,Q))throw Error(`❌ SM: ETH User ${$} (role ${J}) does not have permission for '${Q}'.`)}async function GV($){if(!$)throw Error("❌ SM executeWithPermission: operationName is required.");let Q=lX();if(!($==="assignRole"&&await oq()))await rq(Q,$);return Q}function MV(){return H$?Z$?.localUserEthAddress:null}function PQ(){return H$}function WV(){return H$&&m$}function zV(){return r.hasWebAuthnRegistration()}function VV(){if(N$&&N$.mnemonic&&!r.isSessionWebAuthnProtected())return N$.mnemonic;return r.getMnemonicForDisplay()}async function OV($){if(!PQ()||!Z$)throw Error("❌ SM Encryption: Local signing security not active or SecurityManager not available.");return await Z$.encryptDataForCurrentUser($)}async function DV($){if(!PQ()||!Z$)throw Error("❌ SM Decryption: Local signing security not active or SecurityManager not available.");return await Z$.decryptDataForCurrentUser($)}async function KV($,Q,J={}){X$=$;let Y=async(Z)=>{if((await $.get(Z,null))?.result)return Z;let q=`SM_ID_PREFIX_${Z}`;return(await $.get(q,null))?.result?q:Z};for(let Z of["link","unlink"]){let q=$[Z].bind($);$[Z]=async(G,M)=>q(await Y(G),await Y(M))}let X={...Q};return $.sm=X,Object.hasOwn(J,"superAdmins")&&await lq($,J),Object.freeze(X),{sm:X}}export{JV as verify,az as startNewUserRegistration,QV as sign,iz as setSecurityStateChangeCallback,rz as setGovernanceStateChangeCallback,XV as remove,$V as put,sz as protectCurrentIdentityWithWebAuthn,ZV as map,ez as loginOrRecoverUserWithMnemonic,tz as loginCurrentUserWithWebAuthn,PQ as isSecurityActive,WV as isCurrentSessionProtectedByWebAuthn,KV as init,zV as hasExistingWebAuthnRegistration,VV as getMnemonicForDisplayAfterRegistrationOrRecovery,MV as getActiveEthAddress,YV as get,GV as executeWithPermission,OV as encryptDataForCurrentUser,DV as decryptDataForCurrentUser,SQ as clearSecurity,qV as assignRole,E0 as abbrAddr};
|