@bsv/sdk 1.6.20 → 1.6.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/src/primitives/PrivateKey.js +31 -1
- package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/primitives/PrivateKey.js +32 -2
- package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +1 -1
- package/dist/umd/bundle.js.map +1 -1
- package/docs/reference/auth.md +1 -1
- package/docs/reference/messages.md +8 -6
- package/docs/reference/overlay-tools.md +3 -0
- package/docs/reference/primitives.md +513 -283
- package/docs/reference/script.md +32 -0
- package/package.json +1 -1
- package/src/primitives/PrivateKey.ts +34 -2
package/dist/umd/bundle.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.bsv=t():e.bsv=t()}(this,()=>(()=>{"use strict";let e;var t,r,i,a,n={};n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};n.r(s),n.d(s,{Signature:()=>tu,SHIPCast:()=>iw,BEEF_V1:()=>rh,BEEF_V2:()=>ru,BeefParty:()=>ry,Polynomial:()=>tE,SHIPBroadcaster:()=>iw,KNOWN_IDENTITY_TYPES:()=>i_,Utils:()=>c,KeyDeriver:()=>rW,SignedMessage:()=>d,SymmetricKey:()=>tz,LocalKVStore:()=>iV,WhatsOnChain:()=>rs,IdentityClient:()=>iA,ScriptEvaluationError:()=>tQ,defaultHttpClient:()=>rr,defaultIdentity:()=>iN,RPuzzle:()=>t6,WalletClient:()=>r5,verifyNonce:()=>ii,SatoshisPerKilobyte:()=>t9,PrivateKey:()=>tO,walletErrors:()=>i,KeyShares:()=>tN,XDM:()=>rZ,HTTPSOverlayBroadcastFacilitator:()=>iy,Certificate:()=>rQ,HD:()=>rU,CompletedProtoWallet:()=>it,AuthFetch:()=>ih,NodejsHttpClient:()=>re,ProtoWallet:()=>rG,StorageUtils:()=>f,CachedKeyDeriver:()=>rj,ECIES:()=>rq,HTTPWalletWire:()=>r2,PointInFiniteField:()=>tP,ARC:()=>ra,Curve:()=>th,DRBG:()=>tf,ECDSA:()=>l,MasterCertificate:()=>r9,Random:()=>tx,TOTP:()=>r$,VerifiableCertificate:()=>ie,WindowCWISubstrate:()=>rX,defaultChainTracker:()=>ro,DEFAULT_SLAP_TRACKERS:()=>ip,ReactNativeWebView:()=>r4,DEFAULT_IDENTITY_CLIENT_OPTIONS:()=>iO,WalletErrors:()=>rJ,WalletError:()=>rY,StorageUploader:()=>iP,BlockHeadersService:()=>rx,Spend:()=>t2,Hash:()=>o,validateCertificates:()=>io,Schnorr:()=>tj,Script:()=>tY,TX_DATA_FORMAT:()=>t,WalletWireTransceiver:()=>r1,EncryptedMessage:()=>h,TransactionSignature:()=>tW,fromUtxo:()=>rM,Beef:()=>rp,HTTPWalletJSON:()=>r6,OverlayAdminTokenTemplate:()=>iu,SimplifiedFetchTransport:()=>id,TopicBroadcaster:()=>iw,BeefTx:()=>rl,MerklePath:()=>rc,WhatsOnChainBroadcaster:()=>rw,defaultBroadcaster:()=>rn,getVerifiableCertificates:()=>is,LockingScript:()=>tJ,HTTPSOverlayLookupFacilitator:()=>ig,FetchHttpClient:()=>rt,Peer:()=>ic,LookupResolver:()=>im,PublicKey:()=>tv,binaryHttpClient:()=>rk,StorageDownloader:()=>iE,BigNumber:()=>p,SessionManager:()=>ir,SecurityLevels:()=>r,WalletWireProcessor:()=>r7,createNonce:()=>ia,isBroadcastResponse:()=>rg,OP:()=>tX,P2PKH:()=>t3,WERR_REVIEW_ACTIONS:()=>r3,Teranode:()=>rS,UnlockingScript:()=>tZ,deserializeWalletProtocol:()=>iC,RegistryClient:()=>iT,Point:()=>td,BSM:()=>u,Mnemonic:()=>rB,isBroadcastFailure:()=>rm,Transaction:()=>rb,PushDrop:()=>t7,ATOMIC_BEEF:()=>rf,DEFAULT_TESTNET_SLAP_TRACKERS:()=>ib});var o={};n.r(o),n.d(o,{RIPEMD160:()=>U,SHA1:()=>B,SHA1HMAC:()=>K,SHA256:()=>D,SHA256HMAC:()=>H,SHA512:()=>L,SHA512HMAC:()=>F,hash160:()=>j,hash256:()=>W,pbkdf2:()=>eL,ripemd160:()=>q,sha1:()=>M,sha256:()=>$,sha256hmac:()=>G,sha512:()=>z,sha512hmac:()=>X,toArray:()=>S});var c={};n.r(c),n.d(c,{Reader:()=>eQ,Writer:()=>eZ,encode:()=>ez,fromBase58:()=>eG,fromBase58Check:()=>eJ,minimallyEncode:()=>e0,toArray:()=>eF,toBase58:()=>eX,toBase58Check:()=>eY,toBase64:()=>eW,toHex:()=>eK,toUTF8:()=>e$,zero2:()=>eH});var l={};n.r(l),n.d(l,{sign:()=>tw,verify:()=>tI});var d={};n.r(d),n.d(d,{sign:()=>rE,verify:()=>rN});var h={};n.r(h),n.d(h,{decrypt:()=>rA,encrypt:()=>r_});var u={};n.r(u),n.d(u,{magicHash:()=>rC,sign:()=>rV,verify:()=>rR});var f={};n.r(f),n.d(f,{getHashFromURL:()=>iS,getURLForFile:()=>ik,getURLForHash:()=>iv,isValidURL:()=>ix,normalizeURL:()=>iI});class p{static zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"];static groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];static groupBases=[0,0,0x2000000,0x290d741,0x1000000,0x2e90edd,0x39aa400,0x267bf47,0x1000000,0x290d741,1e7,0x12959c3,0x222c000,0x3bd7765,7529536,0xadcea1,0x1000000,0x1704f61,0x206fc40,0x2cddcf9,64e6,4084101,5153632,6436343,7962624,9765625,0xb54ba0,0xdaf26b,0x1069c00,0x138f9ad,243e5,0x1b4d89f,0x2000000,0x25528a1,0x2b54a20,0x3216b93,0x39aa400];static wordSize=26;static WORD_SIZE_BIGINT=BigInt(p.wordSize);static WORD_MASK=(1n<<p.WORD_SIZE_BIGINT)-1n;static MAX_SAFE_INTEGER_BIGINT=BigInt(Number.MAX_SAFE_INTEGER);static MIN_SAFE_INTEGER_BIGINT=BigInt(Number.MIN_SAFE_INTEGER);static MAX_IMULN_ARG=0x3ffffff;static MAX_NUMBER_CONSTRUCTOR_MAG_BIGINT=(1n<<53n)-1n;_magnitude;_sign;_nominalWordLength;red;get negative(){return this._sign}set negative(e){this.assert(0===e||1===e,"Negative property must be 0 or 1"),0n===this._magnitude?this._sign=0:this._sign=+(1===e)}get _computedWordsArray(){if(0n===this._magnitude)return[0];let e=[],t=this._magnitude;for(;t>0n;)e.push(Number(t&p.WORD_MASK)),t>>=p.WORD_SIZE_BIGINT;return e.length>0?e:[0]}get words(){let e=this._computedWordsArray;if(this._nominalWordLength<=e.length)return e;let t=Array(this._nominalWordLength).fill(0);for(let r=0;r<e.length;r++)t[r]=e[r];return t}set words(e){let t=this._sign,r=0n,i=e.length>0?e.length:1;for(let t=i-1;t>=0;t--){let i=void 0===e[t]?0:e[t];r=r<<p.WORD_SIZE_BIGINT|BigInt(i&Number(p.WORD_MASK))}this._magnitude=r,this._sign=t,this._nominalWordLength=i,this.normSign()}get length(){return Math.max(1,this._nominalWordLength)}static isBN(e){return e instanceof p||null!==e&&"object"==typeof e&&e.constructor?.wordSize===p.wordSize&&Array.isArray(e.words)}static max(e,t){return e.cmp(t)>0?e:t}static min(e,t){return 0>e.cmp(t)?e:t}constructor(e=0,t=10,r="be"){if(this._magnitude=0n,this._sign=0,this._nominalWordLength=1,this.red=null,void 0===e&&(e=0),null===e)return void this._initializeState(0n,0);if("bigint"==typeof e){this._initializeState(e<0n?-e:e,+(e<0n)),this.normSign();return}let i=t,a=r;if(("le"===t||"be"===t)&&(a=t,i=10),"number"==typeof e)return void this.initNumber(e,a);if(Array.isArray(e))return void this.initArray(e,a);if("string"==typeof e){"hex"===i&&(i=16),this.assert("number"==typeof i&&i===(0|i)&&i>=2&&i<=36,"Base must be an integer between 2 and 36");let t=e.toString().replace(/\s+/g,""),r=0,n=0;t.startsWith("-")?(r++,n=1):t.startsWith("+")&&r++;let s=t.substring(r);if(0===s.length){this._initializeState(0n,1===n&&t.startsWith("-")?1:0),this.normSign();return}if(16===i){let e;if("le"===a){let e=[],t=s;t.length%2!=0&&(t="0"+t);for(let r=0;r<t.length;r+=2){let i=parseInt(t.substring(r,r+2),16);if(isNaN(i))throw Error("Invalid character in "+t);e.push(i)}this.initArray(e,"le"),this._sign=n,this.normSign();return}try{e=BigInt("0x"+s)}catch(e){throw Error("Invalid character in "+s)}this._initializeState(e,n),this.normSign()}else try{if(this._parseBaseString(s,i),this._sign=n,this.normSign(),"le"===a){let e=this._sign;this.initArray(this.toArray("be"),"le"),this._sign=e,this.normSign()}}catch(e){if(e.message.includes("Invalid character in string")||e.message.includes("Invalid digit for base")||e.message.startsWith("Invalid character:"))throw Error("Invalid character");throw e}}else 0!==e?this.assert(!1,"Unsupported input type for BigNumber constructor"):this._initializeState(0n,0)}_bigIntToStringInBase(e,t){if(0n===e)return"0";if(t<2||t>36)throw Error("Base must be between 2 and 36");let r="",i=e>0n?e:-e,a=BigInt(t);for(;i>0n;)r="0123456789abcdefghijklmnopqrstuvwxyz"[Number(i%a)]+r,i/=a;return r}_parseBaseString(e,t){if(0===e.length){this._magnitude=0n,this._finishInitialization();return}this._magnitude=0n;let r=BigInt(t),i=p.groupSizes[t],a=BigInt(p.groupBases[t]);(0===i||0n===a)&&(0===(i=Math.floor(Math.log(0x3ffffff)/Math.log(t)))&&(i=1),a=r**BigInt(i));let n=0,s=e.length,o=s%i;if(0===o&&s>0&&(o=i),o>0){let r=e.substring(n,n+o);this._magnitude=BigInt(this._parseBaseWord(r,t)),n+=o}for(;n<s;){let r=e.substring(n,n+i),s=BigInt(this._parseBaseWord(r,t));this._magnitude=this._magnitude*a+s,n+=i}this._finishInitialization()}_parseBaseWord(e,t){let r=0;for(let i=0;i<e.length;i++){let a,n=e.charCodeAt(i);if(n>=48&&n<=57)a=n-48;else if(n>=65&&n<=90)a=n-65+10;else if(n>=97&&n<=122)a=n-97+10;else throw Error("Invalid character: "+e[i]);if(a>=t)throw Error("Invalid character");r=r*t+a}return r}_initializeState(e,t){this._magnitude=e,this._sign=0n===e?0:t,this._finishInitialization()}_finishInitialization(){if(0n===this._magnitude)this._nominalWordLength=1,this._sign=0;else{let e=this._magnitude.toString(2).length;this._nominalWordLength=Math.max(1,Math.ceil(e/p.wordSize))}}assert(e,t="Assertion failed"){if(!e)throw Error(t)}initNumber(e,t="be"){if(this.assert(BigInt(Math.abs(e))<=p.MAX_NUMBER_CONSTRUCTOR_MAG_BIGINT,"The number is larger than 2 ^ 53 (unsafe)"),this.assert(e%1==0,"Number must be an integer for BigNumber conversion"),this._initializeState(BigInt(Math.abs(e)),+(e<0)),"le"===t){let e=this._sign,t=this.toArray("be");this.initArray(t,"le"),this._sign=e,this.normSign()}return this}initArray(e,t){if(0===e.length)return this._initializeState(0n,0),this;let r=0n;if("be"===t)for(let t=0;t<e.length;t++)r=r<<8n|BigInt(255&e[t]);else for(let t=e.length-1;t>=0;t--)r=r<<8n|BigInt(255&e[t]);return this._initializeState(r,0),this}copy(e){e._magnitude=this._magnitude,e._sign=this._sign,e._nominalWordLength=this._nominalWordLength,e.red=this.red}static move(e,t){e._magnitude=t._magnitude,e._sign=t._sign,e._nominalWordLength=t._nominalWordLength,e.red=t.red}clone(){let e=new p(0n);return this.copy(e),e}expand(e){return this.assert(e>=0,"Expand size must be non-negative"),this._nominalWordLength=Math.max(this._nominalWordLength,e,1),this}strip(){return this._finishInitialization(),this.normSign()}normSign(){return 0n===this._magnitude&&(this._sign=0),this}inspect(){return(null!==this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}_getMinimalHex(){return 0n===this._magnitude?"0":this._magnitude.toString(16)}toString(e=10,t=1){if(16===e||"hex"===e){let e=this._getMinimalHex();if(t>1)for("0"!==e&&e.length%2!=0&&(e="0"+e);e.length%t!=0;)e="0"+e;return(this.isNeg()?"-":"")+e}if("number"!=typeof e||e<2||e>36||e%1!=0)throw Error("Base should be an integer between 2 and 36");return this.toBaseString(e,t)}toBaseString(e,t){if(0n===this._magnitude){let e="0";if(t>1)for(;e.length<t;)e="0"+e;return e}let r=p.groupSizes[e],i=BigInt(p.groupBases[e]);(0===r||0n===i)&&(0===(r=Math.floor(Math.log(Number.MAX_SAFE_INTEGER)/Math.log(e)))&&(r=1),i=BigInt(e)**BigInt(r));let a="",n=this._magnitude;for(;n>0n;){let t=n%i;n/=i;let s=this._bigIntToStringInBase(t,e);if(n>0n){let e=r-s.length;a=e>0&&e<p.zeros.length?p.zeros[e]+s+a:e>0?"0".repeat(e)+s+a:s+a}else a=s+a}if(t>0)for(;a.length<t;)a="0"+a;return(1===this._sign?"-":"")+a}toNumber(){let e=this._getSignedValue();if(e>p.MAX_SAFE_INTEGER_BIGINT||e<p.MIN_SAFE_INTEGER_BIGINT)throw Error("Number can only safely store up to 53 bits");return Number(e)}toJSON(){let e=this._getMinimalHex();return(this.isNeg()?"-":"")+e}toArrayLikeGeneric(e,t){let r=this._magnitude,i=t?0:e.length-1,a=t?1:-1;for(let t=0;t<e.length;++t){if(0n===r&&i>=0&&i<e.length)e[i]=0;else if(i>=0&&i<e.length)e[i]=Number(255n&r);else break;r>>=8n,i+=a}}toArray(e="be",t){this.strip();let r=this.byteLength(),i=t??Math.max(1,r);this.assert(r<=i,"byte array longer than desired length"),this.assert(i>0,"Requested array length <= 0");let a=Array(i).fill(0);return 0n===this._magnitude&&i>0?a:0n===this._magnitude&&0===i?[]:(this.toArrayLikeGeneric(a,"le"===e),a)}bitLength(){return 0n===this._magnitude?0:this._magnitude.toString(2).length}static toBitArray(e){let t=e.bitLength();if(0===t)return[];let r=Array(t),i=e._magnitude;for(let e=0;e<t;e++)r[e]=+((i>>BigInt(e)&1n)!==0n);return r}toBitArray(){return p.toBitArray(this)}zeroBits(){if(0n===this._magnitude)return 0;let e=0,t=this._magnitude;for(;(1n&t)===0n&&0n!==t;)e++,t>>=1n;return e}byteLength(){return 0n===this._magnitude?0:Math.ceil(this.bitLength()/8)}_getSignedValue(){return 1===this._sign?-this._magnitude:this._magnitude}_setValueFromSigned(e){e<0n?(this._magnitude=-e,this._sign=1):(this._magnitude=e,this._sign=0),this._finishInitialization(),this.normSign()}toTwos(e){this.assert(e>=0);let t=BigInt(e),r=this._getSignedValue();1===this._sign&&0n!==this._magnitude&&(r=(1n<<t)+r),r&=(1n<<t)-1n;let i=new p(0n);return i._initializeState(r,0),i}fromTwos(e){this.assert(e>=0);let t=BigInt(e),r=this._magnitude;if(e>0&&(r>>t-1n&1n)!==0n&&0===this._sign){let e=new p(0n);return e._setValueFromSigned(r-(1n<<t)),e}return this.clone()}isNeg(){return 1===this._sign&&0n!==this._magnitude}neg(){return this.clone().ineg()}ineg(){return 0n!==this._magnitude&&(this._sign=+(1!==this._sign)),this}_iuop(e,t){let r=t(this._magnitude,e._magnitude),i=t===((e,t)=>e^t),a=this._nominalWordLength;return i&&(a=Math.max(this.length,e.length)),this._magnitude=r,this._finishInitialization(),i&&(this._nominalWordLength=Math.max(this._nominalWordLength,a)),this.strip()}iuor(e){return this._iuop(e,(e,t)=>e|t)}iuand(e){return this._iuop(e,(e,t)=>e&t)}iuxor(e){return this._iuop(e,(e,t)=>e^t)}_iop(e,t){return this.assert(0===this._sign&&0===e._sign),this._iuop(e,t)}ior(e){return this._iop(e,(e,t)=>e|t)}iand(e){return this._iop(e,(e,t)=>e&t)}ixor(e){return this._iop(e,(e,t)=>e^t)}_uop_new(e,t){return this.length>=e.length?this.clone()[t](e):e.clone()[t](this)}or(e){return this.assert(0===this._sign&&0===e._sign),this._uop_new(e,"iuor")}uor(e){return this._uop_new(e,"iuor")}and(e){return this.assert(0===this._sign&&0===e._sign),this._uop_new(e,"iuand")}uand(e){return this._uop_new(e,"iuand")}xor(e){return this.assert(0===this._sign&&0===e._sign),this._uop_new(e,"iuxor")}uxor(e){return this._uop_new(e,"iuxor")}inotn(e){this.assert("number"==typeof e&&e>=0);let t=BigInt(e);this._magnitude=~this._magnitude&(1n<<t)-1n;let r=0===e?1:Math.ceil(e/p.wordSize);return this._nominalWordLength=Math.max(1,r),this.strip(),this._nominalWordLength=Math.max(this._nominalWordLength,Math.max(1,r)),this}notn(e){return this.clone().inotn(e)}setn(e,t){this.assert("number"==typeof e&&e>=0);let r=BigInt(e);1===t||!0===t?this._magnitude|=1n<<r:this._magnitude&=~(1n<<r);let i=Math.floor(e/p.wordSize)+1;return this._nominalWordLength=Math.max(this._nominalWordLength,i),this._finishInitialization(),this.strip()}iadd(e){return this._setValueFromSigned(this._getSignedValue()+e._getSignedValue()),this}add(e){let t=new p(0n);return t._setValueFromSigned(this._getSignedValue()+e._getSignedValue()),t}isub(e){return this._setValueFromSigned(this._getSignedValue()-e._getSignedValue()),this}sub(e){let t=new p(0n);return t._setValueFromSigned(this._getSignedValue()-e._getSignedValue()),t}mul(e){let t=new p(0n);return t._magnitude=this._magnitude*e._magnitude,t._sign=0n===t._magnitude?0:this._sign^e._sign,t._nominalWordLength=this.length+e.length,t.red=null,t.normSign()}imul(e){return this._magnitude*=e._magnitude,this._sign=0n===this._magnitude?0:this._sign^e._sign,this._nominalWordLength=this.length+e.length,this.red=null,this.normSign()}imuln(e){return this.assert("number"==typeof e,"Assertion failed"),this.assert(Math.abs(e)<=p.MAX_IMULN_ARG,"Assertion failed"),this._setValueFromSigned(this._getSignedValue()*BigInt(e)),this}muln(e){return this.clone().imuln(e)}sqr(){let e=new p(0n);return e._magnitude=this._magnitude*this._magnitude,e._sign=0,e._nominalWordLength=2*this.length,e.red=null,e}isqr(){return this._magnitude*=this._magnitude,this._sign=0,this._nominalWordLength=2*this.length,this.red=null,this}pow(e){if(this.assert(0===e._sign,"Exponent for pow must be non-negative"),e.isZero())return new p(1n);let t=new p(1n),r=this.clone(),i=e.clone(),a=r.isNeg(),n=i.isOdd();for(a&&r.ineg();!i.isZero();)i.isOdd()&&t.imul(r),r.isqr(),i.iushrn(1);return a&&n&&t.ineg(),t}iushln(e){return(this.assert("number"==typeof e&&e>=0),0===e)?this:(this._magnitude<<=BigInt(e),this._finishInitialization(),this.strip())}ishln(e){return this.assert(0===this._sign,"ishln requires positive number"),this.iushln(e)}iushrn(e,t,r){if(this.assert("number"==typeof e&&e>=0),0===e)return null!=r&&r._initializeState(0n,0),this;if(null!=r){let t=(1n<<BigInt(e))-1n,i=this._magnitude&t;r._initializeState(i,0)}return this._magnitude>>=BigInt(e),this._finishInitialization(),this.strip()}ishrn(e,t,r){return this.assert(0===this._sign,"ishrn requires positive number"),this.iushrn(e,t,r)}shln(e){return this.clone().ishln(e)}ushln(e){return this.clone().iushln(e)}shrn(e){return this.clone().ishrn(e)}ushrn(e){return this.clone().iushrn(e)}testn(e){return this.assert("number"==typeof e&&e>=0),(this._magnitude>>BigInt(e)&1n)!==0n}imaskn(e){this.assert("number"==typeof e&&e>=0),this.assert(0===this._sign,"imaskn works only with positive numbers");let t=BigInt(e);this._magnitude&=0n===t?0n:(1n<<t)-1n;let r=0===e?1:Math.max(1,Math.ceil(e/p.wordSize));return this._nominalWordLength=r,this._finishInitialization(),this._nominalWordLength=Math.max(this._nominalWordLength,r),this.strip()}maskn(e){return this.clone().imaskn(e)}iaddn(e){return this.assert("number"==typeof e),this.assert(Math.abs(e)<=p.MAX_IMULN_ARG,"num is too large"),this._setValueFromSigned(this._getSignedValue()+BigInt(e)),this}_iaddn(e){return this.iaddn(e)}isubn(e){return this.assert("number"==typeof e),this.assert(Math.abs(e)<=p.MAX_IMULN_ARG,"Assertion failed"),this._setValueFromSigned(this._getSignedValue()-BigInt(e)),this}addn(e){return this.clone().iaddn(e)}subn(e){return this.clone().isubn(e)}iabs(){return this._sign=0,this}abs(){return this.clone().iabs()}divmod(e,t,r){if(this.assert(!e.isZero(),"Division by zero"),this.isZero()){let e=new p(0n);return{div:"mod"!==t?e:null,mod:"div"!==t?e:null}}let i=this._getSignedValue(),a=e._getSignedValue(),n=null,s=null;"mod"!==t&&(n=i/a),"div"!==t&&(s=i%a,!0===r&&s<0n&&(s+=a<0n?-a:a));let o=null!==n?new p(0n):null;null!==o&&null!==n&&o._setValueFromSigned(n);let c=null!==s?new p(0n):null;return null!==c&&null!==s&&c._setValueFromSigned(s),{div:o,mod:c}}div(e){return this.divmod(e,"div",!1).div}mod(e){return this.divmod(e,"mod",!1).mod}umod(e){return this.divmod(e,"mod",!0).mod}divRound(e){this.assert(!e.isZero());let t=this._getSignedValue(),r=e._getSignedValue(),i=t/r,a=t%r;if(0n===a){let e=new p(0n);return e._setValueFromSigned(i),e}2n*(a<0n?-a:a)>=(r<0n?-r:r)&&(t>0n&&r>0n||t<0n&&r<0n?i+=1n:i-=1n);let n=new p(0n);return n._setValueFromSigned(i),n}modrn(e){this.assert(0!==e,"Division by zero in modrn");let t=BigInt(Math.abs(e));if(0n===t)throw Error("Division by zero in modrn");let r=this._magnitude%t;return e<0?Number(-r):Number(r)}idivn(e){return this.assert(0!==e),this.assert(Math.abs(e)<=p.MAX_IMULN_ARG,"num is too large"),this._setValueFromSigned(this._getSignedValue()/BigInt(e)),this}divn(e){return this.clone().idivn(e)}egcd(e){this.assert(0===e._sign,"p must not be negative"),this.assert(!e.isZero(),"p must not be zero");let t=this._getSignedValue(),r=e._magnitude,i=1n,a=0n,n=0n,s=1n;for(;0n!==r;){let e=t/r,o=r;r=t%r,t=o,o=a,a=i-e*a,i=o,o=s,s=n-e*s,n=o}let o=new p(0n);o._setValueFromSigned(i);let c=new p(0n);c._setValueFromSigned(n);let l=new p(0n);return l._initializeState(t<0n?-t:t,0),{a:o,b:c,gcd:l}}gcd(e){let t=this._magnitude,r=e._magnitude;if(0n===t){let e=new p(0n);return e._setValueFromSigned(r),e.iabs()}if(0n===r){let e=new p(0n);return e._setValueFromSigned(t),e.iabs()}for(;0n!==r;){let e=t%r;t=r,r=e}let i=new p(0n);return i._initializeState(t,0),i}invm(e){this.assert(!e.isZero()&&0===e._sign,"Modulus for invm must be positive and non-zero");let t=this.egcd(e);if(!t.gcd.eqn(1))throw Error("Inverse does not exist (numbers are not coprime).");return t.a.umod(e)}isEven(){return this._magnitude%2n===0n}isOdd(){return this._magnitude%2n===1n}andln(e){return this.assert(e>=0),Number(this._magnitude&BigInt(e))}bincn(e){this.assert("number"==typeof e&&e>=0);let t=1n<<BigInt(e);return this._setValueFromSigned(this._getSignedValue()+t),this}isZero(){return 0n===this._magnitude}cmpn(e){this.assert(Math.abs(e)<=p.MAX_IMULN_ARG,"Number is too big");let t=this._getSignedValue(),r=BigInt(e);return t<r?-1:+(t>r)}cmp(e){let t=this._getSignedValue(),r=e._getSignedValue();return t<r?-1:+(t>r)}ucmp(e){return this._magnitude<e._magnitude?-1:+(this._magnitude>e._magnitude)}gtn(e){return 1===this.cmpn(e)}gt(e){return 1===this.cmp(e)}gten(e){return this.cmpn(e)>=0}gte(e){return this.cmp(e)>=0}ltn(e){return -1===this.cmpn(e)}lt(e){return -1===this.cmp(e)}lten(e){return 0>=this.cmpn(e)}lte(e){return 0>=this.cmp(e)}eqn(e){return 0===this.cmpn(e)}eq(e){return 0===this.cmp(e)}toRed(e){return this.assert(null==this.red,"Already a number in reduction context"),this.assert(0===this._sign,"toRed works only with positives"),e.convertTo(this).forceRed(e)}fromRed(){return this.assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)}forceRed(e){return this.red=e,this}redAdd(e){return this.assert(this.red,"redAdd works only with red numbers"),this.red.add(this,e)}redIAdd(e){return this.assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)}redSub(e){return this.assert(this.red,"redSub works only with red numbers"),this.red.sub(this,e)}redISub(e){return this.assert(this.red,"redISub works only with red numbers"),this.red.isub(this,e)}redShl(e){return this.assert(this.red,"redShl works only with red numbers"),this.red.shl(this,e)}redMul(e){return this.assert(this.red,"redMul works only with red numbers"),this.red.verify2(this,e),this.red.mul(this,e)}redIMul(e){return this.assert(this.red,"redIMul works only with red numbers"),this.red.verify2(this,e),this.red.imul(this,e)}redSqr(){return this.assert(this.red,"redSqr works only with red numbers"),this.red.verify1(this),this.red.sqr(this)}redISqr(){return this.assert(this.red,"redISqr works only with red numbers"),this.red.verify1(this),this.red.isqr(this)}redSqrt(){return this.assert(this.red,"redSqrt works only with red numbers"),this.red.verify1(this),this.red.sqrt(this)}redInvm(){return this.assert(this.red,"redInvm works only with red numbers"),this.red.verify1(this),this.red.invm(this)}redNeg(){return this.assert(this.red,"redNeg works only with red numbers"),this.red.verify1(this),this.red.neg(this)}redPow(e){return this.assert(null!=this.red&&null==e.red,"redPow(normalNum)"),this.red.verify1(this),this.red.pow(this,e)}static fromHex(e,t){let r="be";return("little"===t||"le"===t)&&(r="le"),new p(e,16,r)}toHex(e=0){if(this.isZero()&&0===e)return"";let t=this._getMinimalHex();"0"!==t&&t.length%2!=0&&(t="0"+t);let r=2*e;for(;t.length<r;)t="0"+t;return(this.isNeg()?"-":"")+t}static fromJSON(e){return new p(e,16)}static fromNumber(e){return new p(e)}static fromString(e,t){return new p(e,t)}static fromSm(e,t="big"){if(0===e.length)return new p(0n);let r=0,i="";if("little"===t){let t=e.length-1,a=e[t];(128&a)!=0&&(r=1,a&=127),i+=(a<16?"0":"")+a.toString(16);for(let r=t-1;r>=0;r--){let t=e[r];i+=(t<16?"0":"")+t.toString(16)}}else{let t=e[0];(128&t)!=0&&(r=1,t&=127),i+=(t<16?"0":"")+t.toString(16);for(let t=1;t<e.length;t++){let r=e[t];i+=(r<16?"0":"")+r.toString(16)}}let a=""===i?0n:BigInt("0x"+i),n=new p(0n);return n._initializeState(a,r),n}toSm(e="big"){if(0n===this._magnitude)return 1===this._sign?[128]:[];let t=this._getMinimalHex();t.length%2!=0&&(t="0"+t);let r=Array(t.length/2);for(let e=0,i=0;e<t.length;e+=2)r[i++]=parseInt(t.slice(e,e+2),16);return 1===this._sign?(128&r[0])!=0?r.unshift(128):r[0]|=128:(128&r[0])!=0&&r.unshift(0),"little"===e?r.reverse():r}static fromBits(e,t=!1){let r=e>>>24,i=8388607&e,a=(8388608&e)!=0;if(t&&a)throw Error("negative bit set");if(0===r&&0===i){if(a&&t)throw Error("negative bit set for zero value");return new p(0n)}let n=new p(i);return r<=3?n.iushrn((3-r)*8):n.iushln((r-3)*8),a&&n.ineg(),n}toBits(){let e;if(this.strip(),this.isZero()&&!this.isNeg())return 0;let t=this.isNeg(),r=this.abs(),i=r.toArray("be"),a=0;for(;a<i.length-1&&0===i[a];)a++;let n=(i=i.slice(a)).length;if(0!==n||r.isZero()||(i=[0],n=1),r.isZero()&&(n=0,i=[]),0===n)e=0;else if(n<=3){e=0;for(let t=0;t<n;t++)e=e<<8|i[t]}else e=i[0]<<16|i[1]<<8|i[2];(8388608&e)!=0&&n<=255&&(e>>>=8,n++);let s=n<<24|e;return t&&(s|=8388608),s>>>0}static fromScriptNum(e,t=!1,r){if(void 0!==r&&e.length>r)throw Error("script number overflow");if(0===e.length)return new p(0n);if(t&&(127&e[e.length-1])==0&&(e.length<=1||(128&e[e.length-2])==0))throw Error("non-minimally encoded script number");return p.fromSm(e,"little")}toScriptNum(){return this.toSm("little")}_invmp(e){let t;this.assert(0===e._sign,"p must not be negative for _invmp"),this.assert(!e.isZero(),"p must not be zero for _invmp");let r=this.umod(e)._magnitude,i=e._magnitude,a=1n,n=0n,s=e._magnitude;for(;r>1n&&i>1n;){let e=0;for(;(r>>BigInt(e)&1n)===0n;)e++;if(e>0){r>>=BigInt(e);for(let t=0;t<e;++t)(1n&a)!==0n&&(a+=s),a>>=1n}let t=0;for(;(i>>BigInt(t)&1n)===0n;)t++;if(t>0){i>>=BigInt(t);for(let e=0;e<t;++e)(1n&n)!==0n&&(n+=s),n>>=1n}r>=i?(r-=i,a-=n):(i-=r,n-=a)}if(1n===r)t=a;else if(1n===i)t=n;else if(0n===r&&1n===i)t=n;else if(0n===i&&1n===r)t=a;else throw Error("_invmp: GCD is not 1, inverse does not exist. aVal="+r+", bVal="+i);(t%=s)<0n&&(t+=s);let o=new p(0n);return o._initializeState(t,0),o}mulTo(e,t){return t._magnitude=this._magnitude*e._magnitude,t._sign=0n===t._magnitude?0:this._sign^e._sign,t._nominalWordLength=this.length+e.length,t.red=null,t.normSign(),t}}class b{name;p;k;n;tmp;constructor(e,t){this.name=e,this.p=new p(t,16),this.n=this.p.bitLength(),this.k=new p(BigInt(1)).iushln(this.n).isub(this.p),this.tmp=this._tmp()}_tmp(){let e=new p(BigInt(0)),t=Math.ceil(this.n/p.wordSize);return e.expand(Math.max(1,t)),e}ireduce(e){let t;do this.split(e,this.tmp),this.imulK(e),e.iadd(this.tmp),t=e.bitLength();while(t>this.n);let r=t<this.n?-1:e.ucmp(this.p);return 0===r?e.words=[0]:r>0&&e.isub(this.p),e.strip(),e}split(e,t){e.iushrn(this.n,0,t)}imulK(e){return e.imul(this.k)}}class g extends b{constructor(){super("k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}split(e,t){let r=e.words,i=e.length,a=Math.min(i,9),n=Array(a+ +(i>9)).fill(0);for(let e=0;e<a;e++)n[e]=r[e];let s=a;if(i<=9){let r=Array(s);for(let e=0;e<s;++e)r[e]=n[e];t.words=r,e.words=[0];return}let o=r[9];n[s++]=4194303&o;let c=Array(s);for(let e=0;e<s;++e)c[e]=n[e];t.words=c;let l=Array(Math.max(1,i-9)).fill(0),d=0;for(let e=10;e<i;e++){let t=0|r[e];d<l.length&&(l[d++]=(4194303&t)<<4|o>>>22),o=t}o>>>=22,d<l.length?l[d++]=o:0!==o&&l.length;let h=Array(d);for(let e=0;e<d;++e)h[e]=l[e];e.words=h}imulK(e){let t=e.words,r=e.length,i=r+2,a=Array(i).fill(0);for(let e=0;e<r;e++)a[e]=t[e];let n=0;for(let e=0;e<i;e++){let t=0|a[e];n+=977*t,a[e]=0x3ffffff&n,n=64*t+(n/0x4000000|0)}return e.words=a,e}}class m{prime;m;constructor(e){if("k256"===e){let e=new g;this.m=e.p,this.prime=e}else this.assert(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}assert(e,t="Assertion failed"){if(!e)throw Error(t)}verify1(e){this.assert(0===e.negative,"red works only with positives"),this.assert(e.red,"red works only with red numbers")}verify2(e,t){this.assert((e.negative|t.negative)==0,"red works only with positives"),this.assert(null!=e.red&&e.red===t.red,"red works only with red numbers")}imod(e){return null!=this.prime?this.prime.ireduce(e).forceRed(this):(p.move(e,e.umod(this.m).forceRed(this)),e)}neg(e){return e.isZero()?e.clone():this.m.sub(e).forceRed(this)}add(e,t){this.verify2(e,t);let r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r.forceRed(this)}iadd(e,t){this.verify2(e,t);let r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r}sub(e,t){this.verify2(e,t);let r=e.sub(t);return 0>r.cmpn(0)&&r.iadd(this.m),r.forceRed(this)}isub(e,t){this.verify2(e,t);let r=e.isub(t);return 0>r.cmpn(0)&&r.iadd(this.m),r}shl(e,t){return this.verify1(e),this.imod(e.ushln(t))}imul(e,t){return this.verify2(e,t),this.imod(e.imul(t))}mul(e,t){return this.verify2(e,t),this.imod(e.mul(t))}isqr(e){return this.imul(e,e.clone())}sqr(e){return this.mul(e,e)}sqrt(e){if(e.isZero())return e.clone();let t=this.m.andln(3);if(this.assert(t%2==1),3===t){let t=this.m.add(new p(1)).iushrn(2);return this.pow(e,t)}let r=this.m.subn(1),i=0;for(;!r.isZero()&&0===r.andln(1);)i++,r.iushrn(1);this.assert(!r.isZero());let a=new p(1).toRed(this),n=a.redNeg(),s=this.m.subn(1).iushrn(1),o=this.m.bitLength(),c=new p(2*o*o).toRed(this);for(;0!==this.pow(c,s).cmp(n);)c.redIAdd(n);let l=this.pow(c,r),d=this.pow(e,r.addn(1).iushrn(1)),h=this.pow(e,r),u=i;for(;0!==h.cmp(a);){let e=h,t=0;for(;0!==e.cmp(a);t++)e=e.redSqr();this.assert(t<u);let r=this.pow(l,new p(1).iushln(u-t-1));d=d.redMul(r),l=r.redSqr(),h=h.redMul(l),u=t}return d}invm(e){let t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)}pow(e,t){if(t.isZero())return new p(1).toRed(this);if(0===t.cmpn(1))return e.clone();let r=Array(16);r[0]=new p(1).toRed(this),r[1]=e;let i=2;for(;i<r.length;i++)r[i]=this.mul(r[i-1],e);let a=r[0],n=0,s=0,o=t.bitLength()%26;for(0===o&&(o=26),i=t.length-1;i>=0;i--){let e=t.words[i];for(let t=o-1;t>=0;t--){let o=e>>t&1;if(a!==r[0]&&(a=this.sqr(a)),0===o&&0===n){s=0;continue}n<<=1,n|=o,(4==++s||0===i&&0===t)&&(a=this.mul(a,r[n]),s=0,n=0)}o=26}return a}convertTo(e){let t=e.umod(this.m);return t===e?t.clone():t}convertFrom(e){let t=e.clone();return t.red=null,t}}class y extends m{shift;r;r2;rinv;minv;constructor(e){super(e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new p(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}convertTo(e){return this.imod(e.ushln(this.shift))}convertFrom(e){let t=this.imod(e.mul(this.rinv));return t.red=null,t}imul(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;let r=e.imul(t),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=r.isub(i).iushrn(this.shift),n=a;return a.cmp(this.m)>=0?n=a.isub(this.m):0>a.cmpn(0)&&(n=a.iadd(this.m)),n.forceRed(this)}mul(e,t){if(e.isZero()||t.isZero())return new p(0).forceRed(this);let r=e.mul(t),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=r.isub(i).iushrn(this.shift),n=a;return a.cmp(this.m)>=0?n=a.isub(this.m):0>a.cmpn(0)&&(n=a.iadd(this.m)),n.forceRed(this)}invm(e){return this.imod(e._invmp(this.m).mul(this.r2)).forceRed(this)}}class w{curve;type;precomputed;constructor(e){this.curve=new th,this.type=e,this.precomputed=null}}class I extends w{x;y;z;zOne;constructor(e,t,r){super("jacobian"),null===e&&null===t&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new p(0)):(p.isBN(e)||(e=new p(e,16)),this.x=e,p.isBN(t)||(t=new p(t,16)),this.y=t,p.isBN(r)||(r=new p(r,16)),this.z=r),null==this.x.red&&(this.x=this.x.toRed(this.curve.red)),null==this.y.red&&(this.y=this.y.toRed(this.curve.red)),null==this.z.red&&(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}toP(){if(this.isInfinity())return new td(null,null);let e=this.z.redInvm(),t=e.redSqr();return new td(this.x.redMul(t),this.y.redMul(t).redMul(e))}neg(){return new I(this.x,this.y.redNeg(),this.z)}add(e){if(this.isInfinity())return e;if(e.isInfinity())return this;let t=e.z.redSqr(),r=this.z.redSqr(),i=this.x.redMul(t),a=e.x.redMul(r),n=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(r.redMul(this.z)),o=i.redSub(a),c=n.redSub(s);if(0===o.cmpn(0))if(0!==c.cmpn(0))return new I(null,null,null);else return this.dbl();let l=o.redSqr(),d=l.redMul(o),h=i.redMul(l),u=c.redSqr().redIAdd(d).redISub(h).redISub(h),f=c.redMul(h.redISub(u)).redISub(n.redMul(d));return new I(u,f,this.z.redMul(e.z).redMul(o))}mixedAdd(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;if(null===e.x||null===e.y)throw Error("Point coordinates cannot be null");let t=this.z.redSqr(),r=this.x,i=e.x.redMul(t),a=this.y,n=e.y.redMul(t).redMul(this.z),s=r.redSub(i),o=a.redSub(n);if(0===s.cmpn(0))if(0!==o.cmpn(0))return new I(null,null,null);else return this.dbl();let c=s.redSqr(),l=c.redMul(s),d=r.redMul(c),h=o.redSqr().redIAdd(l).redISub(d).redISub(d),u=o.redMul(d.redISub(h)).redISub(a.redMul(l));return new I(h,u,this.z.redMul(s))}dblp(e){if(0===e||this.isInfinity())return this;if(void 0===e)return this.dbl();let t=this;for(let r=0;r<e;r++)t=t.dbl();return t}dbl(){let e,t,r;if(this.isInfinity())return this;if(this.zOne){let i=this.x.redSqr(),a=this.y.redSqr(),n=a.redSqr(),s=this.x.redAdd(a).redSqr().redISub(i).redISub(n);s=s.redIAdd(s);let o=i.redAdd(i).redIAdd(i),c=o.redSqr().redISub(s).redISub(s),l=n.redIAdd(n);l=(l=l.redIAdd(l)).redIAdd(l),e=c,t=o.redMul(s.redISub(c)).redISub(l),r=this.y.redAdd(this.y)}else{let i=this.x.redSqr(),a=this.y.redSqr(),n=a.redSqr(),s=this.x.redAdd(a).redSqr().redISub(i).redISub(n);s=s.redIAdd(s);let o=i.redAdd(i).redIAdd(i),c=o.redSqr(),l=n.redIAdd(n);l=(l=l.redIAdd(l)).redIAdd(l),e=c.redISub(s).redISub(s),t=o.redMul(s.redISub(e)).redISub(l),r=(r=this.y.redMul(this.z)).redIAdd(r)}return new I(e,t,r)}eq(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;let t=this.z.redSqr(),r=e.z.redSqr();if(0!==this.x.redMul(r).redISub(e.x.redMul(t)).cmpn(0))return!1;let i=t.redMul(this.z),a=r.redMul(e.z);return 0===this.y.redMul(a).redISub(e.y.redMul(i)).cmpn(0)}eqXToP(e){let t=this.z.redSqr(),r=e.toRed(this.curve?.red).redMul(t);if(0===this.x.cmp(r))return!0;let i=e.clone();if(null===this.curve||null==this.curve.redN)throw Error("Curve or redN is not initialized.");let a=this.curve.redN.redMul(t);for(;0>i.cmp(this.curve.p)&&(i.iadd(this.curve.n),!(i.cmp(this.curve.p)>=0));)if(r.redIAdd(a),0===this.x.cmp(r))return!0;return!1}inspect(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"}isInfinity(){return 0===this.z.cmpn(0)}}let v=(e,t="Hash assertion failed")=>{if(!e)throw Error(t)};class k{pending;pendingTotal;blockSize;outSize;endian;_delta8;_delta32;padLength;hmacStrength;constructor(e,t,r,i){this.pending=null,this.pendingTotal=0,this.blockSize=e,this.outSize=t,this.hmacStrength=r,this.padLength=i/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}_update(e,t){throw Error("Not implemented")}_digest(){throw Error("Not implemented")}_digestHex(){throw Error("Not implemented")}update(e,t){if(e=S(e,t),null==this.pending?this.pending=e:this.pending=this.pending.concat(e),this.pendingTotal+=e.length,this.pending.length>=this._delta8){let t=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-t,e.length),0===this.pending.length&&(this.pending=null),e=function(e,t,r,i){let a=r-0;v(a%4==0);let n=Array(a/4);for(let r=0,a=t;r<n.length;r++,a+=4){let t;t="big"===i?e[a]<<24|e[a+1]<<16|e[a+2]<<8|e[a+3]:e[a+3]<<24|e[a+2]<<16|e[a+1]<<8|e[a],n[r]=t>>>0}return n}(e,0,e.length-t,this.endian);for(let t=0;t<e.length;t+=this._delta32)this._update(e,t)}return this}digest(){return this.update(this._pad()),v(null===this.pending),this._digest()}digestHex(){return this.update(this._pad()),v(null===this.pending),this._digestHex()}_pad(){let e,t,r=this.pendingTotal,i=this._delta8,a=i-(r+this.padLength)%i,n=Array(a+this.padLength);for(e=1,n[0]=128;e<a;e++)n[e]=0;if(r<<=3,"big"===this.endian){for(t=8;t<this.padLength;t++)n[e++]=0;n[e++]=0,n[e++]=0,n[e++]=0,n[e++]=0,n[e++]=r>>>24&255,n[e++]=r>>>16&255,n[e++]=r>>>8&255,n[e++]=255&r}else for(t=8,n[e++]=255&r,n[e++]=r>>>8&255,n[e++]=r>>>16&255,n[e++]=r>>>24&255,n[e++]=0,n[e++]=0,n[e++]=0,n[e++]=0;t<this.padLength;t++)n[e++]=0;return n}}function S(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];let r=[];if("string"==typeof e)if("hex"!==t){let t=0;for(let n=0;n<e.length;n++){let s=e.charCodeAt(n);if(s<128)r[t++]=s;else if(s<2048)r[t++]=s>>6|192,r[t++]=63&s|128;else{var i,a;(i=e,a=n,(64512&i.charCodeAt(a))!=55296||a<0||a+1>=i.length?1:(64512&i.charCodeAt(a+1))!=56320)?r[t++]=s>>12|224:(s=65536+((1023&s)<<10)+(1023&e.charCodeAt(++n)),r[t++]=s>>18|240,r[t++]=s>>12&63|128),r[t++]=s>>6&63|128,r[t++]=63&s|128}}}else{(e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e);for(let t=0;t<e.length;t+=2)r.push(parseInt(e[t]+e[t+1],16))}else for(let t=0;t<e.length;t++)r[t]=0|e[t];return r}function x(e,t){let r="";for(let a=0;a<e.length;a++){var i;let n=e[a];"little"===t&&(n=((i=n)>>>24|i>>>8&65280|i<<8&0xff0000|(255&i)<<24)>>>0),r+=function(e){if(7===e.length)return"0"+e;if(6===e.length)return"00"+e;if(5===e.length)return"000"+e;if(4===e.length)return"0000"+e;if(3===e.length)return"00000"+e;else if(2===e.length)return"000000"+e;else if(1===e.length)return"0000000"+e;else return e}(n.toString(16))}return r}function P(e){let t="";for(let r of e)t+=r.toString(16).padStart(2,"0");return t}function E(e,t){let r=Array(4*e.length);for(let i=0,a=0;i<e.length;i++,a+=4){let n=e[i];"big"===t?(r[a]=n>>>24,r[a+1]=n>>>16&255,r[a+2]=n>>>8&255,r[a+3]=255&n):(r[a+3]=n>>>24,r[a+2]=n>>>16&255,r[a+1]=n>>>8&255,r[a]=255&n)}return r}function N(e,t){return e>>>t|e<<32-t}function O(e,t){return e<<t|e>>>32-t}function _(e,t){return e+t>>>0}let A=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],T=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],C=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],V=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11];function R(e,t,r,i){return e<=15?t^r^i:e<=31?t&r|~t&i:e<=47?(t|~r)^i:e<=63?t&i|r&~i:t^(r|~i)}class U extends k{h;constructor(){super(512,160,192,64),this.endian="little",this.h=[0x67452301,0xefcdab89,0x98badcfe,0x10325476,0xc3d2e1f0],this.endian="little"}_update(e,t){var r,i,a,n,s,o;let c,l=this.h[0],d=this.h[1],h=this.h[2],u=this.h[3],f=this.h[4],p=l,b=d,g=h,m=u,y=f;for(let w=0;w<80;w++){c=_(O((r=l,i=R(w,d,h,u),r+i+e[A[w]+t]+((s=w)<=15?0:s<=31?0x5a827999:s<=47?0x6ed9eba1:s<=63?0x8f1bbcdc:0xa953fd4e)>>>0),C[w]),f),l=f,f=u,u=O(h,10),h=d,d=c,c=_(O((a=p,n=R(79-w,b,g,m),a+n+e[T[w]+t]+((o=w)<=15?0x50a28be6:o<=31?0x5c4dd124:o<=47?0x6d703ef3:0x7a6d76e9*!!(o<=63))>>>0),V[w]),y),p=y,y=m,m=O(g,10),g=b,b=c}c=this.h[1]+h+m>>>0,this.h[1]=this.h[2]+u+y>>>0,this.h[2]=this.h[3]+f+p>>>0,this.h[3]=this.h[4]+l+b>>>0,this.h[4]=this.h[0]+d+g>>>0,this.h[0]=c}_digest(){return E(this.h,"little")}_digestHex(){return x(this.h,"little")}}class D{h;constructor(){this.h=new eE}update(e,t){let r=Uint8Array.from(S(e,t));return this.h.update(r),this}digest(){return Array.from(this.h.digest())}digestHex(){return P(this.h.digest())}}class B extends k{h;W;k;constructor(){super(512,160,80,64),this.k=[0x5a827999,0x6ed9eba1,0x8f1bbcdc,0xca62c1d6],this.h=[0x67452301,0xefcdab89,0x98badcfe,0x10325476,0xc3d2e1f0],this.W=Array(80)}_update(e,t){let r,i=this.W;for(void 0===t&&(t=0),r=0;r<16;r++)i[r]=e[t+r];for(;r<i.length;r++)i[r]=O(i[r-3]^i[r-8]^i[r-14]^i[r-16],1);let a=this.h[0],n=this.h[1],s=this.h[2],o=this.h[3],c=this.h[4];for(r=0;r<i.length;r++){var l,d,h,u,f,p,b,g,m;let e=~~(r/20),t=(u=O(a,5),l=n,d=s,h=o,f=0===e?(p=l)&d^~p&h:1===e||3===e?l^d^h:2===e?(b=l)&(g=d)^b&(m=h)^g&m:0,u+f+c+i[r]+this.k[e]>>>0);c=o,o=s,s=O(n,30),n=a,a=t}this.h[0]=_(this.h[0],a),this.h[1]=_(this.h[1],n),this.h[2]=_(this.h[2],s),this.h[3]=_(this.h[3],o),this.h[4]=_(this.h[4],c)}_digest(){return E(this.h,"big")}_digestHex(){return x(this.h,"big")}}class L{h;constructor(){this.h=new eR}update(e,t){let r=Uint8Array.from(S(e,t));return this.h.update(r),this}digest(){return Array.from(this.h.digest())}digestHex(){return P(this.h.digest())}}class H{h;blockSize=64;outSize=32;constructor(e){let t=Uint8Array.from(S(e,"hex"));this.h=new eD(eN,t)}update(e,t){return this.h.update(Uint8Array.from(S(e,t))),this}digest(){return Array.from(this.h.digest())}digestHex(){return P(this.h.digest())}}class K{inner;outer;blockSize=64;constructor(e){let t;for((e=S(e,"hex")).length>this.blockSize&&(e=new B().update(e).digest()),t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(t=0,this.inner=new B().update(e);t<e.length;t++)e[t]^=106;this.outer=new B().update(e)}update(e,t){return this.inner.update(e,t),this}digest(){return this.outer.update(this.inner.digest()),this.outer.digest()}digestHex(){return this.outer.update(this.inner.digest()),this.outer.digestHex()}}class F{h;blockSize=128;outSize=32;constructor(e){let t=Uint8Array.from(S(e,"hex"));this.h=new eD(eU,t)}update(e,t){return this.h.update(Uint8Array.from(S(e,t))),this}digest(){return Array.from(this.h.digest())}digestHex(){return P(this.h.digest())}}let q=(e,t)=>new U().update(e,t).digest(),M=(e,t)=>new B().update(e,t).digest(),$=(e,t)=>new D().update(e,t).digest(),z=(e,t)=>new L().update(e,t).digest(),W=(e,t)=>{let r=new D().update(e,t).digest();return new D().update(r).digest()},j=(e,t)=>{let r=new D().update(e,t).digest();return new U().update(r).digest()},G=(e,t,r)=>new H(e).update(t,r).digest(),X=(e,t,r)=>new F(e).update(t,r).digest();function Y(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got ${e}`)}function J(e,...t){if(!(e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length)){let r=t.join(",");throw Error(`Uint8Array expected of length ${r}, got length=${e.length}`)}}function Z(e){if("function"!=typeof e||"function"!=typeof e.create)throw Error("Hash should be wrapped by utils.createHasher");Y(e.outputLen),Y(e.blockLen)}function Q(e,t=!0){if(!0===e.destroyed)throw Error("Hash instance has been destroyed");if(t&&!0===e.finished)throw Error("Hash#digest() has already been called")}function ee(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function et(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function er(e){return"string"==typeof e&&(e=ei(e)),J(e),e}function ei(e){if("string"!=typeof e)throw Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function ea(e){return"string"==typeof e&&(e=ei(e)),J(e),e}class en{}function es(e){let t=t=>e().update(er(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}let eo=BigInt(0x100000000-1),ec=BigInt(32),el=(e,t,r)=>e>>>r,ed=(e,t,r)=>e<<32-r|t>>>r,eh=(e,t,r)=>e>>>r|t<<32-r,eu=(e,t,r)=>e<<32-r|t>>>r,ef=(e,t,r)=>e<<64-r|t>>>r-32,ep=(e,t,r)=>e>>>r-32|t<<64-r;function eb(e,t,r,i){let a=(t>>>0)+(i>>>0);return{h:e+r+(a/0x100000000|0)|0,l:0|a}}let eg=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),em=(e,t,r,i)=>t+r+i+(e/0x100000000|0)|0,ey=(e,t,r,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(i>>>0),ew=(e,t,r,i,a)=>t+r+i+a+(e/0x100000000|0)|0,eI=(e,t,r,i,a)=>(e>>>0)+(t>>>0)+(r>>>0)+(i>>>0)+(a>>>0),ev=(e,t,r,i,a,n)=>t+r+i+a+n+(e/0x100000000|0)|0;class ek extends en{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,r,i){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=i,this.buffer=new Uint8Array(e),this.view=et(this.buffer)}update(e){Q(this),J(e=er(e));let{view:t,buffer:r,blockLen:i}=this,a=e.length;for(let n=0;n<a;){let s=Math.min(i-this.pos,a-n);if(s===i){let t=et(e);for(;i<=a-n;n+=i)this.process(t,n);continue}r.set(e.subarray(n,n+s),this.pos),this.pos+=s,n+=s,this.pos===i&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Q(this);J(e);let t=this.outputLen;if(e.length<t)throw Error(`digestInto() expects output buffer of length at least ${t}`);this.finished=!0;let{buffer:r,view:i,blockLen:a,isLE:n}=this,{pos:s}=this;r[s++]=128,ee(this.buffer.subarray(s)),this.padOffset>a-s&&(this.process(i,0),s=0);for(let e=s;e<a;e++)r[e]=0;(function(e,t,r,i){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,r,i);let a=BigInt(32),n=BigInt(0xffffffff),s=Number(r>>a&n),o=Number(r&n),c=4*!!i,l=4*!i;e.setUint32(t+c,s,i),e.setUint32(t+l,o,i)})(i,a-8,BigInt(8*this.length),n),this.process(i,0);let o=et(e),c=this.outputLen;if(c%4!=0)throw Error("_sha2: outputLen should be aligned to 32bit");let l=c/4,d=this.get();if(l>d.length)throw Error("_sha2: outputLen bigger than state");for(let e=0;e<l;e++)o.setUint32(4*e,d[e],n)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){(e||=new this.constructor).set(...this.get());let{blockLen:t,buffer:r,length:i,finished:a,destroyed:n,pos:s}=this;return e.destroyed=n,e.finished=a,e.length=i,e.pos=s,i%t!=0&&e.buffer.set(r),e}clone(){return this._cloneInto()}}let eS=Uint32Array.from([0x6a09e667,0xbb67ae85,0x3c6ef372,0xa54ff53a,0x510e527f,0x9b05688c,0x1f83d9ab,0x5be0cd19]),ex=Uint32Array.from([0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2]),eP=new Uint32Array(64);class eE extends ek{A=0|eS[0];B=0|eS[1];C=0|eS[2];D=0|eS[3];E=0|eS[4];F=0|eS[5];G=0|eS[6];H=0|eS[7];constructor(e=32){super(64,e,8,!1)}get(){let{A:e,B:t,C:r,D:i,E:a,F:n,G:s,H:o}=this;return[e,t,r,i,a,n,s,o]}set(e,t,r,i,a,n,s,o){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|i,this.E=0|a,this.F=0|n,this.G=0|s,this.H=0|o}process(e,t){var r,i,a,n,s,o,c,l,d;for(let r=0;r<16;r++,t+=4)eP[r]=e.getUint32(t);for(let e=16;e<64;e++){let t=eP[e-15],r=eP[e-2],i=N(t,7)^N(t,18)^t>>>3,a=N(r,17)^N(r,19)^r>>>10;eP[e]=_(_(i,eP[e-7]),_(a,eP[e-16]))}let{A:h,B:u,C:f,D:p,E:b,F:g,G:m,H:y}=this;for(let e=0;e<64;e++){let t=(a=y,n=N(r=b,6)^N(r,11)^N(r,25),s=(i=b)&g^~i&m,a+n+s+ex[e]+eP[e]>>>0),w=_(N(o=h,2)^N(o,13)^N(o,22),(c=h)&(l=u)^c&(d=f)^l&d);y=m,m=g,g=b,b=_(p,t),p=f,f=u,u=h,h=_(t,w)}this.A=_(this.A,h),this.B=_(this.B,u),this.C=_(this.C,f),this.D=_(this.D,p),this.E=_(this.E,b),this.F=_(this.F,g),this.G=_(this.G,m),this.H=_(this.H,y)}roundClean(){ee(eP)}destroy(){ee(this.buffer),this.set(0,0,0,0,0,0,0,0)}}let eN=es(()=>new eE),eO=Uint32Array.from([0x6a09e667,0xf3bcc908,0xbb67ae85,0x84caa73b,0x3c6ef372,0xfe94f82b,0xa54ff53a,0x5f1d36f1,0x510e527f,0xade682d1,0x9b05688c,0x2b3e6c1f,0x1f83d9ab,0xfb41bd6b,0x5be0cd19,0x137e2179]),e_=function(e,t=!1){let r=e.length,i=new Uint32Array(r),a=new Uint32Array(r);for(let n=0;n<r;n++){let{h:r,l:s}=function(e,t=!1){return t?{h:Number(e&eo),l:Number(e>>ec&eo)}:{h:0|Number(e>>ec&eo),l:0|Number(e&eo)}}(e[n],t);i[n]=r,a[n]=s}return[i,a]}(["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(e=>BigInt(e))),eA=e_[0],eT=e_[1],eC=new Uint32Array(80),eV=new Uint32Array(80);class eR extends ek{Ah=0|eO[0];Al=0|eO[1];Bh=0|eO[2];Bl=0|eO[3];Ch=0|eO[4];Cl=0|eO[5];Dh=0|eO[6];Dl=0|eO[7];Eh=0|eO[8];El=0|eO[9];Fh=0|eO[10];Fl=0|eO[11];Gh=0|eO[12];Gl=0|eO[13];Hh=0|eO[14];Hl=0|eO[15];constructor(e=64){super(128,e,16,!1)}get(){let{Ah:e,Al:t,Bh:r,Bl:i,Ch:a,Cl:n,Dh:s,Dl:o,Eh:c,El:l,Fh:d,Fl:h,Gh:u,Gl:f,Hh:p,Hl:b}=this;return[e,t,r,i,a,n,s,o,c,l,d,h,u,f,p,b]}set(e,t,r,i,a,n,s,o,c,l,d,h,u,f,p,b){this.Ah=0|e,this.Al=0|t,this.Bh=0|r,this.Bl=0|i,this.Ch=0|a,this.Cl=0|n,this.Dh=0|s,this.Dl=0|o,this.Eh=0|c,this.El=0|l,this.Fh=0|d,this.Fl=0|h,this.Gh=0|u,this.Gl=0|f,this.Hh=0|p,this.Hl=0|b}process(e,t){for(let r=0;r<16;r++,t+=4)eC[r]=e.getUint32(t),eV[r]=e.getUint32(t+=4);for(let e=16;e<80;e++){let t=0|eC[e-15],r=0|eV[e-15],i=eh(t,r,1)^eh(t,r,8)^el(t,r,7),a=eu(t,r,1)^eu(t,r,8)^ed(t,r,7),n=0|eC[e-2],s=0|eV[e-2],o=eh(n,s,19)^ef(n,s,61)^el(n,s,6),c=ey(a,eu(n,s,19)^ep(n,s,61)^ed(n,s,6),eV[e-7],eV[e-16]),l=ew(c,i,o,eC[e-7],eC[e-16]);eC[e]=0|l,eV[e]=0|c}let{Ah:r,Al:i,Bh:a,Bl:n,Ch:s,Cl:o,Dh:c,Dl:l,Eh:d,El:h,Fh:u,Fl:f,Gh:p,Gl:b,Hh:g,Hl:m}=this;for(let e=0;e<80;e++){let t=eh(d,h,14)^eh(d,h,18)^ef(d,h,41),y=eu(d,h,14)^eu(d,h,18)^ep(d,h,41),w=d&u^~d&p,I=eI(m,y,h&f^~h&b,eT[e],eV[e]),v=ev(I,g,t,w,eA[e],eC[e]),k=0|I,S=eh(r,i,28)^ef(r,i,34)^ef(r,i,39),x=eu(r,i,28)^ep(r,i,34)^ep(r,i,39),P=r&a^r&s^a&s,E=i&n^i&o^n&o;g=0|p,m=0|b,p=0|u,b=0|f,u=0|d,f=0|h,({h:d,l:h}=eb(0|c,0|l,0|v,0|k)),c=0|s,l=0|o,s=0|a,o=0|n,a=0|r,n=0|i;let N=eg(x,E,k);r=em(N,S,P,v),i=0|N}({h:r,l:i}=eb(r,i,this.Ah,this.Al)),({h:a,l:n}=eb(a,n,this.Bh,this.Bl)),({h:s,l:o}=eb(s,o,this.Ch,this.Cl)),({h:c,l:l}=eb(c,l,this.Dh,this.Dl)),({h:d,l:h}=eb(d,h,this.Eh,this.El)),({h:u,l:f}=eb(u,f,this.Fh,this.Fl)),({h:p,l:b}=eb(p,b,this.Gh,this.Gl)),({h:g,l:m}=eb(g,m,this.Hh,this.Hl)),this.set(r,i,a,n,s,o,c,l,d,h,u,f,p,b,g,m)}roundClean(){ee(eC,eV)}destroy(){ee(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}let eU=es(()=>new eR);class eD extends en{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(e,t){super(),Z(e);let r=er(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,a=new Uint8Array(i);a.set(r.length>i?e.create().update(r).digest():r);for(let e=0;e<a.length;e++)a[e]^=54;this.iHash.update(a),this.oHash=e.create();for(let e=0;e<a.length;e++)a[e]^=106;this.oHash.update(a),ee(a)}update(e){return Q(this),this.iHash.update(e),this}digestInto(e){Q(this),J(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:r,finished:i,destroyed:a,blockLen:n,outputLen:s}=this;return e.finished=i,e.destroyed=a,e.blockLen=n,e.outputLen=s,e.oHash=t._cloneInto(e.oHash??void 0),e.iHash=r._cloneInto(e.iHash??void 0),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}let eB=(e,t,r)=>new eD(e,t).update(r).digest();function eL(e,t,r,i,a="sha512"){if("sha512"!==a)throw Error("Only sha512 is supported in this PBKDF2 implementation");try{let n=require("crypto");if("function"==typeof n.pbkdf2Sync){let s=Buffer.from(e),o=Buffer.from(t);return[...n.pbkdf2Sync(s,o,r,i,a)]}}catch{}return Array.from(function(e,t,r,i){let a;Z(e);let{c:n,dkLen:s}=Object.assign({dkLen:32},i);if(Y(n),Y(s),n<1)throw Error("iterations (c) should be >= 1");let o=ea(t),c=ea(r),l=new Uint8Array(s),d=eB.create(e,o),h=d._cloneInto().update(c),u=new Uint8Array(4),f=et(u),p=new Uint8Array(d.outputLen);for(let e=1,t=0;t<s;e++,t+=d.outputLen){let r=l.subarray(t,t+d.outputLen);f.setInt32(0,e,!1),(a=h._cloneInto(a)).update(u).digestInto(p),r.set(p.subarray(0,r.length));for(let e=1;e<n;e++){d._cloneInto(a).update(p).digestInto(p);for(let e=0;e<r.length;e++)r[e]^=p[e]}}return d.destroy(),h.destroy(),null!=a&&a.destroy(),ee(p),l}(eU,Uint8Array.from(e),Uint8Array.from(t),{c:r,dkLen:i}))}eB.create=(e,t)=>new eD(e,t);let eH=e=>e.length%2==1?"0"+e:e,eK=e=>{let t="";for(let r of e)t+=eH(r.toString(16));return t},eF=(e,t)=>{if(Array.isArray(e))return e.slice();if(void 0===e)return[];if("string"!=typeof e)return Array.from(e,e=>0|e);switch(t){case"hex":return eq(e);case"base64":return eM(e);default:return function(e){let t=[];for(let r=0;r<e.length;r++){let i=e.codePointAt(r);if(void 0===i)throw Error(`Index out of range: ${r}`);let a=i;a>65535?r++:a>=55296&&a<=57343&&(a=65533),a<=127?t.push(a):a<=2047?t.push(192|a>>6,128|63&a):a<=65535?t.push(224|a>>12,128|a>>6&63,128|63&a):t.push(240|a>>18,128|a>>12&63,128|a>>6&63,128|63&a)}return t}(e)}},eq=e=>{(e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e);let t=[];for(let r=0;r<e.length;r+=2)t.push(parseInt(e[r]+e[r+1],16));return t},eM=e=>{let t=[],r=0,i=0;for(let a of e.replace(/=+$/,""))r=r<<6|"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a),(i+=6)>=8&&(i-=8,t.push(r>>i&255),r&=(1<<i)-1);return t},e$=e=>{let t="",r=0;for(let i=0;i<e.length;i++){let a=e[i];if(r>0){r--;continue}if(a<=127)t+=String.fromCharCode(a);else if(a>=192&&a<=223)r=1,t+=String.fromCharCode((31&a)<<6|63&e[i+1]);else if(a>=224&&a<=239){let n=e[i+1];r=2,t+=String.fromCharCode((15&a)<<12|(63&n)<<6|63&e[i+2])}else if(a>=240&&a<=247){let n=e[i+1],s=e[i+2],o=e[i+3];r=3;let c=(7&a)<<18|(63&n)<<12|(63&s)<<6|63&o;t+=String.fromCharCode(55296+(c-65536>>10),56320+(c-65536&1023))}}return t},ez=(e,t)=>{switch(t){case"hex":return eK(e);case"utf8":return e$(e);default:return e}};function eW(e){let t,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i="";for(t=0;t<e.length;t+=3){let a=e[t],n=t+1<e.length?e[t+1]:0,s=t+2<e.length?e[t+2]:0,o=a>>2,c=(3&a)<<4|n>>4,l=(15&n)<<2|s>>6,d=63&s;i+=r.charAt(o)+r.charAt(c),i+=t+1<e.length?r.charAt(l):"=",i+=t+2<e.length?r.charAt(d):"="}return i}let ej="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",eG=e=>{if(""===e||"string"!=typeof e)throw Error(`Expected base58 string but got “${e}”`);let t=e.match(/[IOl0]/gmu);if(null!==t)throw Error(`Invalid base58 character “${t.join("")}”`);let r=e.match(/^1+/gmu),i=null!==r?r[0].length:0,a=(e.length-i)*(Math.log(58)/Math.log(256))+1>>>0;return[...new Uint8Array([...new Uint8Array(i),...(e.match(/./gmu)??[]).map(e=>ej.indexOf(e)).reduce((e,t)=>e=e.map(e=>{let r=58*e+t;return t=r>>8,r}),new Uint8Array(a)).reverse().filter((e=>t=>e=e||t)(!1))])]},eX=e=>{let t=Array(256).fill(-1);for(let e=0;e<ej.length;++e)t[ej.charCodeAt(e)]=e;let r=[];for(let i of e){let e=i;for(let i=0;i<r.length;++i){let a=(t[r[i]]<<8)+e;r[i]=ej.charCodeAt(a%58),e=a/58|0}for(;0!==e;)r.push(ej.charCodeAt(e%58)),e=e/58|0}for(let t of e)if(0!==t)break;else r.push(49);return r.reverse(),String.fromCharCode(...r)},eY=(e,t=[0])=>{let r=W([...t,...e]);return eX(r=[...t,...e,...r.slice(0,4)])},eJ=(e,t,r=1)=>{let i=eG(e),a=i.slice(0,r),n=i.slice(r,-4),s=[...a,...n];return s=W(s),i.slice(-4).forEach((e,t)=>{if(e!==s[t])throw Error("Invalid checksum")}),"hex"===t&&(a=eK(a),n=eK(n)),{prefix:a,data:n}};class eZ{bufs;length;constructor(e){for(let t of(this.bufs=void 0!==e?e:[],this.length=0,this.bufs))this.length+=t.length}getLength(){return this.length}toArray(){let e=Array(this.length),t=0;for(let r of this.bufs)for(let i of r)e[t++]=i;return e}write(e){return this.bufs.push(e),this.length+=e.length,this}writeReverse(e){let t=Array(e.length);for(let r=0;r<t.length;r++)t[r]=e[e.length-1-r];return this.bufs.push(t),this.length+=t.length,this}writeUInt8(e){let t=[,];return t[0]=e,this.write(t),this}writeInt8(e){let t=[,];return t[0]=255&e,this.write(t),this}writeUInt16BE(e){return this.bufs.push([e>>8&255,255&e]),this.length+=2,this}writeInt16BE(e){return this.writeUInt16BE(65535&e)}writeUInt16LE(e){return this.bufs.push([255&e,e>>8&255]),this.length+=2,this}writeInt16LE(e){return this.writeUInt16LE(65535&e)}writeUInt32BE(e){return this.bufs.push([e>>24&255,e>>16&255,e>>8&255,255&e]),this.length+=4,this}writeInt32BE(e){return this.writeUInt32BE(e>>>0)}writeUInt32LE(e){return this.bufs.push([255&e,e>>8&255,e>>16&255,e>>24&255]),this.length+=4,this}writeInt32LE(e){return this.writeUInt32LE(e>>>0)}writeUInt64BEBn(e){let t=e.toArray("be",8);return this.write(t),this}writeUInt64LEBn(e){let t=e.toArray("be",8);return this.writeReverse(t),this}writeUInt64LE(e){let t=new p(e).toArray("be",8);return this.writeReverse(t),this}writeVarIntNum(e){let t=eZ.varIntNum(e);return this.write(t),this}writeVarIntBn(e){let t=eZ.varIntBn(e);return this.write(t),this}static varIntNum(e){let t;if(e<0)return this.varIntBn(new p(e));if(e<253)t=[e];else if(e<65536)t=[253,255&e,e>>8&255];else if(e<0x100000000)t=[254,255&e,e>>8&255,e>>16&255,e>>24&255];else{let r=0|e,i=0|Math.floor(e/0x100000000);t=[255,255&r,r>>8&255,r>>16&255,r>>24&255,255&i,i>>8&255,i>>16&255,i>>24&255]}return t}static varIntBn(e){let t;if(e.isNeg()&&(e=e.add(e2)),e.ltn(253))t=[e.toNumber()];else if(e.ltn(65536)){let r=e.toNumber();t=[253,255&r,r>>8&255]}else if(e.lt(new p(0x100000000))){let r=e.toNumber();t=[254,255&r,r>>8&255,r>>16&255,r>>24&255]}else{let r=new eZ;r.writeUInt8(255),r.writeUInt64LEBn(e),t=r.toArray()}return t}}class eQ{bin;pos;length;constructor(e=[],t=0){this.bin=e,this.pos=t,this.length=e.length}eof(){return this.pos>=this.length}read(e=this.length){let t=this.pos,r=this.pos+e;return this.pos=r,this.bin.slice(t,r)}readReverse(e=this.length){let t=Array(e);for(let r=0;r<e;r++)t[r]=this.bin[this.pos+e-1-r];return this.pos+=e,t}readUInt8(){let e=this.bin[this.pos];return this.pos+=1,e}readInt8(){let e=this.bin[this.pos];return this.pos+=1,(128&e)!=0?e-256:e}readUInt16BE(){let e=this.bin[this.pos]<<8|this.bin[this.pos+1];return this.pos+=2,e}readInt16BE(){let e=this.readUInt16BE();return(32768&e)!=0?e-65536:e}readUInt16LE(){let e=this.bin[this.pos]|this.bin[this.pos+1]<<8;return this.pos+=2,e}readInt16LE(){let e=this.readUInt16LE();return(32768&e)!=0?e-65536:e}readUInt32BE(){let e=0x1000000*this.bin[this.pos]+(this.bin[this.pos+1]<<16|this.bin[this.pos+2]<<8|this.bin[this.pos+3]);return this.pos+=4,e}readInt32BE(){let e=this.readUInt32BE();return(0x80000000&e)!=0?e-0x100000000:e}readUInt32LE(){let e=(this.bin[this.pos]|this.bin[this.pos+1]<<8|this.bin[this.pos+2]<<16|this.bin[this.pos+3]<<24)>>>0;return this.pos+=4,e}readInt32LE(){let e=this.readUInt32LE();return(0x80000000&e)!=0?e-0x100000000:e}readUInt64BEBn(){let e=new p(this.bin.slice(this.pos,this.pos+8));return this.pos=this.pos+8,e}readUInt64LEBn(){return new p(this.readReverse(8))}readInt64LEBn(){let e=new p(this.readReverse(8));return e.gte(e1)&&(e=e.sub(e2)),e}readVarIntNum(e=!0){let t,r=this.readUInt8();switch(r){case 253:return this.readUInt16LE();case 254:return this.readUInt32LE();case 255:if((t=e?this.readInt64LEBn():this.readUInt64LEBn()).lte(new p(2).pow(new p(53))))return t.toNumber();throw Error("number too large to retain precision - use readVarIntBn");default:return r}}readVarInt(){switch(this.bin[this.pos]){case 253:return this.read(3);case 254:return this.read(5);case 255:return this.read(9);default:return this.read(1)}}readVarIntBn(){let e=this.readUInt8();switch(e){case 253:return new p(this.readUInt16LE());case 254:return new p(this.readUInt32LE());case 255:return this.readUInt64LEBn();default:return new p(e)}}}let e0=e=>{if(0===e.length)return e;let t=e[e.length-1];if((127&t)!=0)return e;if(1===e.length)return[];if((128&e[e.length-2])!=0)return e;for(let r=e.length-1;r>0;r--)if(0!==e[r-1])if((128&e[r-1])!=0)return e[r]=t,e.slice(0,r+1);else return e[r-1]|=t,e.slice(0,r);return[]},e1=new p(2).pow(new p(63)),e2=new p(2).pow(new p(64)),e8=(1n<<256n)-1n;function e3(e){let t=e>>256n;return t=(e=(e&e8)+(t<<32n)+977n*t)>>256n,(e=(e&e8)+(t<<32n)+977n*t)>=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn&&(e-=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn),e}let e6=e=>e3((e%0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn+0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn)%0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn),e4=(e,t)=>e>=t?e-t:0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn-(t-e),e5=(e,t)=>e3(e*t),e7=e=>{let t=1n,r=0n,i=e6(e),a=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn;for(;i>1n;){let e=a/i;[t,r]=[r-t*e,t],[i,a]=[a-i*e,i]}return e6(t)},e9=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn+1n>>2n,te=BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),tt=BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"),tr=new Map,ti=e=>{let{X:t,Y:r,Z:i}=e;if(0n===r)return{X:0n,Y:1n,Z:0n};let a=e5(r,r),n=e5(4n,e5(t,a)),s=e5(3n,e5(t,t)),o=e4(e5(s,s),e5(2n,n)),c=e4(e5(s,e4(n,o)),e5(8n,e5(a,a)));return{X:o,Y:c,Z:e5(2n,e5(r,i))}},ta=(e,t)=>{if(0n===e.Z)return t;if(0n===t.Z)return e;let r=e5(e.Z,e.Z),i=e5(t.Z,t.Z),a=e5(e.X,i),n=e5(t.X,r),s=e5(e.Y,e5(i,t.Z)),o=e5(t.Y,e5(r,e.Z)),c=e4(n,a),l=e4(o,s);if(0n===c)return 0n===l?ti(e):{X:0n,Y:1n,Z:0n};let d=e5(c,c),h=e5(c,d),u=e5(a,d),f=e4(e4(e5(l,l),h),e5(2n,u)),p=e4(e5(l,e4(u,f)),e5(s,h));return{X:f,Y:p,Z:e5(c,e5(e.Z,t.Z))}},tn=e=>0n===e.Z?e:{X:e.X,Y:0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn-e.Y,Z:e.Z},ts=(e,t,r=5)=>{let i,a=`${r}:${t.x.toString(16)}:${t.y.toString(16)}`,n=tr.get(a);if(void 0===n){let e=1<<r-1;n=Array(e),i={X:t.x,Y:t.y,Z:1n},n[0]=i;let s=ti(i);for(let t=1;t<e;t++)n[t]=ta(n[t-1],s);tr.set(a,n)}else i=n[0];let s=[],o=1n<<BigInt(r),c=o>>1n,l=e;for(;l>0n;)if((1n&l)===0n)s.push(0),l>>=1n;else{let e=l&o-1n;e>c&&(e-=o),s.push(Number(e)),l-=e,l>>=1n}let d={X:0n,Y:1n,Z:0n};for(let e=s.length-1;e>=0;e--){d=ti(d);let t=s[e];if(0!==t){let e=Math.abs(t)>>1;d=ta(d,t>0?n[e]:tn(n[e]))}}return d},to=e=>{let t=e%0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n;return t<0n&&(t+=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n),t},tc=(e,t)=>to(e*t),tl=e=>{let t=1n,r=0n,i=to(e),a=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n;for(;i>1n;){let e=a/i;[t,r]=[r-t*e,t],[i,a]=[a-i*e,i]}return to(t)};class td extends w{x;y;inf;static fromDER(e){if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==64){if(6===e[0]){if(e[e.length-1]%2!=0)throw Error("Point string value is wrong length")}else if(7===e[0]&&e[e.length-1]%2!=1)throw Error("Point string value is wrong length");return new td(e.slice(1,33),e.slice(33,65))}if((2===e[0]||3===e[0])&&e.length-1==32)return td.fromX(e.slice(1,33),3===e[0]);throw Error("Unknown point format")}static fromString(e){let t=eF(e,"hex");return td.fromDER(t)}static fromX(e,t){let r,i=p.isBN(e)?BigInt("0x"+e.toString(16)):"string"==typeof e?BigInt("0x"+e):Array.isArray(e)?BigInt("0x"+eK(e)):BigInt(e),a=(e=>{let t=((e,t)=>{let r=1n;e=e6(e);let i=t;for(;i>0n;)(1n&i)===1n&&(r=e5(r,e)),e=e5(e,e),i>>=1n;return r})(e,e9);return e5(t,t)===e6(e)?t:null})(e3(e5(e5(r=i=e6(i),r),i)+7n));if(null===a)throw Error("Invalid point");let n=a;return(1n&n)!==(t?1n:0n)&&(n=e4(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,n)),new td(new p(i.toString(16),16),new p(n.toString(16),16))}static fromJSON(e,t){"string"==typeof e&&(e=JSON.parse(e));let r=new td(e[0],e[1],t);if("object"!=typeof e[2])return r;let i=e=>new td(e[0],e[1],t),a=e[2];return r.precomputed={beta:null,doubles:"object"==typeof a.doubles&&null!==a.doubles?{step:a.doubles.step,points:[r].concat(a.doubles.points.map(i))}:void 0,naf:"object"==typeof a.naf&&null!==a.naf?{wnd:a.naf.wnd,points:[r].concat(a.naf.points.map(i))}:void 0},r}constructor(e,t,r=!0){super("affine"),this.precomputed=null,null===e&&null===t?(this.x=null,this.y=null,this.inf=!0):(p.isBN(e)||(e=new p(e,16)),this.x=e,p.isBN(t)||(t=new p(t,16)),this.y=t,r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),null===this.x.red&&(this.x=this.x.toRed(this.curve.red)),null===this.y.red&&(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}validate(){return this.curve.validate(this)}encode(e=!0,t){let r,i=this.curve.p.byteLength(),a=this.getX().toArray("be",i);return(r=e?[this.getY().isEven()?2:3].concat(a):[4].concat(a,this.getY().toArray("be",i)),"hex"!==t)?r:eK(r)}toString(){return this.encode(!0,"hex")}toJSON(){return null==this.precomputed?[this.x,this.y]:[this.x,this.y,"object"==typeof this.precomputed&&null!==this.precomputed?{doubles:null!=this.precomputed.doubles?{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)}:void 0,naf:null!=this.precomputed.naf?{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}:void 0}:void 0]}inspect(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+(this.x?.fromRed()?.toString(16,2)??"undefined")+" y: "+(this.y?.fromRed()?.toString(16,2)??"undefined")+">"}isInfinity(){return this.inf}add(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e)||this.x?.cmp(e.x??new p(0))===0)return new td(null,null);let t=ta({X:BigInt("0x"+this.x.fromRed().toString(16)),Y:BigInt("0x"+this.y.fromRed().toString(16)),Z:1n},{X:BigInt("0x"+e.x.fromRed().toString(16)),Y:BigInt("0x"+e.y.fromRed().toString(16)),Z:1n});if(0n===t.Z)return new td(null,null);let r=e7(t.Z),i=e5(r,r),a=e5(t.X,i),n=e5(t.Y,e5(i,r));return new td(a.toString(16),n.toString(16))}dbl(){if(this.inf)return this;if(null===this.x||null===this.y)throw Error("Point coordinates cannot be null");let e=BigInt("0x"+this.x.fromRed().toString(16)),t=BigInt("0x"+this.y.fromRed().toString(16));if(0n===t)return new td(null,null);let r=ti({X:e,Y:t,Z:1n}),i=e7(r.Z),a=e5(i,i),n=e5(r.X,a),s=e5(r.Y,e5(a,i));return new td(n.toString(16),s.toString(16))}getX(){return(this.x??new p(0)).fromRed()}getY(){return(this.y??new p(0)).fromRed()}mul(e){let t,r;if(p.isBN(e)||(e=new p(e,16)),this.inf)return this;let i=BigInt("0x"+e.toString(16)),a=i<0n;if(a&&(i=-i),0n===(i=e6(i)))return new td(null,null);if(null===this.x||null===this.y)throw Error("Point coordinates cannot be null");this===this.curve.g?(t=te,r=tt):(t=BigInt("0x"+this.x.fromRed().toString(16)),r=BigInt("0x"+this.y.fromRed().toString(16)));let n=ts(i,{x:t,y:r});if(0n===n.Z)return new td(null,null);let s=e7(n.Z),o=e5(s,s),c=e5(n.X,o),l=e5(n.Y,e5(o,s)),d=new td(new p(c.toString(16),16),new p(l.toString(16),16));return a?d.neg():d}mulAdd(e,t,r){return this._endoWnafMulAdd([this,t],[e,r])}jmulAdd(e,t,r){return this._endoWnafMulAdd([this,t],[e,r],!0)}eq(e){return this===e||this.inf===e.inf&&(this.inf||0===(this.x??new p(0)).cmp(e.x??new p(0))&&0===(this.y??new p(0)).cmp(e.y??new p(0)))}neg(e){if(this.inf)return this;let t=new td(this.x,(this.y??new p(0)).redNeg());if(!0===e&&null!=this.precomputed){let e=this.precomputed;t.precomputed={naf:null!=e.naf?{wnd:e.naf.wnd,points:e.naf.points.map(e=>e.neg())}:void 0,doubles:null!=e.doubles?{step:e.doubles.step,points:e.doubles.points.map(e=>e.neg())}:void 0,beta:void 0}}return t}dblp(e){let t=this;for(let r=0;r<e;r++)t=t.dbl();return t}toJ(){return this.inf?new I(null,null,null):new I(this.x,this.y,this.curve.one)}_getBeta(){if("object"!=typeof this.curve.endo)return;let e=this.precomputed;if("object"==typeof e&&null!==e&&"object"==typeof e.beta&&null!==e.beta)return e.beta;let t=new td((this.x??new p(0)).redMul(this.curve.endo.beta),this.y);if(null!=e){let r=this.curve,i=e=>{if(null===e.x)throw Error("p.x is null");if(void 0===r.endo||null===r.endo)throw Error("curve.endo is undefined");return new td(e.x.redMul(r.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:null!=e.naf?{wnd:e.naf.wnd,points:e.naf.points.map(i)}:void 0,doubles:null!=e.doubles?{step:e.doubles.step,points:e.doubles.points.map(i)}:void 0}}return t}_fixedNafMul(e){if("object"!=typeof this.precomputed||null===this.precomputed)throw Error("_fixedNafMul requires precomputed values for the point");let t=this._getDoubles(),r=this.curve.getNAF(e,1,this.curve._bitLength),i=(1<<t.step+1)-(t.step%2==0?2:1);i/=3;let a=[];for(let e=0;e<r.length;e+=t.step){let i=0;for(let a=e+t.step-1;a>=e;a--)i=(i<<1)+r[a];a.push(i)}let n=new I(null,null,null),s=new I(null,null,null);for(let e=i;e>0;e--){for(let r=0;r<a.length;r++){let i=a[r];i===e?s=s.mixedAdd(t.points[r]):i===-e&&(s=s.mixedAdd(t.points[r].neg()))}n=n.add(s)}return n.toP()}_wnafMulAdd(e,t,r,i,a){let n=this.curve._wnafT1.map(e=>e.toNumber()),s=this.curve._wnafT2.map(()=>[]),o=this.curve._wnafT3.map(()=>[]),c=0;for(let r=0;r<i;r++){let i=t[r]._getNAFPoints(e);n[r]=i.wnd,s[r]=i.points}for(let e=i-1;e>=1;e-=2){let i=e-1,a=e;if(1!==n[i]||1!==n[a]){o[i]=this.curve.getNAF(r[i],n[i],this.curve._bitLength),o[a]=this.curve.getNAF(r[a],n[a],this.curve._bitLength),c=Math.max(o[i].length,c),c=Math.max(o[a].length,c);continue}let l=[t[i],null,null,t[a]];0===(t[i].y??new p(0)).cmp(t[a].y??new p(0))?(l[1]=t[i].add(t[a]),l[2]=t[i].toJ().mixedAdd(t[a].neg())):0===(t[i].y??new p(0)).cmp((t[a].y??new p(0)).redNeg())?(l[1]=t[i].toJ().mixedAdd(t[a]),l[2]=t[i].add(t[a].neg())):(l[1]=t[i].toJ().mixedAdd(t[a]),l[2]=t[i].toJ().mixedAdd(t[a].neg()));let d=[-3,-1,-5,-7,0,7,5,1,3],h=this.curve.getJSF(r[i],r[a]);c=Math.max(h[0].length,c),o[i]=Array(c),o[a]=Array(c);for(let e=0;e<c;e++){let t=0|h[0][e],r=0|h[1][e];o[i][e]=d[(t+1)*3+(r+1)],o[a][e]=0,s[i]=l}}let l=new I(null,null,null),d=this.curve._wnafT4;for(let e=c;e>=0;e--){let t=0;for(;e>=0;){let r=!0;for(let t=0;t<i;t++)d[t]=new p("number"==typeof o[t][e]?o[t][e]:0),d[t].isZero()||(r=!1);if(!r)break;t++,e--}if(e>=0&&t++,l=l.dblp(t),e<0)break;let r=new p(1),a=new p(2);for(let e=0;e<i;e++){let t,i=d[e];0!==i.cmpn(0)&&(l="affine"===(t=i.isNeg()?s[e][i.neg().sub(r).div(a).toNumber()].neg():s[e][i.sub(r).div(a).toNumber()]).type?l.mixedAdd(t):l.add(t))}}for(let e=0;e<i;e++)s[e]=[];return!0===a?l:l.toP()}_endoWnafMulAdd(e,t,r){let i,a=Array(2*e.length),n=Array(2*e.length);for(i=0;i<e.length;i++){let r=this.curve._endoSplit(t[i]),s=e[i],o=s._getBeta()??new td(null,null);0!==r.k1.negative&&(r.k1.ineg(),s=s.neg(!0)),0!==r.k2.negative&&(r.k2.ineg(),o=o.neg(!0)),a[2*i]=s,a[2*i+1]=o,n[2*i]=r.k1,n[2*i+1]=r.k2}let s=this._wnafMulAdd(1,a,n,2*i,r);for(let e=0;e<2*i;e++)a[e]=null,n[e]=null;return s}_hasDoubles(e){if(null==this.precomputed)return!1;let t=this.precomputed.doubles;return"object"==typeof t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)}_getDoubles(e,t){if("object"==typeof this.precomputed&&null!==this.precomputed&&"object"==typeof this.precomputed.doubles&&null!==this.precomputed.doubles)return this.precomputed.doubles;let r=[this],i=this;for(let a=0;a<(t??0);a+=e??1){for(let t=0;t<(e??1);t++)i=i.dbl();r.push(i)}return{step:e??1,points:r}}_getNAFPoints(e){if("object"==typeof this.precomputed&&null!==this.precomputed&&"object"==typeof this.precomputed.naf&&null!==this.precomputed.naf)return this.precomputed.naf;let t=[this],r=(1<<e)-1,i=1===r?null:this.dbl();for(let e=1;e<r;e++)null!==i&&(t[e]=t[e-1].add(i));return{wnd:e,points:t}}}class th{p;red;redN;zero;one;two;g;n;a;b;tinv;zeroA;threeA;endo;_endoWnafT1;_endoWnafT2;_wnafT1;_wnafT2;_wnafT3;_wnafT4;_bitLength;static assert(e,t="Elliptic curve assertion failed"){if(!e)throw Error(t)}getNAF(e,t,r){let i=Array(Math.max(e.bitLength(),r)+1);i.fill(0);let a=1<<t+1,n=e.clone();for(let e=0;e<i.length;e++){let t,r=n.andln(a-1);n.isOdd()?(t=r>(a>>1)-1?(a>>1)-r:r,n.isubn(t)):t=0,i[e]=t,n.iushrn(1)}return i}getJSF(e,t){let r=[[],[]];e=e.clone(),t=t.clone();let i=0,a=0;for(;e.cmpn(-i)>0||t.cmpn(-a)>0;){let n,s,o=e.andln(3)+i&3,c=t.andln(3)+a&3;if(3===o&&(o=-1),3===c&&(c=-1),(1&o)==0)n=0;else{let t=e.andln(7)+i&7;n=(3===t||5===t)&&2===c?-o:o}if(r[0].push(n),(1&c)==0)s=0;else{let e=t.andln(7)+a&7;s=(3===e||5===e)&&2===o?-c:c}r[1].push(s),2*i===n+1&&(i=1-i),2*a===s+1&&(a=1-a),e.iushrn(1),t.iushrn(1)}return r}static cachedProperty(e,t,r){let i="_"+t;e.prototype[t]=function(){return void 0!==this[i]?this[i]:this[i]=r.call(this)}}static parseBytes(e){return"string"==typeof e?eF(e,"hex"):e}static intFromLE(e){return new p(e,"hex","le")}constructor(){if(void 0!==e)return e;e=this;let t={prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",{doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}]};this.p=new p(t.p,16),this.red=new m(t.prime),this.zero=new p(0).toRed(this.red),this.one=new p(1).toRed(this.red),this.two=new p(2).toRed(this.red),this.n=new p(t.n,16),this.g=td.fromJSON(t.g,t.gRed),this._wnafT1=[,,,,],this._wnafT2=[,,,,],this._wnafT3=[,,,,],this._wnafT4=[,,,,],this._bitLength=this.n.bitLength(),this.redN=this.n.toRed(this.red),this.a=new p(t.a,16).toRed(this.red),this.b=new p(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=[,,,,],this._endoWnafT2=[,,,,]}_getEndomorphism(e){let t,r,i;if(this.zeroA&&1===this.p.modrn(3)){if(void 0!==e.beta)t=new p(e.beta,16).toRed(this.red);else{let e=this._getEndoRoots(this.p);if(null===e)throw Error("Failed to get endomorphism roots for beta.");t=(t=0>e[0].cmp(e[1])?e[0]:e[1]).toRed(this.red)}if(void 0!==e.lambda)r=new p(e.lambda,16);else{let e=this._getEndoRoots(this.n);if(null===e)throw Error("Failed to get endomorphism roots for lambda.");if(null==this.g)throw Error("Curve generator point (g) is not defined.");let i=this.g.mul(e[0])?.x,a=null!=this.g.x?this.g.x.redMul(t):void 0;if(null!=i&&null!=a&&0===i.cmp(a))r=e[0];else{if(r=e[1],null==this.g)throw Error("Curve generator point (g) is not defined.");let i=this.g.mul(r)?.x,a=null!=this.g.x?this.g.x.redMul(t):void 0;if(null==i||null==a)throw Error("Lambda computation failed: g.mul(lambda).x or g.x.redMul(beta) is undefined.");th.assert(0===i.cmp(a),"Lambda selection does not match computed beta.")}}return i="object"==typeof e.basis&&null!==e.basis?e.basis.map(function(e){return{a:new p(e.a,16),b:new p(e.b,16)}}):this._getEndoBasis(r),{beta:t,lambda:r,basis:i}}}_getEndoRoots(e){let t=e===this.p?this.red:new y(e),r=new p(2).toRed(t).redInvm(),i=r.redNeg(),a=new p(3).toRed(t).redNeg().redSqrt().redMul(r);return[i.redAdd(a).fromRed(),i.redSub(a).fromRed()]}_getEndoBasis(e){let t,r,i,a,n,s,o=this.n.ushrn(Math.floor(this.n.bitLength()/2)),c=e,l=this.n.clone(),d=new p(1),h=new p(0),u=new p(0),f=new p(1),b=new p(0),g=0,m=new p(0),y=new p(0);for(;0!==c.cmpn(0);){let e=l.div(c);m=l.sub(e.mul(c)),y=u.sub(e.mul(d));let n=f.sub(e.mul(h));if(void 0===i&&0>m.cmp(o))t=b.neg(),r=d,i=m.neg(),a=y;else if(void 0!==i&&2==++g)break;b=m,l=c,c=m,u=d,d=y,f=h,h=n}if(void 0===t||void 0===r||void 0===i||void 0===a)throw Error("Failed to compute Endo Basis values");n=m.neg(),s=y;let w=i.sqr().add(a.sqr());return n.sqr().add(s.sqr()).cmp(w)>=0&&(n=t,s=r),0!==i.negative&&(i=i.neg(),a=a.neg()),0!==n.negative&&(n=n.neg(),s=s.neg()),[{a:i,b:a},{a:n,b:s}]}_endoSplit(e){if(null==this.endo)throw Error("Endomorphism is not defined.");let t=this.endo.basis,r=t[0],i=t[1],a=i.b.mul(e).divRound(this.n),n=r.b.neg().mul(e).divRound(this.n),s=a.mul(r.a),o=n.mul(i.a),c=a.mul(r.b),l=n.mul(i.b);return{k1:e.sub(s).sub(o),k2:c.add(l).neg()}}validate(e){if(e.inf)return!0;let t=e.x,r=e.y;if(null===t||null===r)throw Error("Point coordinates cannot be null");let i=this.a.redMul(t),a=t.redSqr().redMul(t).redIAdd(i).redIAdd(this.b);return 0===r.redSqr().redISub(a).cmpn(0)}}class tu{r;s;static fromDER(e,t){let r=(e,t)=>{let r=e[t.place++];if((128&r)==0)return r;throw Error("Invalid DER entity length")};e=eF(e,t);let i=new class{place;constructor(){this.place=0}};if(48!==e[i.place++])throw Error("Signature DER must start with 0x30");if(r(e,i)+i.place!==e.length||2!==e[i.place++])throw Error("Signature DER invalid");let a=r(e,i),n=e.slice(i.place,a+i.place);if(i.place+=a,2!==e[i.place++])throw Error("Signature DER invalid");let s=r(e,i);if(e.length!==s+i.place)throw Error("Invalid R-length in signature DER");let o=e.slice(i.place,s+i.place);if(0===n[0])if((128&n[1])!=0)n=n.slice(1);else throw Error("Invalid R-value in signature DER");if(0===o[0])if((128&o[1])!=0)o=o.slice(1);else throw Error("Invalid S-value in signature DER");return new tu(new p(n),new p(o))}static fromCompact(e,t){if(65!==(e=eF(e,t)).length)throw Error("Invalid Compact Signature");let r=e[0];if(r<27||r>=35)throw Error("Invalid Compact Byte");return new tu(new p(e.slice(1,33)),new p(e.slice(33,65)))}constructor(e,t){this.r=e,this.s=t}verify(e,t,r){return tI(new p($(e,r),16),this,t)}toString(e){return this.toDER(e)}toDER(e){let t=(e,t)=>{if(t<128)e.push(t);else throw Error("len must be < 0x80")},r=e=>{let t=0,r=e.length-1;for(;0===e[t]&&(128&e[t+1])==0&&t<r;)t++;return 0===t?e:e.slice(t)},i=this.r.toArray(),a=this.s.toArray();for((128&i[0])!=0&&(i=[0].concat(i)),(128&a[0])!=0&&(a=[0].concat(a)),i=r(i),a=r(a);0===a[0]&&(128&a[1])==0;)a=a.slice(1);let n=[2];t(n,i.length),(n=n.concat(i)).push(2),t(n,a.length);let s=n.concat(a),o=[48];return(t(o,s.length),o=o.concat(s),"hex"===e)?eK(o):"base64"===e?eW(o):o}toCompact(e,t,r){if(e<0||e>3)throw Error("Invalid recovery param");if("boolean"!=typeof t)throw Error("Invalid compressed param");let i=27+e;t&&(i+=4);let a=[i];return(a=(a=a.concat(this.r.toArray("be",32))).concat(this.s.toArray("be",32)),"hex"===r)?eK(a):"base64"===r?eW(a):a}RecoverPublicKey(e,t){let r=this.r,i=this.s,a=new th,n=a.n,s=a.g,o=0!=e>>1?r.add(n):r,c=td.fromX(o,(1&e)!=0);if(!c.mul(n).isInfinity())throw Error("nR is not at infinity");let l=t.neg().umod(n),d=r.invm(n),h=d.mul(i).umod(n),u=d.mul(l).umod(n),f=new tv(s.mul(u).add(c.mul(h)));return f.validate(),f}CalculateRecoveryFactor(e,t){for(let r=0;r<4;r++){let i;try{i=this.RecoverPublicKey(r,t)}catch{continue}if(e.eq(i))return r}throw Error("Unable to find valid recovery factor")}}class tf{K;V;constructor(e,t){if(e=eF(e,"hex"),t=eF(t,"hex"),e.length<32)throw Error("Not enough entropy. Minimum is 256 bits");let r=e.concat(t);this.K=Array(32),this.V=Array(32);for(let e=0;e<32;e++)this.K[e]=0,this.V[e]=1;this.update(r)}hmac(){return new H(this.K)}update(e){let t=this.hmac().update(this.V).update([0]);void 0!==e&&(t=t.update(e)),this.K=t.digest(),this.V=this.hmac().update(this.V).digest(),void 0!==e&&(this.K=this.hmac().update(this.V).update([1]).update(e).digest(),this.V=this.hmac().update(this.V).digest())}generate(e){let t=[];for(;t.length<e;)this.V=this.hmac().update(this.V).digest(),t=t.concat(this.V);let r=t.slice(0,e);return this.update(),eK(r)}}function tp(e,t,r=new th){let i=8*e.byteLength()-r.n.bitLength();return(i>0&&e.iushrn(i),null===t&&e.cmp(r.n)>=0)?e.sub(r.n):e}let tb=new th,tg=tb.n.byteLength(),tm=tb.n.subn(1),ty=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n>>1n,tw=(e,t,r=!1,i)=>{let a=BigInt("0x"+(e=tp(e)).toString(16)),n=BigInt("0x"+t.toString(16)),s=new tf(t.toArray("be",tg),e.toArray("be",tg));for(let e=0;;e++){let t="function"==typeof i?i(e):p.isBN(i)?i:new p(s.generate(tg),16);if(null==t)throw Error("k is undefined");if(0>=(t=tp(t,!0)).cmpn(1)||t.cmp(tm)>=0){if(p.isBN(i))throw Error("Invalid fixed custom K value (must be >1 and <N‑1)");continue}let o=BigInt("0x"+t.toString(16)),c=ts(o,{x:te,y:tt});if(0n===c.Z){if(p.isBN(i))throw Error("Invalid fixed custom K value (k\xb7G at infinity)");continue}let l=e7(c.Z),d=e5(l,l),h=to(e5(c.X,d));if(0n===h){if(p.isBN(i))throw Error("Invalid fixed custom K value (r == 0)");continue}let u=tl(o),f=to(a+tc(h,n)),b=tc(u,f);if(0n===b){if(p.isBN(i))throw Error("Invalid fixed custom K value (s == 0)");continue}return r&&b>ty&&(b=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n-b),new tu(new p(h.toString(16),16),new p(b.toString(16),16))}},tI=(e,t,r)=>{let i=BigInt("0x"+e.toString(16));if(null==r.x||null==r.y)throw Error("Invalid public key: missing coordinates.");let a={x:BigInt("0x"+r.x.toString(16)),y:BigInt("0x"+r.y.toString(16))},{r:n,s}={r:BigInt("0x"+t.r.toString(16)),s:BigInt("0x"+t.s.toString(16))};if(n<=0n||n>=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n||s<=0n||s>=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n)return!1;let o=tl(s);if(0n===o)return!1;let c=tc(i,o),l=tc(n,o),d=ta(ts(c,{x:te,y:tt}),ts(l,a));if(0n===d.Z)return!1;let h=e7(d.Z),u=e5(h,h);return to(e5(d.X,u))===n};class tv extends td{static fromPrivateKey(e){let t=new th().g.mul(e);return new tv(t.x,t.y)}static fromString(e){let t=td.fromString(e);return new tv(t.x,t.y)}static fromDER(e){let t=td.fromDER(e);return new tv(t.x,t.y)}constructor(e,t=null,r=!0){if(e instanceof td)super(e.getX(),e.getY());else{if(null===t&&r&&"string"==typeof e&&(66===e.length||130===e.length))throw Error('You are using the "new PublicKey()" constructor with a DER hex string. You need to use "PublicKey.fromString()" instead.');super(e,t,r)}}deriveSharedSecret(e){if(!this.validate())throw Error("Public key not valid for ECDH secret derivation");return this.mul(e)}verify(e,t,r){return tI(new p($(e,r),16),t,this)}toDER(e){return"hex"===e?this.encode(!0,e):this.encode(!0)}toHash(e){let t=j(this.encode(!0));return"hex"===e?eK(t):t}toAddress(e=[0]){if("string"==typeof e)if("testnet"===e||"test"===e)e=[111];else if("mainnet"===e||"main"===e)e=[0];else throw Error(`Invalid prefix ${e}`);return eY(this.toHash(),e)}deriveChild(e,t,r,i){let a;if("function"==typeof i){let t=i(e,this);void 0!==t?a=t:(a=this.deriveSharedSecret(e),"function"==typeof r&&r(e,this,a))}else a=this.deriveSharedSecret(e);let n=eF(t,"utf8"),s=G(a.encode(!0),n),o=new th().g.mul(new p(s)),c=this.add(o);return new tv(c.x,c.y)}static fromMsgHashAndCompactSignature(e,t,r){let i=eF(t,r);if(65!==i.length)throw Error("Invalid Compact Signature");let a=i[0];if(a<27||a>=35)throw Error("Invalid Compact Byte");let n=i[0]-27;return n>3&&(n-=4),new tu(new p(i.slice(1,33)),new p(i.slice(33,65))).RecoverPublicKey(n,e)}}class tk{_rand;constructor(){let e=()=>{throw Error("No secure random number generator is available in this environment.")};if(this._rand=e,"object"==typeof self)self.crypto?.getRandomValues?this._rand=e=>{let t=new Uint8Array(e);return self.crypto.getRandomValues(t),[...t]}:this._rand=e;else try{let e=require("crypto");"function"==typeof e.randomBytes&&(this._rand=t=>[...e.randomBytes(t)])}catch{this._rand=e}}generate(e){return this._rand(e)}}let tS=null,tx=e=>(null==tS&&(tS=new tk),tS.generate(e));class tP{x;y;constructor(e,t){let r=new th().p;this.x=e.umod(r),this.y=t.umod(r)}toString(){return eX(this.x.toArray())+"."+eX(this.y.toArray())}static fromString(e){let[t,r]=e.split(".");return new tP(new p(eG(t)),new p(eG(r)))}}class tE{points;threshold;constructor(e,t){this.points=e,this.threshold=t??e.length}static fromPrivateKey(e,t){let r=new th().p,i=[new tP(new p(0),new p(e.toArray()))];for(let e=1;e<t;e++){let e=new p(tx(32)).umod(r),t=new p(tx(32)).umod(r);i.push(new tP(e,t))}return new tE(i)}valueAt(e){let t=new th().p,r=new p(0);for(let i=0;i<this.threshold;i++){let a=this.points[i].y;for(let r=0;r<this.threshold;r++)if(i!==r){let n=this.points[r].x,s=this.points[i].x,o=e.sub(n).umod(t),c=s.sub(n).umod(t).invm(t),l=o.mul(c).umod(t);a=a.mul(l).umod(t)}r=r.add(a).umod(t)}return r}}class tN{points;threshold;integrity;constructor(e,t,r){this.points=e,this.threshold=t,this.integrity=r}static fromBackupFormat(e){let t=0,r="";return new tN(e.map((e,i)=>{let a=e.split(".");if(4!==a.length)throw Error("Invalid share format in share "+i.toString()+'. Expected format: "x.y.t.i" - received '+e);let[n,s,o,c]=a;if(void 0===o)throw Error("Threshold not found in share "+i.toString());if(void 0===c)throw Error("Integrity not found in share "+i.toString());let l=parseInt(o);if(0!==i&&t!==l)throw Error("Threshold mismatch in share "+i.toString());if(0!==i&&r!==c)throw Error("Integrity mismatch in share "+i.toString());return t=l,r=c,tP.fromString([n,s].join("."))}),t,r)}toBackupFormat(){return this.points.map(e=>e.toString()+"."+this.threshold.toString()+"."+this.integrity)}}class tO extends p{static fromRandom(){return new tO(tx(32))}static fromString(e,t="hex"){return new tO(super.fromString(e,t).toArray())}static fromHex(e){return new tO(super.fromHex(e,"big"))}static fromWif(e,t=1){let r=eJ(e,void 0,t);if(33!==r.data.length)throw Error("Invalid WIF length");if(1!==r.data[32])throw Error("Invalid WIF padding");return new tO(r.data.slice(0,32))}constructor(e=0,t=10,r="be",i="apply"){if(e instanceof p?(super(),e.copy(this)):super(e,t,r),"nocheck"!==i){let e=this.checkInField();if(!e.inField){if("error"===i)throw Error("Input is out of field");p.move(this,e.modN)}}}checkInField(){let e=new th,t=this.mod(e.n);return{inField:0===this.cmp(t),modN:t}}isValid(){return this.checkInField().inField}sign(e,t,r=!0,i){return tw(new p($(e,t),16),this,r,i)}verify(e,t,r){return tI(new p($(e,r),16),t,this.toPublicKey())}toPublicKey(){let e=new th().g.mul(this);return new tv(e.x,e.y)}toWif(e=[128]){if(!this.isValid())throw Error("Value is out of field");return eY([...this.toArray("be",32),1],e)}toAddress(e=[0]){return this.toPublicKey().toAddress(e)}toHex(){return super.toHex(32)}toString(e="hex",t=64){return super.toString(e,t)}deriveSharedSecret(e){if(!e.validate())throw Error("Public key not valid for ECDH secret derivation");return e.mul(this)}deriveChild(e,t,r,i){let a;if("function"==typeof i){let t=i(this,e);void 0!==t?a=t:(a=this.deriveSharedSecret(e),"function"==typeof r&&r(this,e,a))}else a=this.deriveSharedSecret(e);let n=eF(t,"utf8"),s=G(a.encode(!0),n),o=new th;return new tO(this.add(new p(s)).mod(o.n).toArray())}toKeyShares(e,t){if("number"!=typeof e||"number"!=typeof t)throw Error("threshold and totalShares must be numbers");if(e<2)throw Error("threshold must be at least 2");if(t<2)throw Error("totalShares must be at least 2");if(e>t)throw Error("threshold should be less than or equal to totalShares");let r=tE.fromPrivateKey(this,e),i=[];for(let e=0;e<t;e++){let e=new p(tO.fromRandom().toArray()),t=r.valueAt(e);i.push(new tP(e,t))}return new tN(i,e,this.toPublicKey().toHash("hex").slice(0,8))}toBackupShares(e,t){return this.toKeyShares(e,t).toBackupFormat()}static fromBackupShares(e){return tO.fromKeyShares(tN.fromBackupFormat(e))}static fromKeyShares(e){let{points:t,threshold:r,integrity:i}=e;if(r<2)throw Error("threshold must be at least 2");if(t.length<r)throw Error(`At least ${r} shares are required to reconstruct the private key`);for(let e=0;e<r;e++)for(let i=e+1;i<r;i++)if(t[e].x.eq(t[i].x))throw Error("Duplicate share detected, each must be unique.");let a=new tO(new tE(t,r).valueAt(new p(0)).toArray());if(a.toPublicKey().toHash("hex").slice(0,8)!==i)throw Error("Integrity hash mismatch");return a}}let t_=new Uint8Array([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]),tA=[[0,0,0,0],[1,0,0,0],[2,0,0,0],[4,0,0,0],[8,0,0,0],[16,0,0,0],[32,0,0,0],[64,0,0,0],[128,0,0,0],[27,0,0,0],[54,0,0,0]].map(e=>new Uint8Array(e)),tT=new Uint8Array(256),tC=new Uint8Array(256);for(let e=0;e<256;e++){let t=(e<<1^27*((128&e)!=0))&255;tT[e]=t,tC[e]=t^e}function tV(e,t,r){for(let i=0;i<4;i++){let a=t[r+i];for(let t=0;t<4;t++)e[t][i]^=a[t]}}function tR(e){for(let t=0;t<4;t++)e[t]=t_[e[t]]}function tU(e,t){let r,i,a,n,s=[[],[],[],[]],o=[],c=Array.from(t);if(c.length<=16){for(;c.length<16;)c.unshift(0);n=11}else if(c.length<=24){for(;c.length<24;)c.unshift(0);n=13}else if(t.length<=32){for(;c.length<32;)c.unshift(0);n=15}else throw Error("Illegal key length: "+String(t.length));let l=function(e,t){let r=t.length/4,i=[];for(let e=0;e<t.length;e++)e%4==0&&i.push([]),i[e>>2].push(t[e]);for(let t=r;t<4*e;t++){i[t]=[];let e=i[t-1].slice();if(t%r==0){let i=e[0];e[0]=e[1],e[1]=e[2],e[2]=e[3],e[3]=i,tR(e);let a=tA[t/r];for(let t=0;t<4;t++)e[t]^=a[t]}else r>6&&t%r==4&&tR(e);for(let a=0;a<4;a++)i[t][a]=i[t-r][a]^e[a]}return i}(n,c);for(let t=0;t<4;t++)s[0][t]=e[4*t],s[1][t]=e[4*t+1],s[2][t]=e[4*t+2],s[3][t]=e[4*t+3];for(tV(s,l,0),a=1;a<n;a++){for(let e=0;e<4;e++)for(let t=0;t<4;t++)s[e][t]=t_[s[e][t]];!function(e){let t=e[1][0];e[1][0]=e[1][1],e[1][1]=e[1][2],e[1][2]=e[1][3],e[1][3]=t,t=e[2][0];let r=e[2][1];e[2][0]=e[2][2],e[2][1]=e[2][3],e[2][2]=t,e[2][3]=r,t=e[3][3],e[3][3]=e[3][2],e[3][2]=e[3][1],e[3][1]=e[3][0],e[3][0]=t}(s),a+1<n&&function(e){for(let t=0;t<4;t++){let r=e[0][t],i=e[1][t],a=e[2][t],n=e[3][t];e[0][t]=tT[r]^tC[i]^a^n,e[1][t]=r^tT[i]^tC[a]^n,e[2][t]=r^i^tT[a]^tC[n],e[3][t]=tC[r]^i^a^tT[n]}}(s),tV(s,l,4*a)}for(r=0;r<4;r++)for(i=0;i<4;i++)o.push(s[i][r]);return o}let tD=function(e){return[(0xff000000&e)>>>24,(0xff0000&e)>>16,(65280&e)>>8,255&e]},tB=function(e){return Array(e).fill(0)},tL=[225].concat(tB(15)),tH=function(e,t){for(let r=0;r<e.length;r++)e[r]^=t[r]},tK=function(e){let t,r=0,i=0;for(t=0;t<e.length;t++)i=r,r=1&e[t],e[t]=e[t]>>1,0!==i&&(e[t]=128|e[t]);return e},tF=function(e,t){let r=t.slice(),i=tB(16);for(let t=0;t<16;t++)for(let a=7;a>=0;a--)(e[t]&1<<a)!=0&&tH(i,r),(1&r[15])!=0?(tK(r),tH(r,tL)):tK(r);return i},tq=function(e){let t,r=e.slice();for(t=15;11!==t;t--)if(r[t]=r[t]+1,256===r[t])r[t]=0;else break;return r};function tM(e,t){let r=tB(16);for(let i=0;i<e.length;i+=16){let a=r.slice();for(let t=0;t<16;t++)a[t]^=e[i+t]??0;r=tF(a,t)}return r}function t$(e,t,r){if(0===e.length)return[];let i=Array(e.length),a=t,n=0,s=Math.ceil(e.length/16);for(let t=0;t<s;t++){let o=tU(a,r),c=Math.min(16,e.length-n);for(let t=0;t<c;t++)i[n]=e[n]^o[t],n++;t+1<s&&(a=tq(a))}return i}class tz extends p{static fromRandom(){return new tz(tx(32))}encrypt(e,t){let r=tx(32),{result:i,authenticationTag:a}=function(e,t,r,i){let a,n,s=tU(tB(16),i);a=[...r],12===r.length?a=a.concat(tB(3)).concat([1]):(r.length%16!=0&&(a=a.concat(tB(16-r.length%16))),a=tM((a=a.concat(tB(8))).concat(tB(4)).concat(tD(8*r.length)),s));let o=t$(e,tq(a),i);return n=t.slice(),0===t.length?n=n.concat(tB(16)):t.length%16!=0&&(n=n.concat(tB(16-t.length%16))),n=n.concat(o),0===o.length?n=n.concat(tB(16)):o.length%16!=0&&(n=n.concat(tB(16-o.length%16))),n=n.concat(tB(4)).concat(tD(8*t.length)).concat(tB(4)).concat(tD(8*o.length)),{result:o,authenticationTag:t$(tM(n,s),a,i)}}(e=eF(e,t),[],r,this.toArray("be",32));return ez([...r,...i,...a],t)}decrypt(e,t){let r=(e=eF(e,t)).slice(0,32),i=e.slice(32),a=i.slice(-16),n=function(e,t,r,i,a){let n,s,o=tU(tB(16),a);n=[...r],12===r.length?n=n.concat(tB(3)).concat([1]):(r.length%16!=0&&(n=n.concat(tB(16-r.length%16))),n=tM((n=n.concat(tB(8))).concat(tB(4)).concat(tD(8*r.length)),o));let c=t$(e,tq(n),a);return(s=t.slice(),0===t.length?s=s.concat(tB(16)):t.length%16!=0&&(s=s.concat(tB(16-t.length%16))),s=s.concat(e),0===e.length?s=s.concat(tB(16)):e.length%16!=0&&(s=s.concat(tB(16-e.length%16))),t$(tM(s=s.concat(tB(4)).concat(tD(8*t.length)).concat(tB(4)).concat(tD(8*e.length)),o),n,a).join()!==i.join())?null:c}(i.slice(0,-16),[],r,a,this.toArray());if(null===n)throw Error("Decryption failed!");return ez(n,t)}}class tW extends tu{static SIGHASH_ALL=1;static SIGHASH_NONE=2;static SIGHASH_SINGLE=3;static SIGHASH_FORKID=64;static SIGHASH_ANYONECANPAY=128;scope;static format(e){let t={sourceTXID:e.sourceTXID,sourceOutputIndex:e.sourceOutputIndex,sequence:e.inputSequence},r=[...e.otherInputs];function i(t){let r=new eZ;if(void 0===t)for(let t of e.outputs){let e=t.satoshis??0;r.writeUInt64LE(e);let i=t.lockingScript?.toBinary()??[];r.writeVarIntNum(i.length),r.write(i)}else{let i=e.outputs[t];if(void 0===i)throw Error(`Output at index ${t} does not exist`);let a=i.satoshis??0;r.writeUInt64LE(a);let n=i.lockingScript?.toBinary()??[];r.writeVarIntNum(n.length),r.write(n)}return W(r.toArray())}r.splice(e.inputIndex,0,t);let a=Array(32).fill(0),n=Array(32).fill(0),s=Array(32).fill(0);(e.scope&tW.SIGHASH_ANYONECANPAY)==0&&(a=(()=>{let e=new eZ;for(let t of r){if(void 0===t.sourceTXID){if(null==t.sourceTransaction)throw Error("Missing sourceTransaction for input");e.write(t.sourceTransaction.hash())}else e.writeReverse(eF(t.sourceTXID,"hex"));e.writeUInt32LE(t.sourceOutputIndex)}return W(e.toArray())})()),(e.scope&tW.SIGHASH_ANYONECANPAY)==0&&(31&e.scope)!==tW.SIGHASH_SINGLE&&(31&e.scope)!==tW.SIGHASH_NONE&&(n=(()=>{let e=new eZ;for(let t of r){let r=t.sequence??0xffffffff;e.writeUInt32LE(r)}return W(e.toArray())})()),(31&e.scope)!==tW.SIGHASH_SINGLE&&(31&e.scope)!==tW.SIGHASH_NONE?s=i():(31&e.scope)===tW.SIGHASH_SINGLE&&e.inputIndex<e.outputs.length&&(s=i(e.inputIndex));let o=new eZ;o.writeInt32LE(e.transactionVersion),o.write(a),o.write(n),o.writeReverse(eF(e.sourceTXID,"hex")),o.writeUInt32LE(e.sourceOutputIndex);let c=e.subscript.toBinary();o.writeVarIntNum(c.length),o.write(c),o.writeUInt64LE(e.sourceSatoshis);let l=t.sequence;return o.writeUInt32LE(l),o.write(s),o.writeUInt32LE(e.lockTime),o.writeUInt32LE(e.scope>>>0),o.toArray()}static fromChecksigFormat(e){if(0===e.length){let e=new p(1);return new tW(e,new p(1),1)}let t=e[e.length-1],r=e.slice(0,e.length-1),i=tu.fromDER(r);return new tW(i.r,i.s,t)}constructor(e,t,r){super(e,t),this.scope=r}hasLowS(){return!(this.s.ltn(1)||this.s.gt(new p("7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0","hex")))}toChecksigFormat(){return[...this.toDER(),this.scope]}}class tj{curve;constructor(){this.curve=new th}generateProof(e,t,r,i){let a=tO.fromRandom(),n=a.toPublicKey(),s=r.mul(a),o=this.computeChallenge(t,r,i,s,n);return{R:n,SPrime:s,z:a.add(o.mul(e)).umod(this.curve.n)}}verifyProof(e,t,r,i){let{R:a,SPrime:n,z:s}=i,o=this.computeChallenge(e,t,r,n,a),c=this.curve.g.mul(s),l=a.add(e.mul(o));if(!c.eq(l))return!1;let d=t.mul(s),h=n.add(r.mul(o));return!!d.eq(h)}computeChallenge(e,t,r,i,a){return new p($([...e.encode(!0),...t.encode(!0),...r.encode(!0),...i.encode(!0),...a.encode(!0)])).umod(this.curve.n)}}let tG={OP_FALSE:0,OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_RESERVED:80,OP_TRUE:81,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_VER:98,OP_IF:99,OP_NOTIF:100,OP_VERIF:101,OP_VERNOTIF:102,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_CAT:126,OP_SUBSTR:127,OP_SPLIT:127,OP_LEFT:128,OP_NUM2BIN:128,OP_RIGHT:129,OP_BIN2NUM:129,OP_SIZE:130,OP_INVERT:131,OP_AND:132,OP_OR:133,OP_XOR:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_RESERVED1:137,OP_RESERVED2:138,OP_1ADD:139,OP_1SUB:140,OP_2MUL:141,OP_2DIV:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_MUL:149,OP_DIV:150,OP_MOD:151,OP_LSHIFT:152,OP_RSHIFT:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_NOP2:177,OP_NOP3:178,OP_NOP4:179,OP_NOP5:180,OP_NOP6:181,OP_NOP7:182,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_NOP11:186,OP_NOP12:187,OP_NOP13:188,OP_NOP14:189,OP_NOP15:190,OP_NOP16:191,OP_NOP17:192,OP_NOP18:193,OP_NOP19:194,OP_NOP20:195,OP_NOP21:196,OP_NOP22:197,OP_NOP23:198,OP_NOP24:199,OP_NOP25:200,OP_NOP26:201,OP_NOP27:202,OP_NOP28:203,OP_NOP29:204,OP_NOP30:205,OP_NOP31:206,OP_NOP32:207,OP_NOP33:208,OP_NOP34:209,OP_NOP35:210,OP_NOP36:211,OP_NOP37:212,OP_NOP38:213,OP_NOP39:214,OP_NOP40:215,OP_NOP41:216,OP_NOP42:217,OP_NOP43:218,OP_NOP44:219,OP_NOP45:220,OP_NOP46:221,OP_NOP47:222,OP_NOP48:223,OP_NOP49:224,OP_NOP50:225,OP_NOP51:226,OP_NOP52:227,OP_NOP53:228,OP_NOP54:229,OP_NOP55:230,OP_NOP56:231,OP_NOP57:232,OP_NOP58:233,OP_NOP59:234,OP_NOP60:235,OP_NOP61:236,OP_NOP62:237,OP_NOP63:238,OP_NOP64:239,OP_NOP65:240,OP_NOP66:241,OP_NOP67:242,OP_NOP68:243,OP_NOP69:244,OP_NOP70:245,OP_NOP71:246,OP_NOP72:247,OP_NOP73:248,OP_NOP77:252,OP_SMALLDATA:249,OP_SMALLINTEGER:250,OP_PUBKEYS:251,OP_PUBKEYHASH:253,OP_PUBKEY:254,OP_INVALIDOPCODE:255};for(let e in tG)tG[tG[e]]=e;let tX=tG;class tY{chunks;static fromASM(e){let t=[],r=e.split(" "),i=0;for(;i<r.length;){let e,a=r[i],n=0;if(a.startsWith("OP_")&&void 0!==tX[a]&&(e=a,n=tX[a]),"0"===a)n=0,t.push({op:n}),i+=1;else if("-1"===a)n=tX.OP_1NEGATE,t.push({op:n}),i+=1;else if(void 0===e){let e=r[i];e.length%2!=0&&(e="0"+e);let a=eF(e,"hex");if(ez(a,"hex")!==e)throw Error("invalid hex string in script");let s=a.length;s>=0&&s<tX.OP_PUSHDATA1?n=s:s<256?n=tX.OP_PUSHDATA1:s<65536?n=tX.OP_PUSHDATA2:s<0x100000000&&(n=tX.OP_PUSHDATA4),t.push({data:a,op:n}),i+=1}else n===tX.OP_PUSHDATA1||n===tX.OP_PUSHDATA2||n===tX.OP_PUSHDATA4?(t.push({data:eF(r[i+2],"hex"),op:n}),i+=3):(t.push({op:n}),i+=1)}return new tY(t)}static fromHex(e){if(0===e.length)return tY.fromBinary([]);if(e.length%2!=0)throw Error("There is an uneven number of characters in the string which suggests it is not hex encoded.");if(!/^[0-9a-fA-F]+$/.test(e))throw Error("Some elements in this string are not hex encoded.");return tY.fromBinary(eF(e,"hex"))}static fromBinary(e){let t=[],r=0,i=new eQ(e=[...e]);for(;!i.eof();){let e=i.readUInt8();if(e===tX.OP_RETURN&&0===r){t.push({op:e,data:i.read()});break}e===tX.OP_IF||e===tX.OP_NOTIF||e===tX.OP_VERIF||e===tX.OP_VERNOTIF?r++:e===tX.OP_ENDIF&&r--;let a=0,n=[];if(e>0&&e<tX.OP_PUSHDATA1)a=e,t.push({data:i.read(a),op:e});else if(e===tX.OP_PUSHDATA1){try{a=i.readUInt8(),n=i.read(a)}catch{i.read()}t.push({data:n,op:e})}else if(e===tX.OP_PUSHDATA2){try{a=i.readUInt16LE(),n=i.read(a)}catch{i.read()}t.push({data:n,op:e})}else if(e===tX.OP_PUSHDATA4){try{a=i.readUInt32LE(),n=i.read(a)}catch{i.read()}t.push({data:n,op:e})}else t.push({op:e})}return new tY(t)}constructor(e=[]){this.chunks=e}toASM(){let e="";for(let t=0;t<this.chunks.length;t++){let r=this.chunks[t];e+=this._chunkToString(r)}return e.slice(1)}toHex(){return ez(this.toBinary(),"hex")}toBinary(){let e=new eZ;for(let t=0;t<this.chunks.length;t++){let r=this.chunks[t],i=r.op;if(e.writeUInt8(i),i===tX.OP_RETURN&&null!=r.data){e.write(r.data);break}null!=r.data&&(i<tX.OP_PUSHDATA1?e.write(r.data):i===tX.OP_PUSHDATA1?(e.writeUInt8(r.data.length),e.write(r.data)):i===tX.OP_PUSHDATA2?(e.writeUInt16LE(r.data.length),e.write(r.data)):i===tX.OP_PUSHDATA4&&(e.writeUInt32LE(r.data.length),e.write(r.data)))}return e.toArray()}writeScript(e){return this.chunks=this.chunks.concat(e.chunks),this}writeOpCode(e){return this.chunks.push({op:e}),this}setChunkOpCode(e,t){return this.chunks[e]={op:t},this}writeBn(e){if(e.cmpn(0)===tX.OP_0)this.chunks.push({op:tX.OP_0});else if(0===e.cmpn(-1))this.chunks.push({op:tX.OP_1NEGATE});else if(e.cmpn(1)>=0&&0>=e.cmpn(16))this.chunks.push({op:e.toNumber()+tX.OP_1-1});else{let t=e.toSm("little");this.writeBin(t)}return this}writeBin(e){let t;if(e.length>0&&e.length<tX.OP_PUSHDATA1)t=e.length;else if(0===e.length)t=tX.OP_0;else if(e.length<256)t=tX.OP_PUSHDATA1;else if(e.length<65536)t=tX.OP_PUSHDATA2;else if(e.length<0x100000000)t=tX.OP_PUSHDATA4;else throw Error("You can't push that much data");return this.chunks.push({data:e,op:t}),this}writeNumber(e){return this.writeBn(new p(e)),this}removeCodeseparators(){let e=[];for(let t=0;t<this.chunks.length;t++)this.chunks[t].op!==tX.OP_CODESEPARATOR&&e.push(this.chunks[t]);return this.chunks=e,this}findAndDelete(e){let t=e.toHex();for(let e=0;e<this.chunks.length;e++)t===new tY([this.chunks[e]]).toHex()&&this.chunks.splice(e,1);return this}isPushOnly(){for(let e=0;e<this.chunks.length;e++)if(this.chunks[e].op>tX.OP_16)return!1;return!0}isLockingScript(){throw Error("Not implemented")}isUnlockingScript(){throw Error("Not implemented")}_chunkToString(e){let t=e.op,r="";if(void 0===e.data){let e=tX[t];r=`${r} ${e}`}else r=`${r} ${eK(e.data)}`;return r}}class tJ extends tY{isLockingScript(){return!0}isUnlockingScript(){return!1}}class tZ extends tY{isLockingScript(){return!1}isUnlockingScript(){return!0}}class tQ extends Error{txid;outputIndex;context;programCounter;stackState;altStackState;ifStackState;stackMem;altStackMem;constructor(e){let t=e.stackState.map(e=>null!=e&&void 0!==e.length?eK(e):null==e?"null/undef":"INVALID_STACK_ITEM").join(", "),r=e.altStackState.map(e=>null!=e&&void 0!==e.length?eK(e):null==e?"null/undef":"INVALID_STACK_ITEM").join(", "),i=`Context: ${e.context}, PC: ${e.programCounter}`,a=`Stack: [${t}] (len: ${e.stackState.length}, mem: ${e.stackMem})`,n=`AltStack: [${r}] (len: ${e.altStackState.length}, mem: ${e.altStackMem})`;super(`Script evaluation error: ${e.message}
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.bsv=t():e.bsv=t()}(this,()=>(()=>{"use strict";let e;var t,r,i,a,n={};n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};n.r(s),n.d(s,{Signature:()=>tu,SHIPCast:()=>iw,BEEF_V1:()=>rh,BEEF_V2:()=>ru,BeefParty:()=>ry,Polynomial:()=>tE,SHIPBroadcaster:()=>iw,KNOWN_IDENTITY_TYPES:()=>i_,Utils:()=>c,KeyDeriver:()=>rW,SignedMessage:()=>d,SymmetricKey:()=>tz,LocalKVStore:()=>iV,WhatsOnChain:()=>rs,IdentityClient:()=>iA,ScriptEvaluationError:()=>tQ,defaultHttpClient:()=>rr,defaultIdentity:()=>iN,RPuzzle:()=>t6,WalletClient:()=>r5,verifyNonce:()=>ii,SatoshisPerKilobyte:()=>t9,PrivateKey:()=>tO,walletErrors:()=>i,KeyShares:()=>tN,XDM:()=>rZ,HTTPSOverlayBroadcastFacilitator:()=>iy,Certificate:()=>rQ,HD:()=>rU,CompletedProtoWallet:()=>it,AuthFetch:()=>ih,NodejsHttpClient:()=>re,ProtoWallet:()=>rG,StorageUtils:()=>f,CachedKeyDeriver:()=>rj,ECIES:()=>rq,HTTPWalletWire:()=>r2,PointInFiniteField:()=>tP,ARC:()=>ra,Curve:()=>th,DRBG:()=>tf,ECDSA:()=>l,MasterCertificate:()=>r9,Random:()=>tx,TOTP:()=>r$,VerifiableCertificate:()=>ie,WindowCWISubstrate:()=>rX,defaultChainTracker:()=>ro,DEFAULT_SLAP_TRACKERS:()=>ip,ReactNativeWebView:()=>r4,DEFAULT_IDENTITY_CLIENT_OPTIONS:()=>iO,WalletErrors:()=>rJ,WalletError:()=>rY,StorageUploader:()=>iP,BlockHeadersService:()=>rx,Spend:()=>t2,Hash:()=>o,validateCertificates:()=>io,Schnorr:()=>tj,Script:()=>tY,TX_DATA_FORMAT:()=>t,WalletWireTransceiver:()=>r1,EncryptedMessage:()=>h,TransactionSignature:()=>tW,fromUtxo:()=>rM,Beef:()=>rp,HTTPWalletJSON:()=>r6,OverlayAdminTokenTemplate:()=>iu,SimplifiedFetchTransport:()=>id,TopicBroadcaster:()=>iw,BeefTx:()=>rl,MerklePath:()=>rc,WhatsOnChainBroadcaster:()=>rw,defaultBroadcaster:()=>rn,getVerifiableCertificates:()=>is,LockingScript:()=>tJ,HTTPSOverlayLookupFacilitator:()=>ig,FetchHttpClient:()=>rt,Peer:()=>ic,LookupResolver:()=>im,PublicKey:()=>tv,binaryHttpClient:()=>rk,StorageDownloader:()=>iE,BigNumber:()=>p,SessionManager:()=>ir,SecurityLevels:()=>r,WalletWireProcessor:()=>r7,createNonce:()=>ia,isBroadcastResponse:()=>rg,OP:()=>tX,P2PKH:()=>t3,WERR_REVIEW_ACTIONS:()=>r3,Teranode:()=>rS,UnlockingScript:()=>tZ,deserializeWalletProtocol:()=>iC,RegistryClient:()=>iT,Point:()=>td,BSM:()=>u,Mnemonic:()=>rB,isBroadcastFailure:()=>rm,Transaction:()=>rb,PushDrop:()=>t7,ATOMIC_BEEF:()=>rf,DEFAULT_TESTNET_SLAP_TRACKERS:()=>ib});var o={};n.r(o),n.d(o,{RIPEMD160:()=>U,SHA1:()=>B,SHA1HMAC:()=>K,SHA256:()=>D,SHA256HMAC:()=>H,SHA512:()=>L,SHA512HMAC:()=>F,hash160:()=>j,hash256:()=>W,pbkdf2:()=>eL,ripemd160:()=>q,sha1:()=>M,sha256:()=>$,sha256hmac:()=>G,sha512:()=>z,sha512hmac:()=>X,toArray:()=>S});var c={};n.r(c),n.d(c,{Reader:()=>eQ,Writer:()=>eZ,encode:()=>ez,fromBase58:()=>eG,fromBase58Check:()=>eJ,minimallyEncode:()=>e0,toArray:()=>eF,toBase58:()=>eX,toBase58Check:()=>eY,toBase64:()=>eW,toHex:()=>eK,toUTF8:()=>e$,zero2:()=>eH});var l={};n.r(l),n.d(l,{sign:()=>tw,verify:()=>tI});var d={};n.r(d),n.d(d,{sign:()=>rE,verify:()=>rN});var h={};n.r(h),n.d(h,{decrypt:()=>rA,encrypt:()=>r_});var u={};n.r(u),n.d(u,{magicHash:()=>rC,sign:()=>rV,verify:()=>rR});var f={};n.r(f),n.d(f,{getHashFromURL:()=>iS,getURLForFile:()=>ik,getURLForHash:()=>iv,isValidURL:()=>ix,normalizeURL:()=>iI});class p{static zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"];static groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];static groupBases=[0,0,0x2000000,0x290d741,0x1000000,0x2e90edd,0x39aa400,0x267bf47,0x1000000,0x290d741,1e7,0x12959c3,0x222c000,0x3bd7765,7529536,0xadcea1,0x1000000,0x1704f61,0x206fc40,0x2cddcf9,64e6,4084101,5153632,6436343,7962624,9765625,0xb54ba0,0xdaf26b,0x1069c00,0x138f9ad,243e5,0x1b4d89f,0x2000000,0x25528a1,0x2b54a20,0x3216b93,0x39aa400];static wordSize=26;static WORD_SIZE_BIGINT=BigInt(p.wordSize);static WORD_MASK=(1n<<p.WORD_SIZE_BIGINT)-1n;static MAX_SAFE_INTEGER_BIGINT=BigInt(Number.MAX_SAFE_INTEGER);static MIN_SAFE_INTEGER_BIGINT=BigInt(Number.MIN_SAFE_INTEGER);static MAX_IMULN_ARG=0x3ffffff;static MAX_NUMBER_CONSTRUCTOR_MAG_BIGINT=(1n<<53n)-1n;_magnitude;_sign;_nominalWordLength;red;get negative(){return this._sign}set negative(e){this.assert(0===e||1===e,"Negative property must be 0 or 1"),0n===this._magnitude?this._sign=0:this._sign=+(1===e)}get _computedWordsArray(){if(0n===this._magnitude)return[0];let e=[],t=this._magnitude;for(;t>0n;)e.push(Number(t&p.WORD_MASK)),t>>=p.WORD_SIZE_BIGINT;return e.length>0?e:[0]}get words(){let e=this._computedWordsArray;if(this._nominalWordLength<=e.length)return e;let t=Array(this._nominalWordLength).fill(0);for(let r=0;r<e.length;r++)t[r]=e[r];return t}set words(e){let t=this._sign,r=0n,i=e.length>0?e.length:1;for(let t=i-1;t>=0;t--){let i=void 0===e[t]?0:e[t];r=r<<p.WORD_SIZE_BIGINT|BigInt(i&Number(p.WORD_MASK))}this._magnitude=r,this._sign=t,this._nominalWordLength=i,this.normSign()}get length(){return Math.max(1,this._nominalWordLength)}static isBN(e){return e instanceof p||null!==e&&"object"==typeof e&&e.constructor?.wordSize===p.wordSize&&Array.isArray(e.words)}static max(e,t){return e.cmp(t)>0?e:t}static min(e,t){return 0>e.cmp(t)?e:t}constructor(e=0,t=10,r="be"){if(this._magnitude=0n,this._sign=0,this._nominalWordLength=1,this.red=null,void 0===e&&(e=0),null===e)return void this._initializeState(0n,0);if("bigint"==typeof e){this._initializeState(e<0n?-e:e,+(e<0n)),this.normSign();return}let i=t,a=r;if(("le"===t||"be"===t)&&(a=t,i=10),"number"==typeof e)return void this.initNumber(e,a);if(Array.isArray(e))return void this.initArray(e,a);if("string"==typeof e){"hex"===i&&(i=16),this.assert("number"==typeof i&&i===(0|i)&&i>=2&&i<=36,"Base must be an integer between 2 and 36");let t=e.toString().replace(/\s+/g,""),r=0,n=0;t.startsWith("-")?(r++,n=1):t.startsWith("+")&&r++;let s=t.substring(r);if(0===s.length){this._initializeState(0n,1===n&&t.startsWith("-")?1:0),this.normSign();return}if(16===i){let e;if("le"===a){let e=[],t=s;t.length%2!=0&&(t="0"+t);for(let r=0;r<t.length;r+=2){let i=parseInt(t.substring(r,r+2),16);if(isNaN(i))throw Error("Invalid character in "+t);e.push(i)}this.initArray(e,"le"),this._sign=n,this.normSign();return}try{e=BigInt("0x"+s)}catch(e){throw Error("Invalid character in "+s)}this._initializeState(e,n),this.normSign()}else try{if(this._parseBaseString(s,i),this._sign=n,this.normSign(),"le"===a){let e=this._sign;this.initArray(this.toArray("be"),"le"),this._sign=e,this.normSign()}}catch(e){if(e.message.includes("Invalid character in string")||e.message.includes("Invalid digit for base")||e.message.startsWith("Invalid character:"))throw Error("Invalid character");throw e}}else 0!==e?this.assert(!1,"Unsupported input type for BigNumber constructor"):this._initializeState(0n,0)}_bigIntToStringInBase(e,t){if(0n===e)return"0";if(t<2||t>36)throw Error("Base must be between 2 and 36");let r="",i=e>0n?e:-e,a=BigInt(t);for(;i>0n;)r="0123456789abcdefghijklmnopqrstuvwxyz"[Number(i%a)]+r,i/=a;return r}_parseBaseString(e,t){if(0===e.length){this._magnitude=0n,this._finishInitialization();return}this._magnitude=0n;let r=BigInt(t),i=p.groupSizes[t],a=BigInt(p.groupBases[t]);(0===i||0n===a)&&(0===(i=Math.floor(Math.log(0x3ffffff)/Math.log(t)))&&(i=1),a=r**BigInt(i));let n=0,s=e.length,o=s%i;if(0===o&&s>0&&(o=i),o>0){let r=e.substring(n,n+o);this._magnitude=BigInt(this._parseBaseWord(r,t)),n+=o}for(;n<s;){let r=e.substring(n,n+i),s=BigInt(this._parseBaseWord(r,t));this._magnitude=this._magnitude*a+s,n+=i}this._finishInitialization()}_parseBaseWord(e,t){let r=0;for(let i=0;i<e.length;i++){let a,n=e.charCodeAt(i);if(n>=48&&n<=57)a=n-48;else if(n>=65&&n<=90)a=n-65+10;else if(n>=97&&n<=122)a=n-97+10;else throw Error("Invalid character: "+e[i]);if(a>=t)throw Error("Invalid character");r=r*t+a}return r}_initializeState(e,t){this._magnitude=e,this._sign=0n===e?0:t,this._finishInitialization()}_finishInitialization(){if(0n===this._magnitude)this._nominalWordLength=1,this._sign=0;else{let e=this._magnitude.toString(2).length;this._nominalWordLength=Math.max(1,Math.ceil(e/p.wordSize))}}assert(e,t="Assertion failed"){if(!e)throw Error(t)}initNumber(e,t="be"){if(this.assert(BigInt(Math.abs(e))<=p.MAX_NUMBER_CONSTRUCTOR_MAG_BIGINT,"The number is larger than 2 ^ 53 (unsafe)"),this.assert(e%1==0,"Number must be an integer for BigNumber conversion"),this._initializeState(BigInt(Math.abs(e)),+(e<0)),"le"===t){let e=this._sign,t=this.toArray("be");this.initArray(t,"le"),this._sign=e,this.normSign()}return this}initArray(e,t){if(0===e.length)return this._initializeState(0n,0),this;let r=0n;if("be"===t)for(let t=0;t<e.length;t++)r=r<<8n|BigInt(255&e[t]);else for(let t=e.length-1;t>=0;t--)r=r<<8n|BigInt(255&e[t]);return this._initializeState(r,0),this}copy(e){e._magnitude=this._magnitude,e._sign=this._sign,e._nominalWordLength=this._nominalWordLength,e.red=this.red}static move(e,t){e._magnitude=t._magnitude,e._sign=t._sign,e._nominalWordLength=t._nominalWordLength,e.red=t.red}clone(){let e=new p(0n);return this.copy(e),e}expand(e){return this.assert(e>=0,"Expand size must be non-negative"),this._nominalWordLength=Math.max(this._nominalWordLength,e,1),this}strip(){return this._finishInitialization(),this.normSign()}normSign(){return 0n===this._magnitude&&(this._sign=0),this}inspect(){return(null!==this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}_getMinimalHex(){return 0n===this._magnitude?"0":this._magnitude.toString(16)}toString(e=10,t=1){if(16===e||"hex"===e){let e=this._getMinimalHex();if(t>1)for("0"!==e&&e.length%2!=0&&(e="0"+e);e.length%t!=0;)e="0"+e;return(this.isNeg()?"-":"")+e}if("number"!=typeof e||e<2||e>36||e%1!=0)throw Error("Base should be an integer between 2 and 36");return this.toBaseString(e,t)}toBaseString(e,t){if(0n===this._magnitude){let e="0";if(t>1)for(;e.length<t;)e="0"+e;return e}let r=p.groupSizes[e],i=BigInt(p.groupBases[e]);(0===r||0n===i)&&(0===(r=Math.floor(Math.log(Number.MAX_SAFE_INTEGER)/Math.log(e)))&&(r=1),i=BigInt(e)**BigInt(r));let a="",n=this._magnitude;for(;n>0n;){let t=n%i;n/=i;let s=this._bigIntToStringInBase(t,e);if(n>0n){let e=r-s.length;a=e>0&&e<p.zeros.length?p.zeros[e]+s+a:e>0?"0".repeat(e)+s+a:s+a}else a=s+a}if(t>0)for(;a.length<t;)a="0"+a;return(1===this._sign?"-":"")+a}toNumber(){let e=this._getSignedValue();if(e>p.MAX_SAFE_INTEGER_BIGINT||e<p.MIN_SAFE_INTEGER_BIGINT)throw Error("Number can only safely store up to 53 bits");return Number(e)}toJSON(){let e=this._getMinimalHex();return(this.isNeg()?"-":"")+e}toArrayLikeGeneric(e,t){let r=this._magnitude,i=t?0:e.length-1,a=t?1:-1;for(let t=0;t<e.length;++t){if(0n===r&&i>=0&&i<e.length)e[i]=0;else if(i>=0&&i<e.length)e[i]=Number(255n&r);else break;r>>=8n,i+=a}}toArray(e="be",t){this.strip();let r=this.byteLength(),i=t??Math.max(1,r);this.assert(r<=i,"byte array longer than desired length"),this.assert(i>0,"Requested array length <= 0");let a=Array(i).fill(0);return 0n===this._magnitude&&i>0?a:0n===this._magnitude&&0===i?[]:(this.toArrayLikeGeneric(a,"le"===e),a)}bitLength(){return 0n===this._magnitude?0:this._magnitude.toString(2).length}static toBitArray(e){let t=e.bitLength();if(0===t)return[];let r=Array(t),i=e._magnitude;for(let e=0;e<t;e++)r[e]=+((i>>BigInt(e)&1n)!==0n);return r}toBitArray(){return p.toBitArray(this)}zeroBits(){if(0n===this._magnitude)return 0;let e=0,t=this._magnitude;for(;(1n&t)===0n&&0n!==t;)e++,t>>=1n;return e}byteLength(){return 0n===this._magnitude?0:Math.ceil(this.bitLength()/8)}_getSignedValue(){return 1===this._sign?-this._magnitude:this._magnitude}_setValueFromSigned(e){e<0n?(this._magnitude=-e,this._sign=1):(this._magnitude=e,this._sign=0),this._finishInitialization(),this.normSign()}toTwos(e){this.assert(e>=0);let t=BigInt(e),r=this._getSignedValue();1===this._sign&&0n!==this._magnitude&&(r=(1n<<t)+r),r&=(1n<<t)-1n;let i=new p(0n);return i._initializeState(r,0),i}fromTwos(e){this.assert(e>=0);let t=BigInt(e),r=this._magnitude;if(e>0&&(r>>t-1n&1n)!==0n&&0===this._sign){let e=new p(0n);return e._setValueFromSigned(r-(1n<<t)),e}return this.clone()}isNeg(){return 1===this._sign&&0n!==this._magnitude}neg(){return this.clone().ineg()}ineg(){return 0n!==this._magnitude&&(this._sign=+(1!==this._sign)),this}_iuop(e,t){let r=t(this._magnitude,e._magnitude),i=t===((e,t)=>e^t),a=this._nominalWordLength;return i&&(a=Math.max(this.length,e.length)),this._magnitude=r,this._finishInitialization(),i&&(this._nominalWordLength=Math.max(this._nominalWordLength,a)),this.strip()}iuor(e){return this._iuop(e,(e,t)=>e|t)}iuand(e){return this._iuop(e,(e,t)=>e&t)}iuxor(e){return this._iuop(e,(e,t)=>e^t)}_iop(e,t){return this.assert(0===this._sign&&0===e._sign),this._iuop(e,t)}ior(e){return this._iop(e,(e,t)=>e|t)}iand(e){return this._iop(e,(e,t)=>e&t)}ixor(e){return this._iop(e,(e,t)=>e^t)}_uop_new(e,t){return this.length>=e.length?this.clone()[t](e):e.clone()[t](this)}or(e){return this.assert(0===this._sign&&0===e._sign),this._uop_new(e,"iuor")}uor(e){return this._uop_new(e,"iuor")}and(e){return this.assert(0===this._sign&&0===e._sign),this._uop_new(e,"iuand")}uand(e){return this._uop_new(e,"iuand")}xor(e){return this.assert(0===this._sign&&0===e._sign),this._uop_new(e,"iuxor")}uxor(e){return this._uop_new(e,"iuxor")}inotn(e){this.assert("number"==typeof e&&e>=0);let t=BigInt(e);this._magnitude=~this._magnitude&(1n<<t)-1n;let r=0===e?1:Math.ceil(e/p.wordSize);return this._nominalWordLength=Math.max(1,r),this.strip(),this._nominalWordLength=Math.max(this._nominalWordLength,Math.max(1,r)),this}notn(e){return this.clone().inotn(e)}setn(e,t){this.assert("number"==typeof e&&e>=0);let r=BigInt(e);1===t||!0===t?this._magnitude|=1n<<r:this._magnitude&=~(1n<<r);let i=Math.floor(e/p.wordSize)+1;return this._nominalWordLength=Math.max(this._nominalWordLength,i),this._finishInitialization(),this.strip()}iadd(e){return this._setValueFromSigned(this._getSignedValue()+e._getSignedValue()),this}add(e){let t=new p(0n);return t._setValueFromSigned(this._getSignedValue()+e._getSignedValue()),t}isub(e){return this._setValueFromSigned(this._getSignedValue()-e._getSignedValue()),this}sub(e){let t=new p(0n);return t._setValueFromSigned(this._getSignedValue()-e._getSignedValue()),t}mul(e){let t=new p(0n);return t._magnitude=this._magnitude*e._magnitude,t._sign=0n===t._magnitude?0:this._sign^e._sign,t._nominalWordLength=this.length+e.length,t.red=null,t.normSign()}imul(e){return this._magnitude*=e._magnitude,this._sign=0n===this._magnitude?0:this._sign^e._sign,this._nominalWordLength=this.length+e.length,this.red=null,this.normSign()}imuln(e){return this.assert("number"==typeof e,"Assertion failed"),this.assert(Math.abs(e)<=p.MAX_IMULN_ARG,"Assertion failed"),this._setValueFromSigned(this._getSignedValue()*BigInt(e)),this}muln(e){return this.clone().imuln(e)}sqr(){let e=new p(0n);return e._magnitude=this._magnitude*this._magnitude,e._sign=0,e._nominalWordLength=2*this.length,e.red=null,e}isqr(){return this._magnitude*=this._magnitude,this._sign=0,this._nominalWordLength=2*this.length,this.red=null,this}pow(e){if(this.assert(0===e._sign,"Exponent for pow must be non-negative"),e.isZero())return new p(1n);let t=new p(1n),r=this.clone(),i=e.clone(),a=r.isNeg(),n=i.isOdd();for(a&&r.ineg();!i.isZero();)i.isOdd()&&t.imul(r),r.isqr(),i.iushrn(1);return a&&n&&t.ineg(),t}iushln(e){return(this.assert("number"==typeof e&&e>=0),0===e)?this:(this._magnitude<<=BigInt(e),this._finishInitialization(),this.strip())}ishln(e){return this.assert(0===this._sign,"ishln requires positive number"),this.iushln(e)}iushrn(e,t,r){if(this.assert("number"==typeof e&&e>=0),0===e)return null!=r&&r._initializeState(0n,0),this;if(null!=r){let t=(1n<<BigInt(e))-1n,i=this._magnitude&t;r._initializeState(i,0)}return this._magnitude>>=BigInt(e),this._finishInitialization(),this.strip()}ishrn(e,t,r){return this.assert(0===this._sign,"ishrn requires positive number"),this.iushrn(e,t,r)}shln(e){return this.clone().ishln(e)}ushln(e){return this.clone().iushln(e)}shrn(e){return this.clone().ishrn(e)}ushrn(e){return this.clone().iushrn(e)}testn(e){return this.assert("number"==typeof e&&e>=0),(this._magnitude>>BigInt(e)&1n)!==0n}imaskn(e){this.assert("number"==typeof e&&e>=0),this.assert(0===this._sign,"imaskn works only with positive numbers");let t=BigInt(e);this._magnitude&=0n===t?0n:(1n<<t)-1n;let r=0===e?1:Math.max(1,Math.ceil(e/p.wordSize));return this._nominalWordLength=r,this._finishInitialization(),this._nominalWordLength=Math.max(this._nominalWordLength,r),this.strip()}maskn(e){return this.clone().imaskn(e)}iaddn(e){return this.assert("number"==typeof e),this.assert(Math.abs(e)<=p.MAX_IMULN_ARG,"num is too large"),this._setValueFromSigned(this._getSignedValue()+BigInt(e)),this}_iaddn(e){return this.iaddn(e)}isubn(e){return this.assert("number"==typeof e),this.assert(Math.abs(e)<=p.MAX_IMULN_ARG,"Assertion failed"),this._setValueFromSigned(this._getSignedValue()-BigInt(e)),this}addn(e){return this.clone().iaddn(e)}subn(e){return this.clone().isubn(e)}iabs(){return this._sign=0,this}abs(){return this.clone().iabs()}divmod(e,t,r){if(this.assert(!e.isZero(),"Division by zero"),this.isZero()){let e=new p(0n);return{div:"mod"!==t?e:null,mod:"div"!==t?e:null}}let i=this._getSignedValue(),a=e._getSignedValue(),n=null,s=null;"mod"!==t&&(n=i/a),"div"!==t&&(s=i%a,!0===r&&s<0n&&(s+=a<0n?-a:a));let o=null!==n?new p(0n):null;null!==o&&null!==n&&o._setValueFromSigned(n);let c=null!==s?new p(0n):null;return null!==c&&null!==s&&c._setValueFromSigned(s),{div:o,mod:c}}div(e){return this.divmod(e,"div",!1).div}mod(e){return this.divmod(e,"mod",!1).mod}umod(e){return this.divmod(e,"mod",!0).mod}divRound(e){this.assert(!e.isZero());let t=this._getSignedValue(),r=e._getSignedValue(),i=t/r,a=t%r;if(0n===a){let e=new p(0n);return e._setValueFromSigned(i),e}2n*(a<0n?-a:a)>=(r<0n?-r:r)&&(t>0n&&r>0n||t<0n&&r<0n?i+=1n:i-=1n);let n=new p(0n);return n._setValueFromSigned(i),n}modrn(e){this.assert(0!==e,"Division by zero in modrn");let t=BigInt(Math.abs(e));if(0n===t)throw Error("Division by zero in modrn");let r=this._magnitude%t;return e<0?Number(-r):Number(r)}idivn(e){return this.assert(0!==e),this.assert(Math.abs(e)<=p.MAX_IMULN_ARG,"num is too large"),this._setValueFromSigned(this._getSignedValue()/BigInt(e)),this}divn(e){return this.clone().idivn(e)}egcd(e){this.assert(0===e._sign,"p must not be negative"),this.assert(!e.isZero(),"p must not be zero");let t=this._getSignedValue(),r=e._magnitude,i=1n,a=0n,n=0n,s=1n;for(;0n!==r;){let e=t/r,o=r;r=t%r,t=o,o=a,a=i-e*a,i=o,o=s,s=n-e*s,n=o}let o=new p(0n);o._setValueFromSigned(i);let c=new p(0n);c._setValueFromSigned(n);let l=new p(0n);return l._initializeState(t<0n?-t:t,0),{a:o,b:c,gcd:l}}gcd(e){let t=this._magnitude,r=e._magnitude;if(0n===t){let e=new p(0n);return e._setValueFromSigned(r),e.iabs()}if(0n===r){let e=new p(0n);return e._setValueFromSigned(t),e.iabs()}for(;0n!==r;){let e=t%r;t=r,r=e}let i=new p(0n);return i._initializeState(t,0),i}invm(e){this.assert(!e.isZero()&&0===e._sign,"Modulus for invm must be positive and non-zero");let t=this.egcd(e);if(!t.gcd.eqn(1))throw Error("Inverse does not exist (numbers are not coprime).");return t.a.umod(e)}isEven(){return this._magnitude%2n===0n}isOdd(){return this._magnitude%2n===1n}andln(e){return this.assert(e>=0),Number(this._magnitude&BigInt(e))}bincn(e){this.assert("number"==typeof e&&e>=0);let t=1n<<BigInt(e);return this._setValueFromSigned(this._getSignedValue()+t),this}isZero(){return 0n===this._magnitude}cmpn(e){this.assert(Math.abs(e)<=p.MAX_IMULN_ARG,"Number is too big");let t=this._getSignedValue(),r=BigInt(e);return t<r?-1:+(t>r)}cmp(e){let t=this._getSignedValue(),r=e._getSignedValue();return t<r?-1:+(t>r)}ucmp(e){return this._magnitude<e._magnitude?-1:+(this._magnitude>e._magnitude)}gtn(e){return 1===this.cmpn(e)}gt(e){return 1===this.cmp(e)}gten(e){return this.cmpn(e)>=0}gte(e){return this.cmp(e)>=0}ltn(e){return -1===this.cmpn(e)}lt(e){return -1===this.cmp(e)}lten(e){return 0>=this.cmpn(e)}lte(e){return 0>=this.cmp(e)}eqn(e){return 0===this.cmpn(e)}eq(e){return 0===this.cmp(e)}toRed(e){return this.assert(null==this.red,"Already a number in reduction context"),this.assert(0===this._sign,"toRed works only with positives"),e.convertTo(this).forceRed(e)}fromRed(){return this.assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)}forceRed(e){return this.red=e,this}redAdd(e){return this.assert(this.red,"redAdd works only with red numbers"),this.red.add(this,e)}redIAdd(e){return this.assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)}redSub(e){return this.assert(this.red,"redSub works only with red numbers"),this.red.sub(this,e)}redISub(e){return this.assert(this.red,"redISub works only with red numbers"),this.red.isub(this,e)}redShl(e){return this.assert(this.red,"redShl works only with red numbers"),this.red.shl(this,e)}redMul(e){return this.assert(this.red,"redMul works only with red numbers"),this.red.verify2(this,e),this.red.mul(this,e)}redIMul(e){return this.assert(this.red,"redIMul works only with red numbers"),this.red.verify2(this,e),this.red.imul(this,e)}redSqr(){return this.assert(this.red,"redSqr works only with red numbers"),this.red.verify1(this),this.red.sqr(this)}redISqr(){return this.assert(this.red,"redISqr works only with red numbers"),this.red.verify1(this),this.red.isqr(this)}redSqrt(){return this.assert(this.red,"redSqrt works only with red numbers"),this.red.verify1(this),this.red.sqrt(this)}redInvm(){return this.assert(this.red,"redInvm works only with red numbers"),this.red.verify1(this),this.red.invm(this)}redNeg(){return this.assert(this.red,"redNeg works only with red numbers"),this.red.verify1(this),this.red.neg(this)}redPow(e){return this.assert(null!=this.red&&null==e.red,"redPow(normalNum)"),this.red.verify1(this),this.red.pow(this,e)}static fromHex(e,t){let r="be";return("little"===t||"le"===t)&&(r="le"),new p(e,16,r)}toHex(e=0){if(this.isZero()&&0===e)return"";let t=this._getMinimalHex();"0"!==t&&t.length%2!=0&&(t="0"+t);let r=2*e;for(;t.length<r;)t="0"+t;return(this.isNeg()?"-":"")+t}static fromJSON(e){return new p(e,16)}static fromNumber(e){return new p(e)}static fromString(e,t){return new p(e,t)}static fromSm(e,t="big"){if(0===e.length)return new p(0n);let r=0,i="";if("little"===t){let t=e.length-1,a=e[t];(128&a)!=0&&(r=1,a&=127),i+=(a<16?"0":"")+a.toString(16);for(let r=t-1;r>=0;r--){let t=e[r];i+=(t<16?"0":"")+t.toString(16)}}else{let t=e[0];(128&t)!=0&&(r=1,t&=127),i+=(t<16?"0":"")+t.toString(16);for(let t=1;t<e.length;t++){let r=e[t];i+=(r<16?"0":"")+r.toString(16)}}let a=""===i?0n:BigInt("0x"+i),n=new p(0n);return n._initializeState(a,r),n}toSm(e="big"){if(0n===this._magnitude)return 1===this._sign?[128]:[];let t=this._getMinimalHex();t.length%2!=0&&(t="0"+t);let r=Array(t.length/2);for(let e=0,i=0;e<t.length;e+=2)r[i++]=parseInt(t.slice(e,e+2),16);return 1===this._sign?(128&r[0])!=0?r.unshift(128):r[0]|=128:(128&r[0])!=0&&r.unshift(0),"little"===e?r.reverse():r}static fromBits(e,t=!1){let r=e>>>24,i=8388607&e,a=(8388608&e)!=0;if(t&&a)throw Error("negative bit set");if(0===r&&0===i){if(a&&t)throw Error("negative bit set for zero value");return new p(0n)}let n=new p(i);return r<=3?n.iushrn((3-r)*8):n.iushln((r-3)*8),a&&n.ineg(),n}toBits(){let e;if(this.strip(),this.isZero()&&!this.isNeg())return 0;let t=this.isNeg(),r=this.abs(),i=r.toArray("be"),a=0;for(;a<i.length-1&&0===i[a];)a++;let n=(i=i.slice(a)).length;if(0!==n||r.isZero()||(i=[0],n=1),r.isZero()&&(n=0,i=[]),0===n)e=0;else if(n<=3){e=0;for(let t=0;t<n;t++)e=e<<8|i[t]}else e=i[0]<<16|i[1]<<8|i[2];(8388608&e)!=0&&n<=255&&(e>>>=8,n++);let s=n<<24|e;return t&&(s|=8388608),s>>>0}static fromScriptNum(e,t=!1,r){if(void 0!==r&&e.length>r)throw Error("script number overflow");if(0===e.length)return new p(0n);if(t&&(127&e[e.length-1])==0&&(e.length<=1||(128&e[e.length-2])==0))throw Error("non-minimally encoded script number");return p.fromSm(e,"little")}toScriptNum(){return this.toSm("little")}_invmp(e){let t;this.assert(0===e._sign,"p must not be negative for _invmp"),this.assert(!e.isZero(),"p must not be zero for _invmp");let r=this.umod(e)._magnitude,i=e._magnitude,a=1n,n=0n,s=e._magnitude;for(;r>1n&&i>1n;){let e=0;for(;(r>>BigInt(e)&1n)===0n;)e++;if(e>0){r>>=BigInt(e);for(let t=0;t<e;++t)(1n&a)!==0n&&(a+=s),a>>=1n}let t=0;for(;(i>>BigInt(t)&1n)===0n;)t++;if(t>0){i>>=BigInt(t);for(let e=0;e<t;++e)(1n&n)!==0n&&(n+=s),n>>=1n}r>=i?(r-=i,a-=n):(i-=r,n-=a)}if(1n===r)t=a;else if(1n===i)t=n;else if(0n===r&&1n===i)t=n;else if(0n===i&&1n===r)t=a;else throw Error("_invmp: GCD is not 1, inverse does not exist. aVal="+r+", bVal="+i);(t%=s)<0n&&(t+=s);let o=new p(0n);return o._initializeState(t,0),o}mulTo(e,t){return t._magnitude=this._magnitude*e._magnitude,t._sign=0n===t._magnitude?0:this._sign^e._sign,t._nominalWordLength=this.length+e.length,t.red=null,t.normSign(),t}}class b{name;p;k;n;tmp;constructor(e,t){this.name=e,this.p=new p(t,16),this.n=this.p.bitLength(),this.k=new p(BigInt(1)).iushln(this.n).isub(this.p),this.tmp=this._tmp()}_tmp(){let e=new p(BigInt(0)),t=Math.ceil(this.n/p.wordSize);return e.expand(Math.max(1,t)),e}ireduce(e){let t;do this.split(e,this.tmp),this.imulK(e),e.iadd(this.tmp),t=e.bitLength();while(t>this.n);let r=t<this.n?-1:e.ucmp(this.p);return 0===r?e.words=[0]:r>0&&e.isub(this.p),e.strip(),e}split(e,t){e.iushrn(this.n,0,t)}imulK(e){return e.imul(this.k)}}class g extends b{constructor(){super("k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}split(e,t){let r=e.words,i=e.length,a=Math.min(i,9),n=Array(a+ +(i>9)).fill(0);for(let e=0;e<a;e++)n[e]=r[e];let s=a;if(i<=9){let r=Array(s);for(let e=0;e<s;++e)r[e]=n[e];t.words=r,e.words=[0];return}let o=r[9];n[s++]=4194303&o;let c=Array(s);for(let e=0;e<s;++e)c[e]=n[e];t.words=c;let l=Array(Math.max(1,i-9)).fill(0),d=0;for(let e=10;e<i;e++){let t=0|r[e];d<l.length&&(l[d++]=(4194303&t)<<4|o>>>22),o=t}o>>>=22,d<l.length?l[d++]=o:0!==o&&l.length;let h=Array(d);for(let e=0;e<d;++e)h[e]=l[e];e.words=h}imulK(e){let t=e.words,r=e.length,i=r+2,a=Array(i).fill(0);for(let e=0;e<r;e++)a[e]=t[e];let n=0;for(let e=0;e<i;e++){let t=0|a[e];n+=977*t,a[e]=0x3ffffff&n,n=64*t+(n/0x4000000|0)}return e.words=a,e}}class m{prime;m;constructor(e){if("k256"===e){let e=new g;this.m=e.p,this.prime=e}else this.assert(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}assert(e,t="Assertion failed"){if(!e)throw Error(t)}verify1(e){this.assert(0===e.negative,"red works only with positives"),this.assert(e.red,"red works only with red numbers")}verify2(e,t){this.assert((e.negative|t.negative)==0,"red works only with positives"),this.assert(null!=e.red&&e.red===t.red,"red works only with red numbers")}imod(e){return null!=this.prime?this.prime.ireduce(e).forceRed(this):(p.move(e,e.umod(this.m).forceRed(this)),e)}neg(e){return e.isZero()?e.clone():this.m.sub(e).forceRed(this)}add(e,t){this.verify2(e,t);let r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r.forceRed(this)}iadd(e,t){this.verify2(e,t);let r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r}sub(e,t){this.verify2(e,t);let r=e.sub(t);return 0>r.cmpn(0)&&r.iadd(this.m),r.forceRed(this)}isub(e,t){this.verify2(e,t);let r=e.isub(t);return 0>r.cmpn(0)&&r.iadd(this.m),r}shl(e,t){return this.verify1(e),this.imod(e.ushln(t))}imul(e,t){return this.verify2(e,t),this.imod(e.imul(t))}mul(e,t){return this.verify2(e,t),this.imod(e.mul(t))}isqr(e){return this.imul(e,e.clone())}sqr(e){return this.mul(e,e)}sqrt(e){if(e.isZero())return e.clone();let t=this.m.andln(3);if(this.assert(t%2==1),3===t){let t=this.m.add(new p(1)).iushrn(2);return this.pow(e,t)}let r=this.m.subn(1),i=0;for(;!r.isZero()&&0===r.andln(1);)i++,r.iushrn(1);this.assert(!r.isZero());let a=new p(1).toRed(this),n=a.redNeg(),s=this.m.subn(1).iushrn(1),o=this.m.bitLength(),c=new p(2*o*o).toRed(this);for(;0!==this.pow(c,s).cmp(n);)c.redIAdd(n);let l=this.pow(c,r),d=this.pow(e,r.addn(1).iushrn(1)),h=this.pow(e,r),u=i;for(;0!==h.cmp(a);){let e=h,t=0;for(;0!==e.cmp(a);t++)e=e.redSqr();this.assert(t<u);let r=this.pow(l,new p(1).iushln(u-t-1));d=d.redMul(r),l=r.redSqr(),h=h.redMul(l),u=t}return d}invm(e){let t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)}pow(e,t){if(t.isZero())return new p(1).toRed(this);if(0===t.cmpn(1))return e.clone();let r=Array(16);r[0]=new p(1).toRed(this),r[1]=e;let i=2;for(;i<r.length;i++)r[i]=this.mul(r[i-1],e);let a=r[0],n=0,s=0,o=t.bitLength()%26;for(0===o&&(o=26),i=t.length-1;i>=0;i--){let e=t.words[i];for(let t=o-1;t>=0;t--){let o=e>>t&1;if(a!==r[0]&&(a=this.sqr(a)),0===o&&0===n){s=0;continue}n<<=1,n|=o,(4==++s||0===i&&0===t)&&(a=this.mul(a,r[n]),s=0,n=0)}o=26}return a}convertTo(e){let t=e.umod(this.m);return t===e?t.clone():t}convertFrom(e){let t=e.clone();return t.red=null,t}}class y extends m{shift;r;r2;rinv;minv;constructor(e){super(e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new p(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}convertTo(e){return this.imod(e.ushln(this.shift))}convertFrom(e){let t=this.imod(e.mul(this.rinv));return t.red=null,t}imul(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;let r=e.imul(t),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=r.isub(i).iushrn(this.shift),n=a;return a.cmp(this.m)>=0?n=a.isub(this.m):0>a.cmpn(0)&&(n=a.iadd(this.m)),n.forceRed(this)}mul(e,t){if(e.isZero()||t.isZero())return new p(0).forceRed(this);let r=e.mul(t),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=r.isub(i).iushrn(this.shift),n=a;return a.cmp(this.m)>=0?n=a.isub(this.m):0>a.cmpn(0)&&(n=a.iadd(this.m)),n.forceRed(this)}invm(e){return this.imod(e._invmp(this.m).mul(this.r2)).forceRed(this)}}class w{curve;type;precomputed;constructor(e){this.curve=new th,this.type=e,this.precomputed=null}}class I extends w{x;y;z;zOne;constructor(e,t,r){super("jacobian"),null===e&&null===t&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new p(0)):(p.isBN(e)||(e=new p(e,16)),this.x=e,p.isBN(t)||(t=new p(t,16)),this.y=t,p.isBN(r)||(r=new p(r,16)),this.z=r),null==this.x.red&&(this.x=this.x.toRed(this.curve.red)),null==this.y.red&&(this.y=this.y.toRed(this.curve.red)),null==this.z.red&&(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}toP(){if(this.isInfinity())return new td(null,null);let e=this.z.redInvm(),t=e.redSqr();return new td(this.x.redMul(t),this.y.redMul(t).redMul(e))}neg(){return new I(this.x,this.y.redNeg(),this.z)}add(e){if(this.isInfinity())return e;if(e.isInfinity())return this;let t=e.z.redSqr(),r=this.z.redSqr(),i=this.x.redMul(t),a=e.x.redMul(r),n=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(r.redMul(this.z)),o=i.redSub(a),c=n.redSub(s);if(0===o.cmpn(0))if(0!==c.cmpn(0))return new I(null,null,null);else return this.dbl();let l=o.redSqr(),d=l.redMul(o),h=i.redMul(l),u=c.redSqr().redIAdd(d).redISub(h).redISub(h),f=c.redMul(h.redISub(u)).redISub(n.redMul(d));return new I(u,f,this.z.redMul(e.z).redMul(o))}mixedAdd(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;if(null===e.x||null===e.y)throw Error("Point coordinates cannot be null");let t=this.z.redSqr(),r=this.x,i=e.x.redMul(t),a=this.y,n=e.y.redMul(t).redMul(this.z),s=r.redSub(i),o=a.redSub(n);if(0===s.cmpn(0))if(0!==o.cmpn(0))return new I(null,null,null);else return this.dbl();let c=s.redSqr(),l=c.redMul(s),d=r.redMul(c),h=o.redSqr().redIAdd(l).redISub(d).redISub(d),u=o.redMul(d.redISub(h)).redISub(a.redMul(l));return new I(h,u,this.z.redMul(s))}dblp(e){if(0===e||this.isInfinity())return this;if(void 0===e)return this.dbl();let t=this;for(let r=0;r<e;r++)t=t.dbl();return t}dbl(){let e,t,r;if(this.isInfinity())return this;if(this.zOne){let i=this.x.redSqr(),a=this.y.redSqr(),n=a.redSqr(),s=this.x.redAdd(a).redSqr().redISub(i).redISub(n);s=s.redIAdd(s);let o=i.redAdd(i).redIAdd(i),c=o.redSqr().redISub(s).redISub(s),l=n.redIAdd(n);l=(l=l.redIAdd(l)).redIAdd(l),e=c,t=o.redMul(s.redISub(c)).redISub(l),r=this.y.redAdd(this.y)}else{let i=this.x.redSqr(),a=this.y.redSqr(),n=a.redSqr(),s=this.x.redAdd(a).redSqr().redISub(i).redISub(n);s=s.redIAdd(s);let o=i.redAdd(i).redIAdd(i),c=o.redSqr(),l=n.redIAdd(n);l=(l=l.redIAdd(l)).redIAdd(l),e=c.redISub(s).redISub(s),t=o.redMul(s.redISub(e)).redISub(l),r=(r=this.y.redMul(this.z)).redIAdd(r)}return new I(e,t,r)}eq(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;let t=this.z.redSqr(),r=e.z.redSqr();if(0!==this.x.redMul(r).redISub(e.x.redMul(t)).cmpn(0))return!1;let i=t.redMul(this.z),a=r.redMul(e.z);return 0===this.y.redMul(a).redISub(e.y.redMul(i)).cmpn(0)}eqXToP(e){let t=this.z.redSqr(),r=e.toRed(this.curve?.red).redMul(t);if(0===this.x.cmp(r))return!0;let i=e.clone();if(null===this.curve||null==this.curve.redN)throw Error("Curve or redN is not initialized.");let a=this.curve.redN.redMul(t);for(;0>i.cmp(this.curve.p)&&(i.iadd(this.curve.n),!(i.cmp(this.curve.p)>=0));)if(r.redIAdd(a),0===this.x.cmp(r))return!0;return!1}inspect(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"}isInfinity(){return 0===this.z.cmpn(0)}}let v=(e,t="Hash assertion failed")=>{if(!e)throw Error(t)};class k{pending;pendingTotal;blockSize;outSize;endian;_delta8;_delta32;padLength;hmacStrength;constructor(e,t,r,i){this.pending=null,this.pendingTotal=0,this.blockSize=e,this.outSize=t,this.hmacStrength=r,this.padLength=i/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}_update(e,t){throw Error("Not implemented")}_digest(){throw Error("Not implemented")}_digestHex(){throw Error("Not implemented")}update(e,t){if(e=S(e,t),null==this.pending?this.pending=e:this.pending=this.pending.concat(e),this.pendingTotal+=e.length,this.pending.length>=this._delta8){let t=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-t,e.length),0===this.pending.length&&(this.pending=null),e=function(e,t,r,i){let a=r-0;v(a%4==0);let n=Array(a/4);for(let r=0,a=t;r<n.length;r++,a+=4){let t;t="big"===i?e[a]<<24|e[a+1]<<16|e[a+2]<<8|e[a+3]:e[a+3]<<24|e[a+2]<<16|e[a+1]<<8|e[a],n[r]=t>>>0}return n}(e,0,e.length-t,this.endian);for(let t=0;t<e.length;t+=this._delta32)this._update(e,t)}return this}digest(){return this.update(this._pad()),v(null===this.pending),this._digest()}digestHex(){return this.update(this._pad()),v(null===this.pending),this._digestHex()}_pad(){let e,t,r=this.pendingTotal,i=this._delta8,a=i-(r+this.padLength)%i,n=Array(a+this.padLength);for(e=1,n[0]=128;e<a;e++)n[e]=0;if(r<<=3,"big"===this.endian){for(t=8;t<this.padLength;t++)n[e++]=0;n[e++]=0,n[e++]=0,n[e++]=0,n[e++]=0,n[e++]=r>>>24&255,n[e++]=r>>>16&255,n[e++]=r>>>8&255,n[e++]=255&r}else for(t=8,n[e++]=255&r,n[e++]=r>>>8&255,n[e++]=r>>>16&255,n[e++]=r>>>24&255,n[e++]=0,n[e++]=0,n[e++]=0,n[e++]=0;t<this.padLength;t++)n[e++]=0;return n}}function S(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];let r=[];if("string"==typeof e)if("hex"!==t){let t=0;for(let n=0;n<e.length;n++){let s=e.charCodeAt(n);if(s<128)r[t++]=s;else if(s<2048)r[t++]=s>>6|192,r[t++]=63&s|128;else{var i,a;(i=e,a=n,(64512&i.charCodeAt(a))!=55296||a<0||a+1>=i.length?1:(64512&i.charCodeAt(a+1))!=56320)?r[t++]=s>>12|224:(s=65536+((1023&s)<<10)+(1023&e.charCodeAt(++n)),r[t++]=s>>18|240,r[t++]=s>>12&63|128),r[t++]=s>>6&63|128,r[t++]=63&s|128}}}else{(e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e);for(let t=0;t<e.length;t+=2)r.push(parseInt(e[t]+e[t+1],16))}else for(let t=0;t<e.length;t++)r[t]=0|e[t];return r}function x(e,t){let r="";for(let a=0;a<e.length;a++){var i;let n=e[a];"little"===t&&(n=((i=n)>>>24|i>>>8&65280|i<<8&0xff0000|(255&i)<<24)>>>0),r+=function(e){if(7===e.length)return"0"+e;if(6===e.length)return"00"+e;if(5===e.length)return"000"+e;if(4===e.length)return"0000"+e;if(3===e.length)return"00000"+e;else if(2===e.length)return"000000"+e;else if(1===e.length)return"0000000"+e;else return e}(n.toString(16))}return r}function P(e){let t="";for(let r of e)t+=r.toString(16).padStart(2,"0");return t}function E(e,t){let r=Array(4*e.length);for(let i=0,a=0;i<e.length;i++,a+=4){let n=e[i];"big"===t?(r[a]=n>>>24,r[a+1]=n>>>16&255,r[a+2]=n>>>8&255,r[a+3]=255&n):(r[a+3]=n>>>24,r[a+2]=n>>>16&255,r[a+1]=n>>>8&255,r[a]=255&n)}return r}function N(e,t){return e>>>t|e<<32-t}function O(e,t){return e<<t|e>>>32-t}function _(e,t){return e+t>>>0}let A=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],T=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],C=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],V=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11];function R(e,t,r,i){return e<=15?t^r^i:e<=31?t&r|~t&i:e<=47?(t|~r)^i:e<=63?t&i|r&~i:t^(r|~i)}class U extends k{h;constructor(){super(512,160,192,64),this.endian="little",this.h=[0x67452301,0xefcdab89,0x98badcfe,0x10325476,0xc3d2e1f0],this.endian="little"}_update(e,t){var r,i,a,n,s,o;let c,l=this.h[0],d=this.h[1],h=this.h[2],u=this.h[3],f=this.h[4],p=l,b=d,g=h,m=u,y=f;for(let w=0;w<80;w++){c=_(O((r=l,i=R(w,d,h,u),r+i+e[A[w]+t]+((s=w)<=15?0:s<=31?0x5a827999:s<=47?0x6ed9eba1:s<=63?0x8f1bbcdc:0xa953fd4e)>>>0),C[w]),f),l=f,f=u,u=O(h,10),h=d,d=c,c=_(O((a=p,n=R(79-w,b,g,m),a+n+e[T[w]+t]+((o=w)<=15?0x50a28be6:o<=31?0x5c4dd124:o<=47?0x6d703ef3:0x7a6d76e9*!!(o<=63))>>>0),V[w]),y),p=y,y=m,m=O(g,10),g=b,b=c}c=this.h[1]+h+m>>>0,this.h[1]=this.h[2]+u+y>>>0,this.h[2]=this.h[3]+f+p>>>0,this.h[3]=this.h[4]+l+b>>>0,this.h[4]=this.h[0]+d+g>>>0,this.h[0]=c}_digest(){return E(this.h,"little")}_digestHex(){return x(this.h,"little")}}class D{h;constructor(){this.h=new eE}update(e,t){let r=Uint8Array.from(S(e,t));return this.h.update(r),this}digest(){return Array.from(this.h.digest())}digestHex(){return P(this.h.digest())}}class B extends k{h;W;k;constructor(){super(512,160,80,64),this.k=[0x5a827999,0x6ed9eba1,0x8f1bbcdc,0xca62c1d6],this.h=[0x67452301,0xefcdab89,0x98badcfe,0x10325476,0xc3d2e1f0],this.W=Array(80)}_update(e,t){let r,i=this.W;for(void 0===t&&(t=0),r=0;r<16;r++)i[r]=e[t+r];for(;r<i.length;r++)i[r]=O(i[r-3]^i[r-8]^i[r-14]^i[r-16],1);let a=this.h[0],n=this.h[1],s=this.h[2],o=this.h[3],c=this.h[4];for(r=0;r<i.length;r++){var l,d,h,u,f,p,b,g,m;let e=~~(r/20),t=(u=O(a,5),l=n,d=s,h=o,f=0===e?(p=l)&d^~p&h:1===e||3===e?l^d^h:2===e?(b=l)&(g=d)^b&(m=h)^g&m:0,u+f+c+i[r]+this.k[e]>>>0);c=o,o=s,s=O(n,30),n=a,a=t}this.h[0]=_(this.h[0],a),this.h[1]=_(this.h[1],n),this.h[2]=_(this.h[2],s),this.h[3]=_(this.h[3],o),this.h[4]=_(this.h[4],c)}_digest(){return E(this.h,"big")}_digestHex(){return x(this.h,"big")}}class L{h;constructor(){this.h=new eR}update(e,t){let r=Uint8Array.from(S(e,t));return this.h.update(r),this}digest(){return Array.from(this.h.digest())}digestHex(){return P(this.h.digest())}}class H{h;blockSize=64;outSize=32;constructor(e){let t=Uint8Array.from(S(e,"hex"));this.h=new eD(eN,t)}update(e,t){return this.h.update(Uint8Array.from(S(e,t))),this}digest(){return Array.from(this.h.digest())}digestHex(){return P(this.h.digest())}}class K{inner;outer;blockSize=64;constructor(e){let t;for((e=S(e,"hex")).length>this.blockSize&&(e=new B().update(e).digest()),t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(t=0,this.inner=new B().update(e);t<e.length;t++)e[t]^=106;this.outer=new B().update(e)}update(e,t){return this.inner.update(e,t),this}digest(){return this.outer.update(this.inner.digest()),this.outer.digest()}digestHex(){return this.outer.update(this.inner.digest()),this.outer.digestHex()}}class F{h;blockSize=128;outSize=32;constructor(e){let t=Uint8Array.from(S(e,"hex"));this.h=new eD(eU,t)}update(e,t){return this.h.update(Uint8Array.from(S(e,t))),this}digest(){return Array.from(this.h.digest())}digestHex(){return P(this.h.digest())}}let q=(e,t)=>new U().update(e,t).digest(),M=(e,t)=>new B().update(e,t).digest(),$=(e,t)=>new D().update(e,t).digest(),z=(e,t)=>new L().update(e,t).digest(),W=(e,t)=>{let r=new D().update(e,t).digest();return new D().update(r).digest()},j=(e,t)=>{let r=new D().update(e,t).digest();return new U().update(r).digest()},G=(e,t,r)=>new H(e).update(t,r).digest(),X=(e,t,r)=>new F(e).update(t,r).digest();function Y(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got ${e}`)}function J(e,...t){if(!(e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length)){let r=t.join(",");throw Error(`Uint8Array expected of length ${r}, got length=${e.length}`)}}function Z(e){if("function"!=typeof e||"function"!=typeof e.create)throw Error("Hash should be wrapped by utils.createHasher");Y(e.outputLen),Y(e.blockLen)}function Q(e,t=!0){if(!0===e.destroyed)throw Error("Hash instance has been destroyed");if(t&&!0===e.finished)throw Error("Hash#digest() has already been called")}function ee(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function et(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function er(e){return"string"==typeof e&&(e=ei(e)),J(e),e}function ei(e){if("string"!=typeof e)throw Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function ea(e){return"string"==typeof e&&(e=ei(e)),J(e),e}class en{}function es(e){let t=t=>e().update(er(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}let eo=BigInt(0x100000000-1),ec=BigInt(32),el=(e,t,r)=>e>>>r,ed=(e,t,r)=>e<<32-r|t>>>r,eh=(e,t,r)=>e>>>r|t<<32-r,eu=(e,t,r)=>e<<32-r|t>>>r,ef=(e,t,r)=>e<<64-r|t>>>r-32,ep=(e,t,r)=>e>>>r-32|t<<64-r;function eb(e,t,r,i){let a=(t>>>0)+(i>>>0);return{h:e+r+(a/0x100000000|0)|0,l:0|a}}let eg=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),em=(e,t,r,i)=>t+r+i+(e/0x100000000|0)|0,ey=(e,t,r,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(i>>>0),ew=(e,t,r,i,a)=>t+r+i+a+(e/0x100000000|0)|0,eI=(e,t,r,i,a)=>(e>>>0)+(t>>>0)+(r>>>0)+(i>>>0)+(a>>>0),ev=(e,t,r,i,a,n)=>t+r+i+a+n+(e/0x100000000|0)|0;class ek extends en{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,r,i){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=i,this.buffer=new Uint8Array(e),this.view=et(this.buffer)}update(e){Q(this),J(e=er(e));let{view:t,buffer:r,blockLen:i}=this,a=e.length;for(let n=0;n<a;){let s=Math.min(i-this.pos,a-n);if(s===i){let t=et(e);for(;i<=a-n;n+=i)this.process(t,n);continue}r.set(e.subarray(n,n+s),this.pos),this.pos+=s,n+=s,this.pos===i&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Q(this);J(e);let t=this.outputLen;if(e.length<t)throw Error(`digestInto() expects output buffer of length at least ${t}`);this.finished=!0;let{buffer:r,view:i,blockLen:a,isLE:n}=this,{pos:s}=this;r[s++]=128,ee(this.buffer.subarray(s)),this.padOffset>a-s&&(this.process(i,0),s=0);for(let e=s;e<a;e++)r[e]=0;(function(e,t,r,i){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,r,i);let a=BigInt(32),n=BigInt(0xffffffff),s=Number(r>>a&n),o=Number(r&n),c=4*!!i,l=4*!i;e.setUint32(t+c,s,i),e.setUint32(t+l,o,i)})(i,a-8,BigInt(8*this.length),n),this.process(i,0);let o=et(e),c=this.outputLen;if(c%4!=0)throw Error("_sha2: outputLen should be aligned to 32bit");let l=c/4,d=this.get();if(l>d.length)throw Error("_sha2: outputLen bigger than state");for(let e=0;e<l;e++)o.setUint32(4*e,d[e],n)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){(e||=new this.constructor).set(...this.get());let{blockLen:t,buffer:r,length:i,finished:a,destroyed:n,pos:s}=this;return e.destroyed=n,e.finished=a,e.length=i,e.pos=s,i%t!=0&&e.buffer.set(r),e}clone(){return this._cloneInto()}}let eS=Uint32Array.from([0x6a09e667,0xbb67ae85,0x3c6ef372,0xa54ff53a,0x510e527f,0x9b05688c,0x1f83d9ab,0x5be0cd19]),ex=Uint32Array.from([0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2]),eP=new Uint32Array(64);class eE extends ek{A=0|eS[0];B=0|eS[1];C=0|eS[2];D=0|eS[3];E=0|eS[4];F=0|eS[5];G=0|eS[6];H=0|eS[7];constructor(e=32){super(64,e,8,!1)}get(){let{A:e,B:t,C:r,D:i,E:a,F:n,G:s,H:o}=this;return[e,t,r,i,a,n,s,o]}set(e,t,r,i,a,n,s,o){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|i,this.E=0|a,this.F=0|n,this.G=0|s,this.H=0|o}process(e,t){var r,i,a,n,s,o,c,l,d;for(let r=0;r<16;r++,t+=4)eP[r]=e.getUint32(t);for(let e=16;e<64;e++){let t=eP[e-15],r=eP[e-2],i=N(t,7)^N(t,18)^t>>>3,a=N(r,17)^N(r,19)^r>>>10;eP[e]=_(_(i,eP[e-7]),_(a,eP[e-16]))}let{A:h,B:u,C:f,D:p,E:b,F:g,G:m,H:y}=this;for(let e=0;e<64;e++){let t=(a=y,n=N(r=b,6)^N(r,11)^N(r,25),s=(i=b)&g^~i&m,a+n+s+ex[e]+eP[e]>>>0),w=_(N(o=h,2)^N(o,13)^N(o,22),(c=h)&(l=u)^c&(d=f)^l&d);y=m,m=g,g=b,b=_(p,t),p=f,f=u,u=h,h=_(t,w)}this.A=_(this.A,h),this.B=_(this.B,u),this.C=_(this.C,f),this.D=_(this.D,p),this.E=_(this.E,b),this.F=_(this.F,g),this.G=_(this.G,m),this.H=_(this.H,y)}roundClean(){ee(eP)}destroy(){ee(this.buffer),this.set(0,0,0,0,0,0,0,0)}}let eN=es(()=>new eE),eO=Uint32Array.from([0x6a09e667,0xf3bcc908,0xbb67ae85,0x84caa73b,0x3c6ef372,0xfe94f82b,0xa54ff53a,0x5f1d36f1,0x510e527f,0xade682d1,0x9b05688c,0x2b3e6c1f,0x1f83d9ab,0xfb41bd6b,0x5be0cd19,0x137e2179]),e_=function(e,t=!1){let r=e.length,i=new Uint32Array(r),a=new Uint32Array(r);for(let n=0;n<r;n++){let{h:r,l:s}=function(e,t=!1){return t?{h:Number(e&eo),l:Number(e>>ec&eo)}:{h:0|Number(e>>ec&eo),l:0|Number(e&eo)}}(e[n],t);i[n]=r,a[n]=s}return[i,a]}(["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(e=>BigInt(e))),eA=e_[0],eT=e_[1],eC=new Uint32Array(80),eV=new Uint32Array(80);class eR extends ek{Ah=0|eO[0];Al=0|eO[1];Bh=0|eO[2];Bl=0|eO[3];Ch=0|eO[4];Cl=0|eO[5];Dh=0|eO[6];Dl=0|eO[7];Eh=0|eO[8];El=0|eO[9];Fh=0|eO[10];Fl=0|eO[11];Gh=0|eO[12];Gl=0|eO[13];Hh=0|eO[14];Hl=0|eO[15];constructor(e=64){super(128,e,16,!1)}get(){let{Ah:e,Al:t,Bh:r,Bl:i,Ch:a,Cl:n,Dh:s,Dl:o,Eh:c,El:l,Fh:d,Fl:h,Gh:u,Gl:f,Hh:p,Hl:b}=this;return[e,t,r,i,a,n,s,o,c,l,d,h,u,f,p,b]}set(e,t,r,i,a,n,s,o,c,l,d,h,u,f,p,b){this.Ah=0|e,this.Al=0|t,this.Bh=0|r,this.Bl=0|i,this.Ch=0|a,this.Cl=0|n,this.Dh=0|s,this.Dl=0|o,this.Eh=0|c,this.El=0|l,this.Fh=0|d,this.Fl=0|h,this.Gh=0|u,this.Gl=0|f,this.Hh=0|p,this.Hl=0|b}process(e,t){for(let r=0;r<16;r++,t+=4)eC[r]=e.getUint32(t),eV[r]=e.getUint32(t+=4);for(let e=16;e<80;e++){let t=0|eC[e-15],r=0|eV[e-15],i=eh(t,r,1)^eh(t,r,8)^el(t,r,7),a=eu(t,r,1)^eu(t,r,8)^ed(t,r,7),n=0|eC[e-2],s=0|eV[e-2],o=eh(n,s,19)^ef(n,s,61)^el(n,s,6),c=ey(a,eu(n,s,19)^ep(n,s,61)^ed(n,s,6),eV[e-7],eV[e-16]),l=ew(c,i,o,eC[e-7],eC[e-16]);eC[e]=0|l,eV[e]=0|c}let{Ah:r,Al:i,Bh:a,Bl:n,Ch:s,Cl:o,Dh:c,Dl:l,Eh:d,El:h,Fh:u,Fl:f,Gh:p,Gl:b,Hh:g,Hl:m}=this;for(let e=0;e<80;e++){let t=eh(d,h,14)^eh(d,h,18)^ef(d,h,41),y=eu(d,h,14)^eu(d,h,18)^ep(d,h,41),w=d&u^~d&p,I=eI(m,y,h&f^~h&b,eT[e],eV[e]),v=ev(I,g,t,w,eA[e],eC[e]),k=0|I,S=eh(r,i,28)^ef(r,i,34)^ef(r,i,39),x=eu(r,i,28)^ep(r,i,34)^ep(r,i,39),P=r&a^r&s^a&s,E=i&n^i&o^n&o;g=0|p,m=0|b,p=0|u,b=0|f,u=0|d,f=0|h,({h:d,l:h}=eb(0|c,0|l,0|v,0|k)),c=0|s,l=0|o,s=0|a,o=0|n,a=0|r,n=0|i;let N=eg(x,E,k);r=em(N,S,P,v),i=0|N}({h:r,l:i}=eb(r,i,this.Ah,this.Al)),({h:a,l:n}=eb(a,n,this.Bh,this.Bl)),({h:s,l:o}=eb(s,o,this.Ch,this.Cl)),({h:c,l:l}=eb(c,l,this.Dh,this.Dl)),({h:d,l:h}=eb(d,h,this.Eh,this.El)),({h:u,l:f}=eb(u,f,this.Fh,this.Fl)),({h:p,l:b}=eb(p,b,this.Gh,this.Gl)),({h:g,l:m}=eb(g,m,this.Hh,this.Hl)),this.set(r,i,a,n,s,o,c,l,d,h,u,f,p,b,g,m)}roundClean(){ee(eC,eV)}destroy(){ee(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}let eU=es(()=>new eR);class eD extends en{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(e,t){super(),Z(e);let r=er(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,a=new Uint8Array(i);a.set(r.length>i?e.create().update(r).digest():r);for(let e=0;e<a.length;e++)a[e]^=54;this.iHash.update(a),this.oHash=e.create();for(let e=0;e<a.length;e++)a[e]^=106;this.oHash.update(a),ee(a)}update(e){return Q(this),this.iHash.update(e),this}digestInto(e){Q(this),J(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:r,finished:i,destroyed:a,blockLen:n,outputLen:s}=this;return e.finished=i,e.destroyed=a,e.blockLen=n,e.outputLen=s,e.oHash=t._cloneInto(e.oHash??void 0),e.iHash=r._cloneInto(e.iHash??void 0),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}let eB=(e,t,r)=>new eD(e,t).update(r).digest();function eL(e,t,r,i,a="sha512"){if("sha512"!==a)throw Error("Only sha512 is supported in this PBKDF2 implementation");try{let n=require("crypto");if("function"==typeof n.pbkdf2Sync){let s=Buffer.from(e),o=Buffer.from(t);return[...n.pbkdf2Sync(s,o,r,i,a)]}}catch{}return Array.from(function(e,t,r,i){let a;Z(e);let{c:n,dkLen:s}=Object.assign({dkLen:32},i);if(Y(n),Y(s),n<1)throw Error("iterations (c) should be >= 1");let o=ea(t),c=ea(r),l=new Uint8Array(s),d=eB.create(e,o),h=d._cloneInto().update(c),u=new Uint8Array(4),f=et(u),p=new Uint8Array(d.outputLen);for(let e=1,t=0;t<s;e++,t+=d.outputLen){let r=l.subarray(t,t+d.outputLen);f.setInt32(0,e,!1),(a=h._cloneInto(a)).update(u).digestInto(p),r.set(p.subarray(0,r.length));for(let e=1;e<n;e++){d._cloneInto(a).update(p).digestInto(p);for(let e=0;e<r.length;e++)r[e]^=p[e]}}return d.destroy(),h.destroy(),null!=a&&a.destroy(),ee(p),l}(eU,Uint8Array.from(e),Uint8Array.from(t),{c:r,dkLen:i}))}eB.create=(e,t)=>new eD(e,t);let eH=e=>e.length%2==1?"0"+e:e,eK=e=>{let t="";for(let r of e)t+=eH(r.toString(16));return t},eF=(e,t)=>{if(Array.isArray(e))return e.slice();if(void 0===e)return[];if("string"!=typeof e)return Array.from(e,e=>0|e);switch(t){case"hex":return eq(e);case"base64":return eM(e);default:return function(e){let t=[];for(let r=0;r<e.length;r++){let i=e.codePointAt(r);if(void 0===i)throw Error(`Index out of range: ${r}`);let a=i;a>65535?r++:a>=55296&&a<=57343&&(a=65533),a<=127?t.push(a):a<=2047?t.push(192|a>>6,128|63&a):a<=65535?t.push(224|a>>12,128|a>>6&63,128|63&a):t.push(240|a>>18,128|a>>12&63,128|a>>6&63,128|63&a)}return t}(e)}},eq=e=>{(e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e);let t=[];for(let r=0;r<e.length;r+=2)t.push(parseInt(e[r]+e[r+1],16));return t},eM=e=>{let t=[],r=0,i=0;for(let a of e.replace(/=+$/,""))r=r<<6|"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a),(i+=6)>=8&&(i-=8,t.push(r>>i&255),r&=(1<<i)-1);return t},e$=e=>{let t="",r=0;for(let i=0;i<e.length;i++){let a=e[i];if(r>0){r--;continue}if(a<=127)t+=String.fromCharCode(a);else if(a>=192&&a<=223)r=1,t+=String.fromCharCode((31&a)<<6|63&e[i+1]);else if(a>=224&&a<=239){let n=e[i+1];r=2,t+=String.fromCharCode((15&a)<<12|(63&n)<<6|63&e[i+2])}else if(a>=240&&a<=247){let n=e[i+1],s=e[i+2],o=e[i+3];r=3;let c=(7&a)<<18|(63&n)<<12|(63&s)<<6|63&o;t+=String.fromCharCode(55296+(c-65536>>10),56320+(c-65536&1023))}}return t},ez=(e,t)=>{switch(t){case"hex":return eK(e);case"utf8":return e$(e);default:return e}};function eW(e){let t,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i="";for(t=0;t<e.length;t+=3){let a=e[t],n=t+1<e.length?e[t+1]:0,s=t+2<e.length?e[t+2]:0,o=a>>2,c=(3&a)<<4|n>>4,l=(15&n)<<2|s>>6,d=63&s;i+=r.charAt(o)+r.charAt(c),i+=t+1<e.length?r.charAt(l):"=",i+=t+2<e.length?r.charAt(d):"="}return i}let ej="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",eG=e=>{if(""===e||"string"!=typeof e)throw Error(`Expected base58 string but got “${e}”`);let t=e.match(/[IOl0]/gmu);if(null!==t)throw Error(`Invalid base58 character “${t.join("")}”`);let r=e.match(/^1+/gmu),i=null!==r?r[0].length:0,a=(e.length-i)*(Math.log(58)/Math.log(256))+1>>>0;return[...new Uint8Array([...new Uint8Array(i),...(e.match(/./gmu)??[]).map(e=>ej.indexOf(e)).reduce((e,t)=>e=e.map(e=>{let r=58*e+t;return t=r>>8,r}),new Uint8Array(a)).reverse().filter((e=>t=>e=e||t)(!1))])]},eX=e=>{let t=Array(256).fill(-1);for(let e=0;e<ej.length;++e)t[ej.charCodeAt(e)]=e;let r=[];for(let i of e){let e=i;for(let i=0;i<r.length;++i){let a=(t[r[i]]<<8)+e;r[i]=ej.charCodeAt(a%58),e=a/58|0}for(;0!==e;)r.push(ej.charCodeAt(e%58)),e=e/58|0}for(let t of e)if(0!==t)break;else r.push(49);return r.reverse(),String.fromCharCode(...r)},eY=(e,t=[0])=>{let r=W([...t,...e]);return eX(r=[...t,...e,...r.slice(0,4)])},eJ=(e,t,r=1)=>{let i=eG(e),a=i.slice(0,r),n=i.slice(r,-4),s=[...a,...n];return s=W(s),i.slice(-4).forEach((e,t)=>{if(e!==s[t])throw Error("Invalid checksum")}),"hex"===t&&(a=eK(a),n=eK(n)),{prefix:a,data:n}};class eZ{bufs;length;constructor(e){for(let t of(this.bufs=void 0!==e?e:[],this.length=0,this.bufs))this.length+=t.length}getLength(){return this.length}toArray(){let e=Array(this.length),t=0;for(let r of this.bufs)for(let i of r)e[t++]=i;return e}write(e){return this.bufs.push(e),this.length+=e.length,this}writeReverse(e){let t=Array(e.length);for(let r=0;r<t.length;r++)t[r]=e[e.length-1-r];return this.bufs.push(t),this.length+=t.length,this}writeUInt8(e){let t=[,];return t[0]=e,this.write(t),this}writeInt8(e){let t=[,];return t[0]=255&e,this.write(t),this}writeUInt16BE(e){return this.bufs.push([e>>8&255,255&e]),this.length+=2,this}writeInt16BE(e){return this.writeUInt16BE(65535&e)}writeUInt16LE(e){return this.bufs.push([255&e,e>>8&255]),this.length+=2,this}writeInt16LE(e){return this.writeUInt16LE(65535&e)}writeUInt32BE(e){return this.bufs.push([e>>24&255,e>>16&255,e>>8&255,255&e]),this.length+=4,this}writeInt32BE(e){return this.writeUInt32BE(e>>>0)}writeUInt32LE(e){return this.bufs.push([255&e,e>>8&255,e>>16&255,e>>24&255]),this.length+=4,this}writeInt32LE(e){return this.writeUInt32LE(e>>>0)}writeUInt64BEBn(e){let t=e.toArray("be",8);return this.write(t),this}writeUInt64LEBn(e){let t=e.toArray("be",8);return this.writeReverse(t),this}writeUInt64LE(e){let t=new p(e).toArray("be",8);return this.writeReverse(t),this}writeVarIntNum(e){let t=eZ.varIntNum(e);return this.write(t),this}writeVarIntBn(e){let t=eZ.varIntBn(e);return this.write(t),this}static varIntNum(e){let t;if(e<0)return this.varIntBn(new p(e));if(e<253)t=[e];else if(e<65536)t=[253,255&e,e>>8&255];else if(e<0x100000000)t=[254,255&e,e>>8&255,e>>16&255,e>>24&255];else{let r=0|e,i=0|Math.floor(e/0x100000000);t=[255,255&r,r>>8&255,r>>16&255,r>>24&255,255&i,i>>8&255,i>>16&255,i>>24&255]}return t}static varIntBn(e){let t;if(e.isNeg()&&(e=e.add(e2)),e.ltn(253))t=[e.toNumber()];else if(e.ltn(65536)){let r=e.toNumber();t=[253,255&r,r>>8&255]}else if(e.lt(new p(0x100000000))){let r=e.toNumber();t=[254,255&r,r>>8&255,r>>16&255,r>>24&255]}else{let r=new eZ;r.writeUInt8(255),r.writeUInt64LEBn(e),t=r.toArray()}return t}}class eQ{bin;pos;length;constructor(e=[],t=0){this.bin=e,this.pos=t,this.length=e.length}eof(){return this.pos>=this.length}read(e=this.length){let t=this.pos,r=this.pos+e;return this.pos=r,this.bin.slice(t,r)}readReverse(e=this.length){let t=Array(e);for(let r=0;r<e;r++)t[r]=this.bin[this.pos+e-1-r];return this.pos+=e,t}readUInt8(){let e=this.bin[this.pos];return this.pos+=1,e}readInt8(){let e=this.bin[this.pos];return this.pos+=1,(128&e)!=0?e-256:e}readUInt16BE(){let e=this.bin[this.pos]<<8|this.bin[this.pos+1];return this.pos+=2,e}readInt16BE(){let e=this.readUInt16BE();return(32768&e)!=0?e-65536:e}readUInt16LE(){let e=this.bin[this.pos]|this.bin[this.pos+1]<<8;return this.pos+=2,e}readInt16LE(){let e=this.readUInt16LE();return(32768&e)!=0?e-65536:e}readUInt32BE(){let e=0x1000000*this.bin[this.pos]+(this.bin[this.pos+1]<<16|this.bin[this.pos+2]<<8|this.bin[this.pos+3]);return this.pos+=4,e}readInt32BE(){let e=this.readUInt32BE();return(0x80000000&e)!=0?e-0x100000000:e}readUInt32LE(){let e=(this.bin[this.pos]|this.bin[this.pos+1]<<8|this.bin[this.pos+2]<<16|this.bin[this.pos+3]<<24)>>>0;return this.pos+=4,e}readInt32LE(){let e=this.readUInt32LE();return(0x80000000&e)!=0?e-0x100000000:e}readUInt64BEBn(){let e=new p(this.bin.slice(this.pos,this.pos+8));return this.pos=this.pos+8,e}readUInt64LEBn(){return new p(this.readReverse(8))}readInt64LEBn(){let e=new p(this.readReverse(8));return e.gte(e1)&&(e=e.sub(e2)),e}readVarIntNum(e=!0){let t,r=this.readUInt8();switch(r){case 253:return this.readUInt16LE();case 254:return this.readUInt32LE();case 255:if((t=e?this.readInt64LEBn():this.readUInt64LEBn()).lte(new p(2).pow(new p(53))))return t.toNumber();throw Error("number too large to retain precision - use readVarIntBn");default:return r}}readVarInt(){switch(this.bin[this.pos]){case 253:return this.read(3);case 254:return this.read(5);case 255:return this.read(9);default:return this.read(1)}}readVarIntBn(){let e=this.readUInt8();switch(e){case 253:return new p(this.readUInt16LE());case 254:return new p(this.readUInt32LE());case 255:return this.readUInt64LEBn();default:return new p(e)}}}let e0=e=>{if(0===e.length)return e;let t=e[e.length-1];if((127&t)!=0)return e;if(1===e.length)return[];if((128&e[e.length-2])!=0)return e;for(let r=e.length-1;r>0;r--)if(0!==e[r-1])if((128&e[r-1])!=0)return e[r]=t,e.slice(0,r+1);else return e[r-1]|=t,e.slice(0,r);return[]},e1=new p(2).pow(new p(63)),e2=new p(2).pow(new p(64)),e8=(1n<<256n)-1n;function e3(e){let t=e>>256n;return t=(e=(e&e8)+(t<<32n)+977n*t)>>256n,(e=(e&e8)+(t<<32n)+977n*t)>=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn&&(e-=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn),e}let e6=e=>e3((e%0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn+0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn)%0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn),e4=(e,t)=>e>=t?e-t:0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn-(t-e),e5=(e,t)=>e3(e*t),e7=e=>{let t=1n,r=0n,i=e6(e),a=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn;for(;i>1n;){let e=a/i;[t,r]=[r-t*e,t],[i,a]=[a-i*e,i]}return e6(t)},e9=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn+1n>>2n,te=BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),tt=BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"),tr=new Map,ti=e=>{let{X:t,Y:r,Z:i}=e;if(0n===r)return{X:0n,Y:1n,Z:0n};let a=e5(r,r),n=e5(4n,e5(t,a)),s=e5(3n,e5(t,t)),o=e4(e5(s,s),e5(2n,n)),c=e4(e5(s,e4(n,o)),e5(8n,e5(a,a)));return{X:o,Y:c,Z:e5(2n,e5(r,i))}},ta=(e,t)=>{if(0n===e.Z)return t;if(0n===t.Z)return e;let r=e5(e.Z,e.Z),i=e5(t.Z,t.Z),a=e5(e.X,i),n=e5(t.X,r),s=e5(e.Y,e5(i,t.Z)),o=e5(t.Y,e5(r,e.Z)),c=e4(n,a),l=e4(o,s);if(0n===c)return 0n===l?ti(e):{X:0n,Y:1n,Z:0n};let d=e5(c,c),h=e5(c,d),u=e5(a,d),f=e4(e4(e5(l,l),h),e5(2n,u)),p=e4(e5(l,e4(u,f)),e5(s,h));return{X:f,Y:p,Z:e5(c,e5(e.Z,t.Z))}},tn=e=>0n===e.Z?e:{X:e.X,Y:0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn-e.Y,Z:e.Z},ts=(e,t,r=5)=>{let i,a=`${r}:${t.x.toString(16)}:${t.y.toString(16)}`,n=tr.get(a);if(void 0===n){let e=1<<r-1;n=Array(e),i={X:t.x,Y:t.y,Z:1n},n[0]=i;let s=ti(i);for(let t=1;t<e;t++)n[t]=ta(n[t-1],s);tr.set(a,n)}else i=n[0];let s=[],o=1n<<BigInt(r),c=o>>1n,l=e;for(;l>0n;)if((1n&l)===0n)s.push(0),l>>=1n;else{let e=l&o-1n;e>c&&(e-=o),s.push(Number(e)),l-=e,l>>=1n}let d={X:0n,Y:1n,Z:0n};for(let e=s.length-1;e>=0;e--){d=ti(d);let t=s[e];if(0!==t){let e=Math.abs(t)>>1;d=ta(d,t>0?n[e]:tn(n[e]))}}return d},to=e=>{let t=e%0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n;return t<0n&&(t+=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n),t},tc=(e,t)=>to(e*t),tl=e=>{let t=1n,r=0n,i=to(e),a=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n;for(;i>1n;){let e=a/i;[t,r]=[r-t*e,t],[i,a]=[a-i*e,i]}return to(t)};class td extends w{x;y;inf;static fromDER(e){if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==64){if(6===e[0]){if(e[e.length-1]%2!=0)throw Error("Point string value is wrong length")}else if(7===e[0]&&e[e.length-1]%2!=1)throw Error("Point string value is wrong length");return new td(e.slice(1,33),e.slice(33,65))}if((2===e[0]||3===e[0])&&e.length-1==32)return td.fromX(e.slice(1,33),3===e[0]);throw Error("Unknown point format")}static fromString(e){let t=eF(e,"hex");return td.fromDER(t)}static fromX(e,t){let r,i=p.isBN(e)?BigInt("0x"+e.toString(16)):"string"==typeof e?BigInt("0x"+e):Array.isArray(e)?BigInt("0x"+eK(e)):BigInt(e),a=(e=>{let t=((e,t)=>{let r=1n;e=e6(e);let i=t;for(;i>0n;)(1n&i)===1n&&(r=e5(r,e)),e=e5(e,e),i>>=1n;return r})(e,e9);return e5(t,t)===e6(e)?t:null})(e3(e5(e5(r=i=e6(i),r),i)+7n));if(null===a)throw Error("Invalid point");let n=a;return(1n&n)!==(t?1n:0n)&&(n=e4(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,n)),new td(new p(i.toString(16),16),new p(n.toString(16),16))}static fromJSON(e,t){"string"==typeof e&&(e=JSON.parse(e));let r=new td(e[0],e[1],t);if("object"!=typeof e[2])return r;let i=e=>new td(e[0],e[1],t),a=e[2];return r.precomputed={beta:null,doubles:"object"==typeof a.doubles&&null!==a.doubles?{step:a.doubles.step,points:[r].concat(a.doubles.points.map(i))}:void 0,naf:"object"==typeof a.naf&&null!==a.naf?{wnd:a.naf.wnd,points:[r].concat(a.naf.points.map(i))}:void 0},r}constructor(e,t,r=!0){super("affine"),this.precomputed=null,null===e&&null===t?(this.x=null,this.y=null,this.inf=!0):(p.isBN(e)||(e=new p(e,16)),this.x=e,p.isBN(t)||(t=new p(t,16)),this.y=t,r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),null===this.x.red&&(this.x=this.x.toRed(this.curve.red)),null===this.y.red&&(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}validate(){return this.curve.validate(this)}encode(e=!0,t){let r,i=this.curve.p.byteLength(),a=this.getX().toArray("be",i);return(r=e?[this.getY().isEven()?2:3].concat(a):[4].concat(a,this.getY().toArray("be",i)),"hex"!==t)?r:eK(r)}toString(){return this.encode(!0,"hex")}toJSON(){return null==this.precomputed?[this.x,this.y]:[this.x,this.y,"object"==typeof this.precomputed&&null!==this.precomputed?{doubles:null!=this.precomputed.doubles?{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)}:void 0,naf:null!=this.precomputed.naf?{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}:void 0}:void 0]}inspect(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+(this.x?.fromRed()?.toString(16,2)??"undefined")+" y: "+(this.y?.fromRed()?.toString(16,2)??"undefined")+">"}isInfinity(){return this.inf}add(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e)||this.x?.cmp(e.x??new p(0))===0)return new td(null,null);let t=ta({X:BigInt("0x"+this.x.fromRed().toString(16)),Y:BigInt("0x"+this.y.fromRed().toString(16)),Z:1n},{X:BigInt("0x"+e.x.fromRed().toString(16)),Y:BigInt("0x"+e.y.fromRed().toString(16)),Z:1n});if(0n===t.Z)return new td(null,null);let r=e7(t.Z),i=e5(r,r),a=e5(t.X,i),n=e5(t.Y,e5(i,r));return new td(a.toString(16),n.toString(16))}dbl(){if(this.inf)return this;if(null===this.x||null===this.y)throw Error("Point coordinates cannot be null");let e=BigInt("0x"+this.x.fromRed().toString(16)),t=BigInt("0x"+this.y.fromRed().toString(16));if(0n===t)return new td(null,null);let r=ti({X:e,Y:t,Z:1n}),i=e7(r.Z),a=e5(i,i),n=e5(r.X,a),s=e5(r.Y,e5(a,i));return new td(n.toString(16),s.toString(16))}getX(){return(this.x??new p(0)).fromRed()}getY(){return(this.y??new p(0)).fromRed()}mul(e){let t,r;if(p.isBN(e)||(e=new p(e,16)),this.inf)return this;let i=BigInt("0x"+e.toString(16)),a=i<0n;if(a&&(i=-i),0n===(i=e6(i)))return new td(null,null);if(null===this.x||null===this.y)throw Error("Point coordinates cannot be null");this===this.curve.g?(t=te,r=tt):(t=BigInt("0x"+this.x.fromRed().toString(16)),r=BigInt("0x"+this.y.fromRed().toString(16)));let n=ts(i,{x:t,y:r});if(0n===n.Z)return new td(null,null);let s=e7(n.Z),o=e5(s,s),c=e5(n.X,o),l=e5(n.Y,e5(o,s)),d=new td(new p(c.toString(16),16),new p(l.toString(16),16));return a?d.neg():d}mulAdd(e,t,r){return this._endoWnafMulAdd([this,t],[e,r])}jmulAdd(e,t,r){return this._endoWnafMulAdd([this,t],[e,r],!0)}eq(e){return this===e||this.inf===e.inf&&(this.inf||0===(this.x??new p(0)).cmp(e.x??new p(0))&&0===(this.y??new p(0)).cmp(e.y??new p(0)))}neg(e){if(this.inf)return this;let t=new td(this.x,(this.y??new p(0)).redNeg());if(!0===e&&null!=this.precomputed){let e=this.precomputed;t.precomputed={naf:null!=e.naf?{wnd:e.naf.wnd,points:e.naf.points.map(e=>e.neg())}:void 0,doubles:null!=e.doubles?{step:e.doubles.step,points:e.doubles.points.map(e=>e.neg())}:void 0,beta:void 0}}return t}dblp(e){let t=this;for(let r=0;r<e;r++)t=t.dbl();return t}toJ(){return this.inf?new I(null,null,null):new I(this.x,this.y,this.curve.one)}_getBeta(){if("object"!=typeof this.curve.endo)return;let e=this.precomputed;if("object"==typeof e&&null!==e&&"object"==typeof e.beta&&null!==e.beta)return e.beta;let t=new td((this.x??new p(0)).redMul(this.curve.endo.beta),this.y);if(null!=e){let r=this.curve,i=e=>{if(null===e.x)throw Error("p.x is null");if(void 0===r.endo||null===r.endo)throw Error("curve.endo is undefined");return new td(e.x.redMul(r.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:null!=e.naf?{wnd:e.naf.wnd,points:e.naf.points.map(i)}:void 0,doubles:null!=e.doubles?{step:e.doubles.step,points:e.doubles.points.map(i)}:void 0}}return t}_fixedNafMul(e){if("object"!=typeof this.precomputed||null===this.precomputed)throw Error("_fixedNafMul requires precomputed values for the point");let t=this._getDoubles(),r=this.curve.getNAF(e,1,this.curve._bitLength),i=(1<<t.step+1)-(t.step%2==0?2:1);i/=3;let a=[];for(let e=0;e<r.length;e+=t.step){let i=0;for(let a=e+t.step-1;a>=e;a--)i=(i<<1)+r[a];a.push(i)}let n=new I(null,null,null),s=new I(null,null,null);for(let e=i;e>0;e--){for(let r=0;r<a.length;r++){let i=a[r];i===e?s=s.mixedAdd(t.points[r]):i===-e&&(s=s.mixedAdd(t.points[r].neg()))}n=n.add(s)}return n.toP()}_wnafMulAdd(e,t,r,i,a){let n=this.curve._wnafT1.map(e=>e.toNumber()),s=this.curve._wnafT2.map(()=>[]),o=this.curve._wnafT3.map(()=>[]),c=0;for(let r=0;r<i;r++){let i=t[r]._getNAFPoints(e);n[r]=i.wnd,s[r]=i.points}for(let e=i-1;e>=1;e-=2){let i=e-1,a=e;if(1!==n[i]||1!==n[a]){o[i]=this.curve.getNAF(r[i],n[i],this.curve._bitLength),o[a]=this.curve.getNAF(r[a],n[a],this.curve._bitLength),c=Math.max(o[i].length,c),c=Math.max(o[a].length,c);continue}let l=[t[i],null,null,t[a]];0===(t[i].y??new p(0)).cmp(t[a].y??new p(0))?(l[1]=t[i].add(t[a]),l[2]=t[i].toJ().mixedAdd(t[a].neg())):0===(t[i].y??new p(0)).cmp((t[a].y??new p(0)).redNeg())?(l[1]=t[i].toJ().mixedAdd(t[a]),l[2]=t[i].add(t[a].neg())):(l[1]=t[i].toJ().mixedAdd(t[a]),l[2]=t[i].toJ().mixedAdd(t[a].neg()));let d=[-3,-1,-5,-7,0,7,5,1,3],h=this.curve.getJSF(r[i],r[a]);c=Math.max(h[0].length,c),o[i]=Array(c),o[a]=Array(c);for(let e=0;e<c;e++){let t=0|h[0][e],r=0|h[1][e];o[i][e]=d[(t+1)*3+(r+1)],o[a][e]=0,s[i]=l}}let l=new I(null,null,null),d=this.curve._wnafT4;for(let e=c;e>=0;e--){let t=0;for(;e>=0;){let r=!0;for(let t=0;t<i;t++)d[t]=new p("number"==typeof o[t][e]?o[t][e]:0),d[t].isZero()||(r=!1);if(!r)break;t++,e--}if(e>=0&&t++,l=l.dblp(t),e<0)break;let r=new p(1),a=new p(2);for(let e=0;e<i;e++){let t,i=d[e];0!==i.cmpn(0)&&(l="affine"===(t=i.isNeg()?s[e][i.neg().sub(r).div(a).toNumber()].neg():s[e][i.sub(r).div(a).toNumber()]).type?l.mixedAdd(t):l.add(t))}}for(let e=0;e<i;e++)s[e]=[];return!0===a?l:l.toP()}_endoWnafMulAdd(e,t,r){let i,a=Array(2*e.length),n=Array(2*e.length);for(i=0;i<e.length;i++){let r=this.curve._endoSplit(t[i]),s=e[i],o=s._getBeta()??new td(null,null);0!==r.k1.negative&&(r.k1.ineg(),s=s.neg(!0)),0!==r.k2.negative&&(r.k2.ineg(),o=o.neg(!0)),a[2*i]=s,a[2*i+1]=o,n[2*i]=r.k1,n[2*i+1]=r.k2}let s=this._wnafMulAdd(1,a,n,2*i,r);for(let e=0;e<2*i;e++)a[e]=null,n[e]=null;return s}_hasDoubles(e){if(null==this.precomputed)return!1;let t=this.precomputed.doubles;return"object"==typeof t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)}_getDoubles(e,t){if("object"==typeof this.precomputed&&null!==this.precomputed&&"object"==typeof this.precomputed.doubles&&null!==this.precomputed.doubles)return this.precomputed.doubles;let r=[this],i=this;for(let a=0;a<(t??0);a+=e??1){for(let t=0;t<(e??1);t++)i=i.dbl();r.push(i)}return{step:e??1,points:r}}_getNAFPoints(e){if("object"==typeof this.precomputed&&null!==this.precomputed&&"object"==typeof this.precomputed.naf&&null!==this.precomputed.naf)return this.precomputed.naf;let t=[this],r=(1<<e)-1,i=1===r?null:this.dbl();for(let e=1;e<r;e++)null!==i&&(t[e]=t[e-1].add(i));return{wnd:e,points:t}}}class th{p;red;redN;zero;one;two;g;n;a;b;tinv;zeroA;threeA;endo;_endoWnafT1;_endoWnafT2;_wnafT1;_wnafT2;_wnafT3;_wnafT4;_bitLength;static assert(e,t="Elliptic curve assertion failed"){if(!e)throw Error(t)}getNAF(e,t,r){let i=Array(Math.max(e.bitLength(),r)+1);i.fill(0);let a=1<<t+1,n=e.clone();for(let e=0;e<i.length;e++){let t,r=n.andln(a-1);n.isOdd()?(t=r>(a>>1)-1?(a>>1)-r:r,n.isubn(t)):t=0,i[e]=t,n.iushrn(1)}return i}getJSF(e,t){let r=[[],[]];e=e.clone(),t=t.clone();let i=0,a=0;for(;e.cmpn(-i)>0||t.cmpn(-a)>0;){let n,s,o=e.andln(3)+i&3,c=t.andln(3)+a&3;if(3===o&&(o=-1),3===c&&(c=-1),(1&o)==0)n=0;else{let t=e.andln(7)+i&7;n=(3===t||5===t)&&2===c?-o:o}if(r[0].push(n),(1&c)==0)s=0;else{let e=t.andln(7)+a&7;s=(3===e||5===e)&&2===o?-c:c}r[1].push(s),2*i===n+1&&(i=1-i),2*a===s+1&&(a=1-a),e.iushrn(1),t.iushrn(1)}return r}static cachedProperty(e,t,r){let i="_"+t;e.prototype[t]=function(){return void 0!==this[i]?this[i]:this[i]=r.call(this)}}static parseBytes(e){return"string"==typeof e?eF(e,"hex"):e}static intFromLE(e){return new p(e,"hex","le")}constructor(){if(void 0!==e)return e;e=this;let t={prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",{doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}]};this.p=new p(t.p,16),this.red=new m(t.prime),this.zero=new p(0).toRed(this.red),this.one=new p(1).toRed(this.red),this.two=new p(2).toRed(this.red),this.n=new p(t.n,16),this.g=td.fromJSON(t.g,t.gRed),this._wnafT1=[,,,,],this._wnafT2=[,,,,],this._wnafT3=[,,,,],this._wnafT4=[,,,,],this._bitLength=this.n.bitLength(),this.redN=this.n.toRed(this.red),this.a=new p(t.a,16).toRed(this.red),this.b=new p(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=[,,,,],this._endoWnafT2=[,,,,]}_getEndomorphism(e){let t,r,i;if(this.zeroA&&1===this.p.modrn(3)){if(void 0!==e.beta)t=new p(e.beta,16).toRed(this.red);else{let e=this._getEndoRoots(this.p);if(null===e)throw Error("Failed to get endomorphism roots for beta.");t=(t=0>e[0].cmp(e[1])?e[0]:e[1]).toRed(this.red)}if(void 0!==e.lambda)r=new p(e.lambda,16);else{let e=this._getEndoRoots(this.n);if(null===e)throw Error("Failed to get endomorphism roots for lambda.");if(null==this.g)throw Error("Curve generator point (g) is not defined.");let i=this.g.mul(e[0])?.x,a=null!=this.g.x?this.g.x.redMul(t):void 0;if(null!=i&&null!=a&&0===i.cmp(a))r=e[0];else{if(r=e[1],null==this.g)throw Error("Curve generator point (g) is not defined.");let i=this.g.mul(r)?.x,a=null!=this.g.x?this.g.x.redMul(t):void 0;if(null==i||null==a)throw Error("Lambda computation failed: g.mul(lambda).x or g.x.redMul(beta) is undefined.");th.assert(0===i.cmp(a),"Lambda selection does not match computed beta.")}}return i="object"==typeof e.basis&&null!==e.basis?e.basis.map(function(e){return{a:new p(e.a,16),b:new p(e.b,16)}}):this._getEndoBasis(r),{beta:t,lambda:r,basis:i}}}_getEndoRoots(e){let t=e===this.p?this.red:new y(e),r=new p(2).toRed(t).redInvm(),i=r.redNeg(),a=new p(3).toRed(t).redNeg().redSqrt().redMul(r);return[i.redAdd(a).fromRed(),i.redSub(a).fromRed()]}_getEndoBasis(e){let t,r,i,a,n,s,o=this.n.ushrn(Math.floor(this.n.bitLength()/2)),c=e,l=this.n.clone(),d=new p(1),h=new p(0),u=new p(0),f=new p(1),b=new p(0),g=0,m=new p(0),y=new p(0);for(;0!==c.cmpn(0);){let e=l.div(c);m=l.sub(e.mul(c)),y=u.sub(e.mul(d));let n=f.sub(e.mul(h));if(void 0===i&&0>m.cmp(o))t=b.neg(),r=d,i=m.neg(),a=y;else if(void 0!==i&&2==++g)break;b=m,l=c,c=m,u=d,d=y,f=h,h=n}if(void 0===t||void 0===r||void 0===i||void 0===a)throw Error("Failed to compute Endo Basis values");n=m.neg(),s=y;let w=i.sqr().add(a.sqr());return n.sqr().add(s.sqr()).cmp(w)>=0&&(n=t,s=r),0!==i.negative&&(i=i.neg(),a=a.neg()),0!==n.negative&&(n=n.neg(),s=s.neg()),[{a:i,b:a},{a:n,b:s}]}_endoSplit(e){if(null==this.endo)throw Error("Endomorphism is not defined.");let t=this.endo.basis,r=t[0],i=t[1],a=i.b.mul(e).divRound(this.n),n=r.b.neg().mul(e).divRound(this.n),s=a.mul(r.a),o=n.mul(i.a),c=a.mul(r.b),l=n.mul(i.b);return{k1:e.sub(s).sub(o),k2:c.add(l).neg()}}validate(e){if(e.inf)return!0;let t=e.x,r=e.y;if(null===t||null===r)throw Error("Point coordinates cannot be null");let i=this.a.redMul(t),a=t.redSqr().redMul(t).redIAdd(i).redIAdd(this.b);return 0===r.redSqr().redISub(a).cmpn(0)}}class tu{r;s;static fromDER(e,t){let r=(e,t)=>{let r=e[t.place++];if((128&r)==0)return r;throw Error("Invalid DER entity length")};e=eF(e,t);let i=new class{place;constructor(){this.place=0}};if(48!==e[i.place++])throw Error("Signature DER must start with 0x30");if(r(e,i)+i.place!==e.length||2!==e[i.place++])throw Error("Signature DER invalid");let a=r(e,i),n=e.slice(i.place,a+i.place);if(i.place+=a,2!==e[i.place++])throw Error("Signature DER invalid");let s=r(e,i);if(e.length!==s+i.place)throw Error("Invalid R-length in signature DER");let o=e.slice(i.place,s+i.place);if(0===n[0])if((128&n[1])!=0)n=n.slice(1);else throw Error("Invalid R-value in signature DER");if(0===o[0])if((128&o[1])!=0)o=o.slice(1);else throw Error("Invalid S-value in signature DER");return new tu(new p(n),new p(o))}static fromCompact(e,t){if(65!==(e=eF(e,t)).length)throw Error("Invalid Compact Signature");let r=e[0];if(r<27||r>=35)throw Error("Invalid Compact Byte");return new tu(new p(e.slice(1,33)),new p(e.slice(33,65)))}constructor(e,t){this.r=e,this.s=t}verify(e,t,r){return tI(new p($(e,r),16),this,t)}toString(e){return this.toDER(e)}toDER(e){let t=(e,t)=>{if(t<128)e.push(t);else throw Error("len must be < 0x80")},r=e=>{let t=0,r=e.length-1;for(;0===e[t]&&(128&e[t+1])==0&&t<r;)t++;return 0===t?e:e.slice(t)},i=this.r.toArray(),a=this.s.toArray();for((128&i[0])!=0&&(i=[0].concat(i)),(128&a[0])!=0&&(a=[0].concat(a)),i=r(i),a=r(a);0===a[0]&&(128&a[1])==0;)a=a.slice(1);let n=[2];t(n,i.length),(n=n.concat(i)).push(2),t(n,a.length);let s=n.concat(a),o=[48];return(t(o,s.length),o=o.concat(s),"hex"===e)?eK(o):"base64"===e?eW(o):o}toCompact(e,t,r){if(e<0||e>3)throw Error("Invalid recovery param");if("boolean"!=typeof t)throw Error("Invalid compressed param");let i=27+e;t&&(i+=4);let a=[i];return(a=(a=a.concat(this.r.toArray("be",32))).concat(this.s.toArray("be",32)),"hex"===r)?eK(a):"base64"===r?eW(a):a}RecoverPublicKey(e,t){let r=this.r,i=this.s,a=new th,n=a.n,s=a.g,o=0!=e>>1?r.add(n):r,c=td.fromX(o,(1&e)!=0);if(!c.mul(n).isInfinity())throw Error("nR is not at infinity");let l=t.neg().umod(n),d=r.invm(n),h=d.mul(i).umod(n),u=d.mul(l).umod(n),f=new tv(s.mul(u).add(c.mul(h)));return f.validate(),f}CalculateRecoveryFactor(e,t){for(let r=0;r<4;r++){let i;try{i=this.RecoverPublicKey(r,t)}catch{continue}if(e.eq(i))return r}throw Error("Unable to find valid recovery factor")}}class tf{K;V;constructor(e,t){if(e=eF(e,"hex"),t=eF(t,"hex"),e.length<32)throw Error("Not enough entropy. Minimum is 256 bits");let r=e.concat(t);this.K=Array(32),this.V=Array(32);for(let e=0;e<32;e++)this.K[e]=0,this.V[e]=1;this.update(r)}hmac(){return new H(this.K)}update(e){let t=this.hmac().update(this.V).update([0]);void 0!==e&&(t=t.update(e)),this.K=t.digest(),this.V=this.hmac().update(this.V).digest(),void 0!==e&&(this.K=this.hmac().update(this.V).update([1]).update(e).digest(),this.V=this.hmac().update(this.V).digest())}generate(e){let t=[];for(;t.length<e;)this.V=this.hmac().update(this.V).digest(),t=t.concat(this.V);let r=t.slice(0,e);return this.update(),eK(r)}}function tp(e,t,r=new th){let i=8*e.byteLength()-r.n.bitLength();return(i>0&&e.iushrn(i),null===t&&e.cmp(r.n)>=0)?e.sub(r.n):e}let tb=new th,tg=tb.n.byteLength(),tm=tb.n.subn(1),ty=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n>>1n,tw=(e,t,r=!1,i)=>{let a=BigInt("0x"+(e=tp(e)).toString(16)),n=BigInt("0x"+t.toString(16)),s=new tf(t.toArray("be",tg),e.toArray("be",tg));for(let e=0;;e++){let t="function"==typeof i?i(e):p.isBN(i)?i:new p(s.generate(tg),16);if(null==t)throw Error("k is undefined");if(0>=(t=tp(t,!0)).cmpn(1)||t.cmp(tm)>=0){if(p.isBN(i))throw Error("Invalid fixed custom K value (must be >1 and <N‑1)");continue}let o=BigInt("0x"+t.toString(16)),c=ts(o,{x:te,y:tt});if(0n===c.Z){if(p.isBN(i))throw Error("Invalid fixed custom K value (k\xb7G at infinity)");continue}let l=e7(c.Z),d=e5(l,l),h=to(e5(c.X,d));if(0n===h){if(p.isBN(i))throw Error("Invalid fixed custom K value (r == 0)");continue}let u=tl(o),f=to(a+tc(h,n)),b=tc(u,f);if(0n===b){if(p.isBN(i))throw Error("Invalid fixed custom K value (s == 0)");continue}return r&&b>ty&&(b=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n-b),new tu(new p(h.toString(16),16),new p(b.toString(16),16))}},tI=(e,t,r)=>{let i=BigInt("0x"+e.toString(16));if(null==r.x||null==r.y)throw Error("Invalid public key: missing coordinates.");let a={x:BigInt("0x"+r.x.toString(16)),y:BigInt("0x"+r.y.toString(16))},{r:n,s}={r:BigInt("0x"+t.r.toString(16)),s:BigInt("0x"+t.s.toString(16))};if(n<=0n||n>=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n||s<=0n||s>=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n)return!1;let o=tl(s);if(0n===o)return!1;let c=tc(i,o),l=tc(n,o),d=ta(ts(c,{x:te,y:tt}),ts(l,a));if(0n===d.Z)return!1;let h=e7(d.Z),u=e5(h,h);return to(e5(d.X,u))===n};class tv extends td{static fromPrivateKey(e){let t=new th().g.mul(e);return new tv(t.x,t.y)}static fromString(e){let t=td.fromString(e);return new tv(t.x,t.y)}static fromDER(e){let t=td.fromDER(e);return new tv(t.x,t.y)}constructor(e,t=null,r=!0){if(e instanceof td)super(e.getX(),e.getY());else{if(null===t&&r&&"string"==typeof e&&(66===e.length||130===e.length))throw Error('You are using the "new PublicKey()" constructor with a DER hex string. You need to use "PublicKey.fromString()" instead.');super(e,t,r)}}deriveSharedSecret(e){if(!this.validate())throw Error("Public key not valid for ECDH secret derivation");return this.mul(e)}verify(e,t,r){return tI(new p($(e,r),16),t,this)}toDER(e){return"hex"===e?this.encode(!0,e):this.encode(!0)}toHash(e){let t=j(this.encode(!0));return"hex"===e?eK(t):t}toAddress(e=[0]){if("string"==typeof e)if("testnet"===e||"test"===e)e=[111];else if("mainnet"===e||"main"===e)e=[0];else throw Error(`Invalid prefix ${e}`);return eY(this.toHash(),e)}deriveChild(e,t,r,i){let a;if("function"==typeof i){let t=i(e,this);void 0!==t?a=t:(a=this.deriveSharedSecret(e),"function"==typeof r&&r(e,this,a))}else a=this.deriveSharedSecret(e);let n=eF(t,"utf8"),s=G(a.encode(!0),n),o=new th().g.mul(new p(s)),c=this.add(o);return new tv(c.x,c.y)}static fromMsgHashAndCompactSignature(e,t,r){let i=eF(t,r);if(65!==i.length)throw Error("Invalid Compact Signature");let a=i[0];if(a<27||a>=35)throw Error("Invalid Compact Byte");let n=i[0]-27;return n>3&&(n-=4),new tu(new p(i.slice(1,33)),new p(i.slice(33,65))).RecoverPublicKey(n,e)}}class tk{_rand;constructor(){let e=()=>{throw Error("No secure random number generator is available in this environment.")};if(this._rand=e,"object"==typeof self)self.crypto?.getRandomValues?this._rand=e=>{let t=new Uint8Array(e);return self.crypto.getRandomValues(t),[...t]}:this._rand=e;else try{let e=require("crypto");"function"==typeof e.randomBytes&&(this._rand=t=>[...e.randomBytes(t)])}catch{this._rand=e}}generate(e){return this._rand(e)}}let tS=null,tx=e=>(null==tS&&(tS=new tk),tS.generate(e));class tP{x;y;constructor(e,t){let r=new th().p;this.x=e.umod(r),this.y=t.umod(r)}toString(){return eX(this.x.toArray())+"."+eX(this.y.toArray())}static fromString(e){let[t,r]=e.split(".");return new tP(new p(eG(t)),new p(eG(r)))}}class tE{points;threshold;constructor(e,t){this.points=e,this.threshold=t??e.length}static fromPrivateKey(e,t){let r=new th().p,i=[new tP(new p(0),new p(e.toArray()))];for(let e=1;e<t;e++){let e=new p(tx(32)).umod(r),t=new p(tx(32)).umod(r);i.push(new tP(e,t))}return new tE(i)}valueAt(e){let t=new th().p,r=new p(0);for(let i=0;i<this.threshold;i++){let a=this.points[i].y;for(let r=0;r<this.threshold;r++)if(i!==r){let n=this.points[r].x,s=this.points[i].x,o=e.sub(n).umod(t),c=s.sub(n).umod(t).invm(t),l=o.mul(c).umod(t);a=a.mul(l).umod(t)}r=r.add(a).umod(t)}return r}}class tN{points;threshold;integrity;constructor(e,t,r){this.points=e,this.threshold=t,this.integrity=r}static fromBackupFormat(e){let t=0,r="";return new tN(e.map((e,i)=>{let a=e.split(".");if(4!==a.length)throw Error("Invalid share format in share "+i.toString()+'. Expected format: "x.y.t.i" - received '+e);let[n,s,o,c]=a;if(void 0===o)throw Error("Threshold not found in share "+i.toString());if(void 0===c)throw Error("Integrity not found in share "+i.toString());let l=parseInt(o);if(0!==i&&t!==l)throw Error("Threshold mismatch in share "+i.toString());if(0!==i&&r!==c)throw Error("Integrity mismatch in share "+i.toString());return t=l,r=c,tP.fromString([n,s].join("."))}),t,r)}toBackupFormat(){return this.points.map(e=>e.toString()+"."+this.threshold.toString()+"."+this.integrity)}}class tO extends p{static fromRandom(){return new tO(tx(32))}static fromString(e,t="hex"){return new tO(super.fromString(e,t).toArray())}static fromHex(e){return new tO(super.fromHex(e,"big"))}static fromWif(e,t=1){let r=eJ(e,void 0,t);if(33!==r.data.length)throw Error("Invalid WIF length");if(1!==r.data[32])throw Error("Invalid WIF padding");return new tO(r.data.slice(0,32))}constructor(e=0,t=10,r="be",i="apply"){if(e instanceof p?(super(),e.copy(this)):super(e,t,r),"nocheck"!==i){let e=this.checkInField();if(!e.inField){if("error"===i)throw Error("Input is out of field");p.move(this,e.modN)}}}checkInField(){let e=new th,t=this.mod(e.n);return{inField:0===this.cmp(t),modN:t}}isValid(){return this.checkInField().inField}sign(e,t,r=!0,i){return tw(new p($(e,t),16),this,r,i)}verify(e,t,r){return tI(new p($(e,r),16),t,this.toPublicKey())}toPublicKey(){let e=new th().g.mul(this);return new tv(e.x,e.y)}toWif(e=[128]){if(!this.isValid())throw Error("Value is out of field");return eY([...this.toArray("be",32),1],e)}toAddress(e=[0]){return this.toPublicKey().toAddress(e)}toHex(){return super.toHex(32)}toString(e="hex",t=64){return super.toString(e,t)}deriveSharedSecret(e){if(!e.validate())throw Error("Public key not valid for ECDH secret derivation");return e.mul(this)}deriveChild(e,t,r,i){let a;if("function"==typeof i){let t=i(this,e);void 0!==t?a=t:(a=this.deriveSharedSecret(e),"function"==typeof r&&r(this,e,a))}else a=this.deriveSharedSecret(e);let n=eF(t,"utf8"),s=G(a.encode(!0),n),o=new th;return new tO(this.add(new p(s)).mod(o.n).toArray())}toKeyShares(e,t){if("number"!=typeof e||"number"!=typeof t)throw Error("threshold and totalShares must be numbers");if(e<2)throw Error("threshold must be at least 2");if(t<2)throw Error("totalShares must be at least 2");if(e>t)throw Error("threshold should be less than or equal to totalShares");let r=tE.fromPrivateKey(this,e),i=[],a=new Set,n=new th,s=tx(64);for(let e=0;e<t;e++){let t,o=0;do if(t=new p(X(s,[e,o,...tx(32)])).umod(n.p),++o>5)throw Error("Failed to generate unique x coordinate after 5 attempts");while(t.isZero()||a.has(t.toString()));a.add(t.toString());let c=r.valueAt(t);i.push(new tP(t,c))}return new tN(i,e,this.toPublicKey().toHash("hex").slice(0,8))}toBackupShares(e,t){return this.toKeyShares(e,t).toBackupFormat()}static fromBackupShares(e){return tO.fromKeyShares(tN.fromBackupFormat(e))}static fromKeyShares(e){let{points:t,threshold:r,integrity:i}=e;if(r<2)throw Error("threshold must be at least 2");if(t.length<r)throw Error(`At least ${r} shares are required to reconstruct the private key`);for(let e=0;e<r;e++)for(let i=e+1;i<r;i++)if(t[e].x.eq(t[i].x))throw Error("Duplicate share detected, each must be unique.");let a=new tO(new tE(t,r).valueAt(new p(0)).toArray());if(a.toPublicKey().toHash("hex").slice(0,8)!==i)throw Error("Integrity hash mismatch");return a}}let t_=new Uint8Array([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]),tA=[[0,0,0,0],[1,0,0,0],[2,0,0,0],[4,0,0,0],[8,0,0,0],[16,0,0,0],[32,0,0,0],[64,0,0,0],[128,0,0,0],[27,0,0,0],[54,0,0,0]].map(e=>new Uint8Array(e)),tT=new Uint8Array(256),tC=new Uint8Array(256);for(let e=0;e<256;e++){let t=(e<<1^27*((128&e)!=0))&255;tT[e]=t,tC[e]=t^e}function tV(e,t,r){for(let i=0;i<4;i++){let a=t[r+i];for(let t=0;t<4;t++)e[t][i]^=a[t]}}function tR(e){for(let t=0;t<4;t++)e[t]=t_[e[t]]}function tU(e,t){let r,i,a,n,s=[[],[],[],[]],o=[],c=Array.from(t);if(c.length<=16){for(;c.length<16;)c.unshift(0);n=11}else if(c.length<=24){for(;c.length<24;)c.unshift(0);n=13}else if(t.length<=32){for(;c.length<32;)c.unshift(0);n=15}else throw Error("Illegal key length: "+String(t.length));let l=function(e,t){let r=t.length/4,i=[];for(let e=0;e<t.length;e++)e%4==0&&i.push([]),i[e>>2].push(t[e]);for(let t=r;t<4*e;t++){i[t]=[];let e=i[t-1].slice();if(t%r==0){let i=e[0];e[0]=e[1],e[1]=e[2],e[2]=e[3],e[3]=i,tR(e);let a=tA[t/r];for(let t=0;t<4;t++)e[t]^=a[t]}else r>6&&t%r==4&&tR(e);for(let a=0;a<4;a++)i[t][a]=i[t-r][a]^e[a]}return i}(n,c);for(let t=0;t<4;t++)s[0][t]=e[4*t],s[1][t]=e[4*t+1],s[2][t]=e[4*t+2],s[3][t]=e[4*t+3];for(tV(s,l,0),a=1;a<n;a++){for(let e=0;e<4;e++)for(let t=0;t<4;t++)s[e][t]=t_[s[e][t]];!function(e){let t=e[1][0];e[1][0]=e[1][1],e[1][1]=e[1][2],e[1][2]=e[1][3],e[1][3]=t,t=e[2][0];let r=e[2][1];e[2][0]=e[2][2],e[2][1]=e[2][3],e[2][2]=t,e[2][3]=r,t=e[3][3],e[3][3]=e[3][2],e[3][2]=e[3][1],e[3][1]=e[3][0],e[3][0]=t}(s),a+1<n&&function(e){for(let t=0;t<4;t++){let r=e[0][t],i=e[1][t],a=e[2][t],n=e[3][t];e[0][t]=tT[r]^tC[i]^a^n,e[1][t]=r^tT[i]^tC[a]^n,e[2][t]=r^i^tT[a]^tC[n],e[3][t]=tC[r]^i^a^tT[n]}}(s),tV(s,l,4*a)}for(r=0;r<4;r++)for(i=0;i<4;i++)o.push(s[i][r]);return o}let tD=function(e){return[(0xff000000&e)>>>24,(0xff0000&e)>>16,(65280&e)>>8,255&e]},tB=function(e){return Array(e).fill(0)},tL=[225].concat(tB(15)),tH=function(e,t){for(let r=0;r<e.length;r++)e[r]^=t[r]},tK=function(e){let t,r=0,i=0;for(t=0;t<e.length;t++)i=r,r=1&e[t],e[t]=e[t]>>1,0!==i&&(e[t]=128|e[t]);return e},tF=function(e,t){let r=t.slice(),i=tB(16);for(let t=0;t<16;t++)for(let a=7;a>=0;a--)(e[t]&1<<a)!=0&&tH(i,r),(1&r[15])!=0?(tK(r),tH(r,tL)):tK(r);return i},tq=function(e){let t,r=e.slice();for(t=15;11!==t;t--)if(r[t]=r[t]+1,256===r[t])r[t]=0;else break;return r};function tM(e,t){let r=tB(16);for(let i=0;i<e.length;i+=16){let a=r.slice();for(let t=0;t<16;t++)a[t]^=e[i+t]??0;r=tF(a,t)}return r}function t$(e,t,r){if(0===e.length)return[];let i=Array(e.length),a=t,n=0,s=Math.ceil(e.length/16);for(let t=0;t<s;t++){let o=tU(a,r),c=Math.min(16,e.length-n);for(let t=0;t<c;t++)i[n]=e[n]^o[t],n++;t+1<s&&(a=tq(a))}return i}class tz extends p{static fromRandom(){return new tz(tx(32))}encrypt(e,t){let r=tx(32),{result:i,authenticationTag:a}=function(e,t,r,i){let a,n,s=tU(tB(16),i);a=[...r],12===r.length?a=a.concat(tB(3)).concat([1]):(r.length%16!=0&&(a=a.concat(tB(16-r.length%16))),a=tM((a=a.concat(tB(8))).concat(tB(4)).concat(tD(8*r.length)),s));let o=t$(e,tq(a),i);return n=t.slice(),0===t.length?n=n.concat(tB(16)):t.length%16!=0&&(n=n.concat(tB(16-t.length%16))),n=n.concat(o),0===o.length?n=n.concat(tB(16)):o.length%16!=0&&(n=n.concat(tB(16-o.length%16))),n=n.concat(tB(4)).concat(tD(8*t.length)).concat(tB(4)).concat(tD(8*o.length)),{result:o,authenticationTag:t$(tM(n,s),a,i)}}(e=eF(e,t),[],r,this.toArray("be",32));return ez([...r,...i,...a],t)}decrypt(e,t){let r=(e=eF(e,t)).slice(0,32),i=e.slice(32),a=i.slice(-16),n=function(e,t,r,i,a){let n,s,o=tU(tB(16),a);n=[...r],12===r.length?n=n.concat(tB(3)).concat([1]):(r.length%16!=0&&(n=n.concat(tB(16-r.length%16))),n=tM((n=n.concat(tB(8))).concat(tB(4)).concat(tD(8*r.length)),o));let c=t$(e,tq(n),a);return(s=t.slice(),0===t.length?s=s.concat(tB(16)):t.length%16!=0&&(s=s.concat(tB(16-t.length%16))),s=s.concat(e),0===e.length?s=s.concat(tB(16)):e.length%16!=0&&(s=s.concat(tB(16-e.length%16))),t$(tM(s=s.concat(tB(4)).concat(tD(8*t.length)).concat(tB(4)).concat(tD(8*e.length)),o),n,a).join()!==i.join())?null:c}(i.slice(0,-16),[],r,a,this.toArray());if(null===n)throw Error("Decryption failed!");return ez(n,t)}}class tW extends tu{static SIGHASH_ALL=1;static SIGHASH_NONE=2;static SIGHASH_SINGLE=3;static SIGHASH_FORKID=64;static SIGHASH_ANYONECANPAY=128;scope;static format(e){let t={sourceTXID:e.sourceTXID,sourceOutputIndex:e.sourceOutputIndex,sequence:e.inputSequence},r=[...e.otherInputs];function i(t){let r=new eZ;if(void 0===t)for(let t of e.outputs){let e=t.satoshis??0;r.writeUInt64LE(e);let i=t.lockingScript?.toBinary()??[];r.writeVarIntNum(i.length),r.write(i)}else{let i=e.outputs[t];if(void 0===i)throw Error(`Output at index ${t} does not exist`);let a=i.satoshis??0;r.writeUInt64LE(a);let n=i.lockingScript?.toBinary()??[];r.writeVarIntNum(n.length),r.write(n)}return W(r.toArray())}r.splice(e.inputIndex,0,t);let a=Array(32).fill(0),n=Array(32).fill(0),s=Array(32).fill(0);(e.scope&tW.SIGHASH_ANYONECANPAY)==0&&(a=(()=>{let e=new eZ;for(let t of r){if(void 0===t.sourceTXID){if(null==t.sourceTransaction)throw Error("Missing sourceTransaction for input");e.write(t.sourceTransaction.hash())}else e.writeReverse(eF(t.sourceTXID,"hex"));e.writeUInt32LE(t.sourceOutputIndex)}return W(e.toArray())})()),(e.scope&tW.SIGHASH_ANYONECANPAY)==0&&(31&e.scope)!==tW.SIGHASH_SINGLE&&(31&e.scope)!==tW.SIGHASH_NONE&&(n=(()=>{let e=new eZ;for(let t of r){let r=t.sequence??0xffffffff;e.writeUInt32LE(r)}return W(e.toArray())})()),(31&e.scope)!==tW.SIGHASH_SINGLE&&(31&e.scope)!==tW.SIGHASH_NONE?s=i():(31&e.scope)===tW.SIGHASH_SINGLE&&e.inputIndex<e.outputs.length&&(s=i(e.inputIndex));let o=new eZ;o.writeInt32LE(e.transactionVersion),o.write(a),o.write(n),o.writeReverse(eF(e.sourceTXID,"hex")),o.writeUInt32LE(e.sourceOutputIndex);let c=e.subscript.toBinary();o.writeVarIntNum(c.length),o.write(c),o.writeUInt64LE(e.sourceSatoshis);let l=t.sequence;return o.writeUInt32LE(l),o.write(s),o.writeUInt32LE(e.lockTime),o.writeUInt32LE(e.scope>>>0),o.toArray()}static fromChecksigFormat(e){if(0===e.length){let e=new p(1);return new tW(e,new p(1),1)}let t=e[e.length-1],r=e.slice(0,e.length-1),i=tu.fromDER(r);return new tW(i.r,i.s,t)}constructor(e,t,r){super(e,t),this.scope=r}hasLowS(){return!(this.s.ltn(1)||this.s.gt(new p("7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0","hex")))}toChecksigFormat(){return[...this.toDER(),this.scope]}}class tj{curve;constructor(){this.curve=new th}generateProof(e,t,r,i){let a=tO.fromRandom(),n=a.toPublicKey(),s=r.mul(a),o=this.computeChallenge(t,r,i,s,n);return{R:n,SPrime:s,z:a.add(o.mul(e)).umod(this.curve.n)}}verifyProof(e,t,r,i){let{R:a,SPrime:n,z:s}=i,o=this.computeChallenge(e,t,r,n,a),c=this.curve.g.mul(s),l=a.add(e.mul(o));if(!c.eq(l))return!1;let d=t.mul(s),h=n.add(r.mul(o));return!!d.eq(h)}computeChallenge(e,t,r,i,a){return new p($([...e.encode(!0),...t.encode(!0),...r.encode(!0),...i.encode(!0),...a.encode(!0)])).umod(this.curve.n)}}let tG={OP_FALSE:0,OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_RESERVED:80,OP_TRUE:81,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_VER:98,OP_IF:99,OP_NOTIF:100,OP_VERIF:101,OP_VERNOTIF:102,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_CAT:126,OP_SUBSTR:127,OP_SPLIT:127,OP_LEFT:128,OP_NUM2BIN:128,OP_RIGHT:129,OP_BIN2NUM:129,OP_SIZE:130,OP_INVERT:131,OP_AND:132,OP_OR:133,OP_XOR:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_RESERVED1:137,OP_RESERVED2:138,OP_1ADD:139,OP_1SUB:140,OP_2MUL:141,OP_2DIV:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_MUL:149,OP_DIV:150,OP_MOD:151,OP_LSHIFT:152,OP_RSHIFT:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_NOP2:177,OP_NOP3:178,OP_NOP4:179,OP_NOP5:180,OP_NOP6:181,OP_NOP7:182,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_NOP11:186,OP_NOP12:187,OP_NOP13:188,OP_NOP14:189,OP_NOP15:190,OP_NOP16:191,OP_NOP17:192,OP_NOP18:193,OP_NOP19:194,OP_NOP20:195,OP_NOP21:196,OP_NOP22:197,OP_NOP23:198,OP_NOP24:199,OP_NOP25:200,OP_NOP26:201,OP_NOP27:202,OP_NOP28:203,OP_NOP29:204,OP_NOP30:205,OP_NOP31:206,OP_NOP32:207,OP_NOP33:208,OP_NOP34:209,OP_NOP35:210,OP_NOP36:211,OP_NOP37:212,OP_NOP38:213,OP_NOP39:214,OP_NOP40:215,OP_NOP41:216,OP_NOP42:217,OP_NOP43:218,OP_NOP44:219,OP_NOP45:220,OP_NOP46:221,OP_NOP47:222,OP_NOP48:223,OP_NOP49:224,OP_NOP50:225,OP_NOP51:226,OP_NOP52:227,OP_NOP53:228,OP_NOP54:229,OP_NOP55:230,OP_NOP56:231,OP_NOP57:232,OP_NOP58:233,OP_NOP59:234,OP_NOP60:235,OP_NOP61:236,OP_NOP62:237,OP_NOP63:238,OP_NOP64:239,OP_NOP65:240,OP_NOP66:241,OP_NOP67:242,OP_NOP68:243,OP_NOP69:244,OP_NOP70:245,OP_NOP71:246,OP_NOP72:247,OP_NOP73:248,OP_NOP77:252,OP_SMALLDATA:249,OP_SMALLINTEGER:250,OP_PUBKEYS:251,OP_PUBKEYHASH:253,OP_PUBKEY:254,OP_INVALIDOPCODE:255};for(let e in tG)tG[tG[e]]=e;let tX=tG;class tY{chunks;static fromASM(e){let t=[],r=e.split(" "),i=0;for(;i<r.length;){let e,a=r[i],n=0;if(a.startsWith("OP_")&&void 0!==tX[a]&&(e=a,n=tX[a]),"0"===a)n=0,t.push({op:n}),i+=1;else if("-1"===a)n=tX.OP_1NEGATE,t.push({op:n}),i+=1;else if(void 0===e){let e=r[i];e.length%2!=0&&(e="0"+e);let a=eF(e,"hex");if(ez(a,"hex")!==e)throw Error("invalid hex string in script");let s=a.length;s>=0&&s<tX.OP_PUSHDATA1?n=s:s<256?n=tX.OP_PUSHDATA1:s<65536?n=tX.OP_PUSHDATA2:s<0x100000000&&(n=tX.OP_PUSHDATA4),t.push({data:a,op:n}),i+=1}else n===tX.OP_PUSHDATA1||n===tX.OP_PUSHDATA2||n===tX.OP_PUSHDATA4?(t.push({data:eF(r[i+2],"hex"),op:n}),i+=3):(t.push({op:n}),i+=1)}return new tY(t)}static fromHex(e){if(0===e.length)return tY.fromBinary([]);if(e.length%2!=0)throw Error("There is an uneven number of characters in the string which suggests it is not hex encoded.");if(!/^[0-9a-fA-F]+$/.test(e))throw Error("Some elements in this string are not hex encoded.");return tY.fromBinary(eF(e,"hex"))}static fromBinary(e){let t=[],r=0,i=new eQ(e=[...e]);for(;!i.eof();){let e=i.readUInt8();if(e===tX.OP_RETURN&&0===r){t.push({op:e,data:i.read()});break}e===tX.OP_IF||e===tX.OP_NOTIF||e===tX.OP_VERIF||e===tX.OP_VERNOTIF?r++:e===tX.OP_ENDIF&&r--;let a=0,n=[];if(e>0&&e<tX.OP_PUSHDATA1)a=e,t.push({data:i.read(a),op:e});else if(e===tX.OP_PUSHDATA1){try{a=i.readUInt8(),n=i.read(a)}catch{i.read()}t.push({data:n,op:e})}else if(e===tX.OP_PUSHDATA2){try{a=i.readUInt16LE(),n=i.read(a)}catch{i.read()}t.push({data:n,op:e})}else if(e===tX.OP_PUSHDATA4){try{a=i.readUInt32LE(),n=i.read(a)}catch{i.read()}t.push({data:n,op:e})}else t.push({op:e})}return new tY(t)}constructor(e=[]){this.chunks=e}toASM(){let e="";for(let t=0;t<this.chunks.length;t++){let r=this.chunks[t];e+=this._chunkToString(r)}return e.slice(1)}toHex(){return ez(this.toBinary(),"hex")}toBinary(){let e=new eZ;for(let t=0;t<this.chunks.length;t++){let r=this.chunks[t],i=r.op;if(e.writeUInt8(i),i===tX.OP_RETURN&&null!=r.data){e.write(r.data);break}null!=r.data&&(i<tX.OP_PUSHDATA1?e.write(r.data):i===tX.OP_PUSHDATA1?(e.writeUInt8(r.data.length),e.write(r.data)):i===tX.OP_PUSHDATA2?(e.writeUInt16LE(r.data.length),e.write(r.data)):i===tX.OP_PUSHDATA4&&(e.writeUInt32LE(r.data.length),e.write(r.data)))}return e.toArray()}writeScript(e){return this.chunks=this.chunks.concat(e.chunks),this}writeOpCode(e){return this.chunks.push({op:e}),this}setChunkOpCode(e,t){return this.chunks[e]={op:t},this}writeBn(e){if(e.cmpn(0)===tX.OP_0)this.chunks.push({op:tX.OP_0});else if(0===e.cmpn(-1))this.chunks.push({op:tX.OP_1NEGATE});else if(e.cmpn(1)>=0&&0>=e.cmpn(16))this.chunks.push({op:e.toNumber()+tX.OP_1-1});else{let t=e.toSm("little");this.writeBin(t)}return this}writeBin(e){let t;if(e.length>0&&e.length<tX.OP_PUSHDATA1)t=e.length;else if(0===e.length)t=tX.OP_0;else if(e.length<256)t=tX.OP_PUSHDATA1;else if(e.length<65536)t=tX.OP_PUSHDATA2;else if(e.length<0x100000000)t=tX.OP_PUSHDATA4;else throw Error("You can't push that much data");return this.chunks.push({data:e,op:t}),this}writeNumber(e){return this.writeBn(new p(e)),this}removeCodeseparators(){let e=[];for(let t=0;t<this.chunks.length;t++)this.chunks[t].op!==tX.OP_CODESEPARATOR&&e.push(this.chunks[t]);return this.chunks=e,this}findAndDelete(e){let t=e.toHex();for(let e=0;e<this.chunks.length;e++)t===new tY([this.chunks[e]]).toHex()&&this.chunks.splice(e,1);return this}isPushOnly(){for(let e=0;e<this.chunks.length;e++)if(this.chunks[e].op>tX.OP_16)return!1;return!0}isLockingScript(){throw Error("Not implemented")}isUnlockingScript(){throw Error("Not implemented")}_chunkToString(e){let t=e.op,r="";if(void 0===e.data){let e=tX[t];r=`${r} ${e}`}else r=`${r} ${eK(e.data)}`;return r}}class tJ extends tY{isLockingScript(){return!0}isUnlockingScript(){return!1}}class tZ extends tY{isLockingScript(){return!1}isUnlockingScript(){return!0}}class tQ extends Error{txid;outputIndex;context;programCounter;stackState;altStackState;ifStackState;stackMem;altStackMem;constructor(e){let t=e.stackState.map(e=>null!=e&&void 0!==e.length?eK(e):null==e?"null/undef":"INVALID_STACK_ITEM").join(", "),r=e.altStackState.map(e=>null!=e&&void 0!==e.length?eK(e):null==e?"null/undef":"INVALID_STACK_ITEM").join(", "),i=`Context: ${e.context}, PC: ${e.programCounter}`,a=`Stack: [${t}] (len: ${e.stackState.length}, mem: ${e.stackMem})`,n=`AltStack: [${r}] (len: ${e.altStackState.length}, mem: ${e.altStackMem})`;super(`Script evaluation error: ${e.message}
|
|
2
2
|
TXID: ${e.txid}, OutputIdx: ${e.outputIndex}
|
|
3
3
|
${i}
|
|
4
4
|
${a}
|