@protontech/openpgp 6.1.1-patch.2 → 6.1.1-patch.4

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.
@@ -1,19 +1,19 @@
1
- /*! OpenPGP.js v6.1.1-patch.2 - 2025-05-14 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
2
- const e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e,t){return t.forEach((function(t){t&&"string"!=typeof t&&!Array.isArray(t)&&Object.keys(t).forEach((function(r){if("default"!==r&&!(r in e)){var n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:function(){return t[r]}})}}))})),Object.freeze(e)}const r=Symbol("doneWritingPromise"),n=Symbol("doneWritingResolve"),i=Symbol("doneWritingReject"),s=Symbol("readingIndex");class ArrayStream extends Array{constructor(){super(),Object.setPrototypeOf(this,ArrayStream.prototype),this[r]=new Promise(((e,t)=>{this[n]=e,this[i]=t})),this[r].catch((()=>{}))}}function a(e){return e&&e.getReader&&Array.isArray(e)}function o(e){if(!a(e)){const t=e.getWriter(),r=t.releaseLock;return t.releaseLock=()=>{t.closed.catch((function(){})),r.call(t)},t}this.stream=e}function c(t){if(a(t))return"array";if(e.ReadableStream&&e.ReadableStream.prototype.isPrototypeOf(t))return"web";if(t&&!(e.ReadableStream&&t instanceof e.ReadableStream)&&"function"==typeof t._read&&"object"==typeof t._readableState)throw Error("Native Node streams are no longer supported: please manually convert the stream to a WebStream, using e.g. `stream.Readable.toWeb`");return!(!t||!t.getReader)&&"web-like"}function u(e){return Uint8Array.prototype.isPrototypeOf(e)}function h(e){if(1===e.length)return e[0];let t=0;for(let r=0;r<e.length;r++){if(!u(e[r]))throw Error("concatUint8Array: Data must be in the form of a Uint8Array");t+=e[r].length}const r=new Uint8Array(t);let n=0;return e.forEach((function(e){r.set(e,n),n+=e.length})),r}ArrayStream.prototype.getReader=function(){return void 0===this[s]&&(this[s]=0),{read:async()=>(await this[r],this[s]===this.length?{value:void 0,done:!0}:{value:this[this[s]++],done:!1})}},ArrayStream.prototype.readToEnd=async function(e){await this[r];const t=e(this.slice(this[s]));return this.length=0,t},ArrayStream.prototype.clone=function(){const e=new ArrayStream;return e[r]=this[r].then((()=>{e.push(...this)})),e},o.prototype.write=async function(e){this.stream.push(e)},o.prototype.close=async function(){this.stream[n]()},o.prototype.abort=async function(e){return this.stream[i](e),e},o.prototype.releaseLock=function(){},"object"==typeof e.process&&e.process.versions;const l=new WeakSet,y=Symbol("externalBuffer");function f(e){if(this.stream=e,e[y]&&(this[y]=e[y].slice()),a(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{},void(this._cancel=()=>{})}if(c(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{t.closed.catch((function(){})),t.releaseLock()},void(this._cancel=t.cancel.bind(t))}let t=!1;this._read=async()=>t||l.has(e)?{value:void 0,done:!0}:(t=!0,{value:e,done:!1}),this._releaseLock=()=>{if(t)try{l.add(e)}catch(e){}}}function g(e){return c(e)?e:new ReadableStream({start(t){t.enqueue(e),t.close()}})}function p(e){if(c(e))return e;const t=new ArrayStream;return(async()=>{const r=D(t);await r.write(e),await r.close()})(),t}function d(e){return e.some((e=>c(e)&&!a(e)))?function(e){e=e.map(g);const t=m((async function(e){await Promise.all(n.map((t=>C(t,e))))}));let r=Promise.resolve();const n=e.map(((n,i)=>k(n,((n,s)=>(r=r.then((()=>A(n,t.writable,{preventClose:i!==e.length-1}))),r)))));return t.readable}(e):e.some((e=>a(e)))?function(e){const t=new ArrayStream;let r=Promise.resolve();return e.forEach(((n,i)=>(r=r.then((()=>A(n,t,{preventClose:i!==e.length-1}))),r))),t}(e):"string"==typeof e[0]?e.join(""):h(e)}async function A(e,t,{preventClose:r=!1,preventAbort:n=!1,preventCancel:i=!1}={}){if(c(e)&&!a(e)){e=g(e);try{if(e[y]){const r=D(t);for(let t=0;t<e[y].length;t++)await r.ready,await r.write(e[y][t]);r.releaseLock()}await e.pipeTo(t,{preventClose:r,preventAbort:n,preventCancel:i})}catch(e){}return}const s=P(e=p(e)),o=D(t);try{for(;;){await o.ready;const{done:e,value:t}=await s.read();if(e){r||await o.close();break}await o.write(t)}}catch(e){n||await o.abort(e)}finally{s.releaseLock(),o.releaseLock()}}function w(e,t){const r=new TransformStream(t);return A(e,r.writable),r.readable}function m(e){let t,r,n,i=!1,s=!1;return{readable:new ReadableStream({start(e){n=e},pull(){t?t():i=!0},async cancel(t){s=!0,e&&await e(t),r&&r(t)}},{highWaterMark:0}),writable:new WritableStream({write:async function(e){if(s)throw Error("Stream is cancelled");n.enqueue(e),i?i=!1:(await new Promise(((e,n)=>{t=e,r=n})),t=null,r=null)},close:n.close.bind(n),abort:n.error.bind(n)})}}function b(e,t=()=>{},r=()=>{}){if(a(e)){const n=new ArrayStream;return(async()=>{const i=D(n);try{const n=await K(e),s=t(n),a=r();let o;o=void 0!==s&&void 0!==a?d([s,a]):void 0!==s?s:a,await i.write(o),await i.close()}catch(e){await i.abort(e)}})(),n}if(c(e))return w(e,{async transform(e,r){try{const n=await t(e);void 0!==n&&r.enqueue(n)}catch(e){r.error(e)}},async flush(e){try{const t=await r();void 0!==t&&e.enqueue(t)}catch(t){e.error(t)}}});const n=t(e),i=r();return void 0!==n&&void 0!==i?d([n,i]):void 0!==n?n:i}function k(e,t){if(c(e)&&!a(e)){let r;const n=new TransformStream({start(e){r=e}}),i=A(e,n.writable),s=m((async function(e){r.error(e),await i,await new Promise(setTimeout)}));return t(n.readable,s.writable),s.readable}e=p(e);const r=new ArrayStream;return t(e,r),r}function E(e,t){let r;const n=k(e,((e,i)=>{const s=P(e);s.remainder=()=>(s.releaseLock(),A(e,i),n),r=t(s)}));return r}function v(e){if(a(e))return e.clone();if(c(e)){const t=function(e){if(a(e))throw Error("ArrayStream cannot be tee()d, use clone() instead");if(c(e)){const t=g(e).tee();return t[0][y]=t[1][y]=e[y],t}return[I(e),I(e)]}(e);return S(e,t[0]),t[1]}return I(e)}function B(e){return a(e)?v(e):c(e)?new ReadableStream({start(t){const r=k(e,(async(e,r)=>{const n=P(e),i=D(r);try{for(;;){await i.ready;const{done:e,value:r}=await n.read();if(e){try{t.close()}catch(e){}return void await i.close()}try{t.enqueue(r)}catch(e){}await i.write(r)}}catch(e){t.error(e),await i.abort(e)}}));S(e,r)}}):I(e)}function S(e,t){Object.entries(Object.getOwnPropertyDescriptors(e.constructor.prototype)).forEach((([r,n])=>{"constructor"!==r&&(n.value?n.value=n.value.bind(t):n.get=n.get.bind(t),Object.defineProperty(e,r,n))}))}function I(e,t=0,r=1/0){if(a(e))throw Error("Not implemented");if(c(e)){if(t>=0&&r>=0){let n=0;return w(e,{transform(e,i){n<r?(n+e.length>=t&&i.enqueue(I(e,Math.max(t-n,0),r-n)),n+=e.length):i.terminate()}})}if(t<0&&(r<0||r===1/0)){let n=[];return b(e,(e=>{e.length>=-t?n=[e]:n.push(e)}),(()=>I(d(n),t,r)))}if(0===t&&r<0){let n;return b(e,(e=>{const i=n?d([n,e]):e;if(i.length>=-r)return n=I(i,r),I(i,t,r);n=i}))}return console.warn(`stream.slice(input, ${t}, ${r}) not implemented efficiently.`),U((async()=>I(await K(e),t,r)))}return e[y]&&(e=d(e[y].concat([e]))),u(e)?e.subarray(t,r===1/0?e.length:r):e.slice(t,r)}async function K(e,t=d){return a(e)?e.readToEnd(t):c(e)?P(e).readToEnd(t):e}async function C(e,t){if(c(e)){if(e.cancel){const r=await e.cancel(t);return await new Promise(setTimeout),r}if(e.destroy)return e.destroy(t),await new Promise(setTimeout),t}}function U(e){const t=new ArrayStream;return(async()=>{const r=D(t);try{await r.write(await e()),await r.close()}catch(e){await r.abort(e)}})(),t}function P(e){return new f(e)}function D(e){return new o(e)}f.prototype.read=async function(){if(this[y]&&this[y].length){return{done:!1,value:this[y].shift()}}return this._read()},f.prototype.releaseLock=function(){this[y]&&(this.stream[y]=this[y]),this._releaseLock()},f.prototype.cancel=function(e){return this._cancel(e)},f.prototype.readLine=async function(){let e,t=[];for(;!e;){let{done:r,value:n}=await this.read();if(n+="",r)return t.length?d(t):void 0;const i=n.indexOf("\n")+1;i&&(e=d(t.concat(n.substr(0,i))),t=[]),i!==n.length&&t.push(n.substr(i))}return this.unshift(...t),e},f.prototype.readByte=async function(){const{done:e,value:t}=await this.read();if(e)return;const r=t[0];return this.unshift(I(t,1)),r},f.prototype.readBytes=async function(e){const t=[];let r=0;for(;;){const{done:n,value:i}=await this.read();if(n)return t.length?d(t):void 0;if(t.push(i),r+=i.length,r>=e){const r=d(t);return this.unshift(I(r,e)),I(r,0,e)}}},f.prototype.peekBytes=async function(e){const t=await this.readBytes(e);return this.unshift(t),t},f.prototype.unshift=function(...e){this[y]||(this[y]=[]),1===e.length&&u(e[0])&&this[y].length&&e[0].length&&this[y][0].byteOffset>=e[0].length?this[y][0]=new Uint8Array(this[y][0].buffer,this[y][0].byteOffset-e[0].length,this[y][0].byteLength+e[0].length):this[y].unshift(...e.filter((e=>e&&e.length)))},f.prototype.readToEnd=async function(e=d){const t=[];for(;;){const{done:e,value:r}=await this.read();if(e)break;t.push(r)}return e(t)};const x=Symbol("byValue");var Q={curve:{nistP256:"nistP256",p256:"nistP256",nistP384:"nistP384",p384:"nistP384",nistP521:"nistP521",p521:"nistP521",secp256k1:"secp256k1",ed25519Legacy:"ed25519Legacy",ed25519:"ed25519Legacy",curve25519Legacy:"curve25519Legacy",curve25519:"curve25519Legacy",brainpoolP256r1:"brainpoolP256r1",brainpoolP384r1:"brainpoolP384r1",brainpoolP512r1:"brainpoolP512r1"},kdfFlags:{replace_fingerprint:1,replace_kdf_params:2},s2k:{simple:0,salted:1,iterated:3,argon2:4,gnu:101},publicKey:{rsaEncryptSign:1,rsaEncrypt:2,rsaSign:3,elgamal:16,dsa:17,ecdh:18,ecdsa:19,eddsaLegacy:22,aedh:23,aedsa:24,x25519:25,x448:26,ed25519:27,ed448:28,pqc_mlkem_x25519:105,pqc_mldsa_ed25519:107,aead:100,hmac:101},symmetric:{idea:1,tripledes:2,cast5:3,blowfish:4,aes128:7,aes192:8,aes256:9,twofish:10},compression:{uncompressed:0,zip:1,zlib:2,bzip2:3},hash:{md5:1,sha1:2,ripemd:3,sha256:8,sha384:9,sha512:10,sha224:11,sha3_256:12,sha3_512:14},webHash:{"SHA-1":2,"SHA-256":8,"SHA-384":9,"SHA-512":10},aead:{eax:1,ocb:2,gcm:3,experimentalGCM:100},packet:{publicKeyEncryptedSessionKey:1,signature:2,symEncryptedSessionKey:3,onePassSignature:4,secretKey:5,publicKey:6,secretSubkey:7,compressedData:8,symmetricallyEncryptedData:9,marker:10,literalData:11,trust:12,userID:13,publicSubkey:14,userAttribute:17,symEncryptedIntegrityProtectedData:18,modificationDetectionCode:19,aeadEncryptedData:20,padding:21},literal:{binary:98,text:116,utf8:117,mime:109},signature:{binary:0,text:1,standalone:2,certGeneric:16,certPersona:17,certCasual:18,certPositive:19,certRevocation:48,subkeyBinding:24,keyBinding:25,key:31,keyRevocation:32,subkeyRevocation:40,timestamp:64,thirdParty:80},signatureSubpacket:{signatureCreationTime:2,signatureExpirationTime:3,exportableCertification:4,trustSignature:5,regularExpression:6,revocable:7,keyExpirationTime:9,placeholderBackwardsCompatibility:10,preferredSymmetricAlgorithms:11,revocationKey:12,issuerKeyID:16,notationData:20,preferredHashAlgorithms:21,preferredCompressionAlgorithms:22,keyServerPreferences:23,preferredKeyServer:24,primaryUserID:25,policyURI:26,keyFlags:27,signersUserID:28,reasonForRevocation:29,features:30,signatureTarget:31,embeddedSignature:32,issuerFingerprint:33,preferredAEADAlgorithms:34,preferredCipherSuites:39},keyFlags:{certifyKeys:1,signData:2,encryptCommunication:4,encryptStorage:8,splitPrivateKey:16,authentication:32,forwardedCommunication:64,sharedPrivateKey:128},armor:{multipartSection:0,multipartLast:1,signed:2,message:3,publicKey:4,privateKey:5,signature:6},reasonForRevocation:{noReason:0,keySuperseded:1,keyCompromised:2,keyRetired:3,userIDInvalid:32},features:{modificationDetection:1,aead:2,v5Keys:4,seipdv2:8},write:function(e,t){if("number"==typeof t&&(t=this.read(e,t)),void 0!==e[t])return e[t];throw Error("Invalid enum value.")},read:function(e,t){if(e[x]||(e[x]=[],Object.entries(e).forEach((([t,r])=>{e[x][r]=t}))),void 0!==e[x][t])return e[x][t];throw Error("Invalid enum value.")}},R={preferredHashAlgorithm:Q.hash.sha512,preferredSymmetricAlgorithm:Q.symmetric.aes256,preferredCompressionAlgorithm:Q.compression.uncompressed,aeadProtect:!1,ignoreSEIPDv2FeatureFlag:!1,parseAEADEncryptedV4KeysAsLegacy:!1,preferredAEADAlgorithm:Q.aead.gcm,aeadChunkSizeByte:12,v6Keys:!1,enableParsingV5Entities:!1,s2kType:Q.s2k.iterated,s2kIterationCountByte:224,s2kArgon2Params:{passes:3,parallelism:4,memoryExponent:16},allowUnauthenticatedMessages:!1,allowUnauthenticatedStream:!1,allowForwardedMessages:!1,minRSABits:2047,passwordCollisionCheck:!1,allowInsecureDecryptionWithSigningKeys:!1,allowInsecureVerificationWithReformattedKeys:!1,allowMissingKeyFlags:!1,constantTimePKCS1Decryption:!1,constantTimePKCS1DecryptionSupportedSymmetricAlgorithms:new Set([Q.symmetric.aes128,Q.symmetric.aes192,Q.symmetric.aes256]),ignoreUnsupportedPackets:!0,ignoreMalformedPackets:!1,enforceGrammar:!0,pluggableGrammarErrorReporter:null,additionalAllowedPackets:[],showVersion:!1,showComment:!1,versionString:"OpenPGP.js 6.1.1-patch.2",commentString:"https://openpgpjs.org",maxUserIDLength:5120,knownNotations:[],nonDeterministicSignaturesViaNotation:!0,useEllipticFallback:!0,rejectHashAlgorithms:new Set([Q.hash.md5,Q.hash.ripemd]),rejectMessageHashAlgorithms:new Set([Q.hash.md5,Q.hash.ripemd,Q.hash.sha1]),rejectPublicKeyAlgorithms:new Set([Q.publicKey.elgamal,Q.publicKey.dsa]),rejectCurves:new Set([Q.curve.secp256k1])};const T=(()=>{try{return"development"===process.env.NODE_ENV}catch(e){}return!1})(),M={isString:function(e){return"string"==typeof e||e instanceof String},nodeRequire:()=>{},isArray:function(e){return e instanceof Array},isUint8Array:u,isStream:c,getNobleCurve:async(e,t)=>{if(!R.useEllipticFallback)throw Error("This curve is only supported in the full build of OpenPGP.js");const{nobleCurves:r}=await Promise.resolve().then((function(){return $y}));switch(e){case Q.publicKey.ecdh:case Q.publicKey.ecdsa:{const e=r.get(t);if(!e)throw Error("Unsupported curve");return e}case Q.publicKey.x448:return r.get("x448");case Q.publicKey.ed448:return r.get("ed448");default:throw Error("Unsupported curve")}},readNumber:function(e){let t=0;for(let r=0;r<e.length;r++)t+=256**r*e[e.length-1-r];return t},writeNumber:function(e,t){const r=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e>>8*(t-n-1)&255;return r},readDate:function(e){const t=M.readNumber(e);return new Date(1e3*t)},writeDate:function(e){const t=Math.floor(e.getTime()/1e3);return M.writeNumber(t,4)},normalizeDate:function(e=Date.now()){return null===e||e===1/0?e:new Date(1e3*Math.floor(+e/1e3))},readMPI:function(e){const t=(e[0]<<8|e[1])+7>>>3;return M.readExactSubarray(e,2,2+t)},readExactSubarray:function(e,t,r){if(e.length<r-t)throw Error("Input array too short");return e.subarray(t,r)},leftPad(e,t){if(e.length>t)throw Error("Input array too long");const r=new Uint8Array(t),n=t-e.length;return r.set(e,n),r},uint8ArrayToMPI:function(e){const t=M.uint8ArrayBitLength(e);if(0===t)throw Error("Zero MPI");const r=e.subarray(e.length-Math.ceil(t/8)),n=new Uint8Array([(65280&t)>>8,255&t]);return M.concatUint8Array([n,r])},uint8ArrayBitLength:function(e){let t;for(t=0;t<e.length&&0===e[t];t++);if(t===e.length)return 0;const r=e.subarray(t);return 8*(r.length-1)+M.nbits(r[0])},hexToUint8Array:function(e){const t=new Uint8Array(e.length>>1);for(let r=0;r<e.length>>1;r++)t[r]=parseInt(e.substr(r<<1,2),16);return t},uint8ArrayToHex:function(e){const t="0123456789abcdef";let r="";return e.forEach((e=>{r+=t[e>>4]+t[15&e]})),r},stringToUint8Array:function(e){return b(e,(e=>{if(!M.isString(e))throw Error("stringToUint8Array: Data must be in the form of a string");const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}))},uint8ArrayToString:function(e){const t=[],r=16384,n=(e=new Uint8Array(e)).length;for(let i=0;i<n;i+=r)t.push(String.fromCharCode.apply(String,e.subarray(i,i+r<n?i+r:n)));return t.join("")},encodeUTF8:function(e){const t=new TextEncoder("utf-8");function r(e,r=!1){return t.encode(e,{stream:!r})}return b(e,r,(()=>r("",!0)))},decodeUTF8:function(e){const t=new TextDecoder("utf-8");function r(e,r=!1){return t.decode(e,{stream:!r})}return b(e,r,(()=>r(new Uint8Array,!0)))},concat:d,concatUint8Array:h,equalsUint8Array:function(e,t){if(!M.isUint8Array(e)||!M.isUint8Array(t))throw Error("Data must be in the form of a Uint8Array");if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0},findLastIndex:function(e,t){for(let r=e.length;r>=0;r--)if(t(e[r],r,e))return r;return-1},writeChecksum:function(e){let t=0;for(let r=0;r<e.length;r++)t=t+e[r]&65535;return M.writeNumber(t,2)},printDebug:function(e){T&&console.log("[OpenPGP.js debug]",e)},printDebugError:function(e){T&&console.error("[OpenPGP.js debug]",e)},nbits:function(e){let t=1,r=e>>>16;return 0!==r&&(e=r,t+=16),r=e>>8,0!==r&&(e=r,t+=8),r=e>>4,0!==r&&(e=r,t+=4),r=e>>2,0!==r&&(e=r,t+=2),r=e>>1,0!==r&&(e=r,t+=1),t},double:function(e){const t=new Uint8Array(e.length),r=e.length-1;for(let n=0;n<r;n++)t[n]=e[n]<<1^e[n+1]>>7;return t[r]=e[r]<<1^135*(e[0]>>7),t},shiftRight:function(e,t){if(t)for(let r=e.length-1;r>=0;r--)e[r]>>=t,r>0&&(e[r]|=e[r-1]<<8-t);return e},getWebCrypto:function(){const t=void 0!==e&&e.crypto&&e.crypto.subtle||this.getNodeCrypto()?.webcrypto.subtle;if(!t)throw Error("The WebCrypto API is not available");return t},getNodeCrypto:function(){return this.nodeRequire("crypto")},getNodeZlib:function(){return this.nodeRequire("zlib")},getNodeBuffer:function(){return(this.nodeRequire("buffer")||{}).Buffer},getHardwareConcurrency:function(){if("undefined"!=typeof navigator)return navigator.hardwareConcurrency||1;return this.nodeRequire("os").cpus().length},isEmailAddress:function(e){if(!M.isString(e))return!1;return/^[^\p{C}\p{Z}@<>\\]+@[^\p{C}\p{Z}@<>\\]+[^\p{C}\p{Z}\p{P}]$/u.test(e)},canonicalizeEOL:function(e){let t=!1;return b(e,(e=>{let r;t&&(e=M.concatUint8Array([new Uint8Array([13]),e])),13===e[e.length-1]?(t=!0,e=e.subarray(0,-1)):t=!1;const n=[];for(let t=0;r=e.indexOf(10,t)+1,r;t=r)13!==e[r-2]&&n.push(r);if(!n.length)return e;const i=new Uint8Array(e.length+n.length);let s=0;for(let t=0;t<n.length;t++){const r=e.subarray(n[t-1]||0,n[t]);i.set(r,s),s+=r.length,i[s-1]=13,i[s]=10,s++}return i.set(e.subarray(n[n.length-1]||0),s),i}),(()=>t?new Uint8Array([13]):void 0))},nativeEOL:function(e){let t=!1;return b(e,(e=>{let r;13===(e=t&&10!==e[0]?M.concatUint8Array([new Uint8Array([13]),e]):new Uint8Array(e))[e.length-1]?(t=!0,e=e.subarray(0,-1)):t=!1;let n=0;for(let t=0;t!==e.length;t=r){r=e.indexOf(13,t)+1,r||(r=e.length);const i=r-(10===e[r]?1:0);t&&e.copyWithin(n,t,i),n+=i-t}return e.subarray(0,n)}),(()=>t?new Uint8Array([13]):void 0))},removeTrailingSpaces:function(e){return e.split("\n").map((e=>{let t=e.length-1;for(;t>=0&&(" "===e[t]||"\t"===e[t]||"\r"===e[t]);t--);return e.substr(0,t+1)})).join("\n")},wrapError:function(e,t){if(!t)return Error(e);try{t.message=e+": "+t.message}catch(e){}return t},constructAllowedPackets:function(e){const t={};return e.forEach((e=>{if(!e.tag)throw Error("Invalid input: expected a packet class");t[e.tag]=e})),t},anyPromise:function(e){return new Promise((async(t,r)=>{let n;await Promise.all(e.map((async e=>{try{t(await e)}catch(e){n=e}}))),r(n)}))},selectUint8Array:function(e,t,r){const n=Math.max(t.length,r.length),i=new Uint8Array(n);let s=0;for(let n=0;n<i.length;n++)i[n]=t[n]&256-e|r[n]&255+e,s+=e&n<t.length|1-e&n<r.length;return i.subarray(0,s)},selectUint8:function(e,t,r){return t&256-e|r&255+e},isAES:function(e){return e===Q.symmetric.aes128||e===Q.symmetric.aes192||e===Q.symmetric.aes256}},L=M.getNodeBuffer();let F,N;function O(e){let t=new Uint8Array;return b(e,(e=>{t=M.concatUint8Array([t,e]);const r=[],n=Math.floor(t.length/45),i=45*n,s=F(t.subarray(0,i));for(let e=0;e<n;e++)r.push(s.substr(60*e,60)),r.push("\n");return t=t.subarray(i),r.join("")}),(()=>t.length?F(t)+"\n":""))}function _(e){let t="";return b(e,(e=>{t+=e;let r=0;const n=[" ","\t","\r","\n"];for(let e=0;e<n.length;e++){const i=n[e];for(let e=t.indexOf(i);-1!==e;e=t.indexOf(i,e+1))r++}let i=t.length;for(;i>0&&(i-r)%4!=0;i--)n.includes(t[i])&&r--;const s=N(t.substr(0,i));return t=t.substr(i),s}),(()=>N(t)))}function H(e){return _(e.replace(/-/g,"+").replace(/_/g,"/"))}function z(e,t){let r=O(e).replace(/[\r\n]/g,"");return r=r.replace(/[+]/g,"-").replace(/[/]/g,"_").replace(/[=]/g,""),r}function G(e){const t=e.match(/^-----BEGIN PGP (MESSAGE, PART \d+\/\d+|MESSAGE, PART \d+|SIGNED MESSAGE|MESSAGE|PUBLIC KEY BLOCK|PRIVATE KEY BLOCK|SIGNATURE)-----$/m);if(!t)throw Error("Unknown ASCII armor type");return/MESSAGE, PART \d+\/\d+/.test(t[1])?Q.armor.multipartSection:/MESSAGE, PART \d+/.test(t[1])?Q.armor.multipartLast:/SIGNED MESSAGE/.test(t[1])?Q.armor.signed:/MESSAGE/.test(t[1])?Q.armor.message:/PUBLIC KEY BLOCK/.test(t[1])?Q.armor.publicKey:/PRIVATE KEY BLOCK/.test(t[1])?Q.armor.privateKey:/SIGNATURE/.test(t[1])?Q.armor.signature:void 0}function q(e,t){let r="";return t.showVersion&&(r+="Version: "+t.versionString+"\n"),t.showComment&&(r+="Comment: "+t.commentString+"\n"),e&&(r+="Comment: "+e+"\n"),r+="\n",r}function j(e){const t=function(e){let t=13501623;return b(e,(e=>{const r=Y?Math.floor(e.length/4):0,n=new Uint32Array(e.buffer,e.byteOffset,r);for(let e=0;e<r;e++)t^=n[e],t=V[0][t>>24&255]^V[1][t>>16&255]^V[2][t>>8&255]^V[3][255&t];for(let n=4*r;n<e.length;n++)t=t>>8^V[0][255&t^e[n]]}),(()=>new Uint8Array([t,t>>8,t>>16])))}(e);return O(t)}L?(F=e=>L.from(e).toString("base64"),N=e=>{const t=L.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}):(F=e=>btoa(M.uint8ArrayToString(e)),N=e=>M.stringToUint8Array(atob(e)));const V=[Array(255),Array(255),Array(255),Array(255)];for(let e=0;e<=255;e++){let t=e<<16;for(let e=0;e<8;e++)t=t<<1^(8388608&t?8801531:0);V[0][e]=(16711680&t)>>16|65280&t|(255&t)<<16}for(let e=0;e<=255;e++)V[1][e]=V[0][e]>>8^V[0][255&V[0][e]];for(let e=0;e<=255;e++)V[2][e]=V[1][e]>>8^V[0][255&V[1][e]];for(let e=0;e<=255;e++)V[3][e]=V[2][e]>>8^V[0][255&V[2][e]];const Y=function(){const e=new ArrayBuffer(2);return new DataView(e).setInt16(0,255,!0),255===new Int16Array(e)[0]}();function Z(e){for(let t=0;t<e.length;t++)/^([^\s:]|[^\s:][^:]*[^\s:]): .+$/.test(e[t])||M.printDebugError(Error("Improperly formatted armor header: "+e[t])),/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(e[t])||M.printDebugError(Error("Unknown header: "+e[t]))}function W(e){let t=e;const r=e.lastIndexOf("=");return r>=0&&r!==e.length-1&&(t=e.slice(0,r)),t}function J(e){return new Promise((async(t,r)=>{try{const n=/^-----[^-]+-----$/m,i=/^[ \f\r\t\u00a0\u2000-\u200a\u202f\u205f\u3000]*$/;let s;const a=[];let o,c,u=a,h=[];const l=_(k(e,(async(e,y)=>{const f=P(e);try{for(;;){let e=await f.readLine();if(void 0===e)throw Error("Misformed armored text");if(e=M.removeTrailingSpaces(e.replace(/[\r\n]/g,"")),s)if(o)c||s!==Q.armor.signed||(n.test(e)?(h=h.join("\r\n"),c=!0,Z(u),u=[],o=!1):h.push(e.replace(/^- /,"")));else if(n.test(e)&&r(Error("Mandatory blank line missing between armor headers and armor data")),i.test(e)){if(Z(u),o=!0,c||s!==Q.armor.signed){t({text:h,data:l,headers:a,type:s});break}}else u.push(e);else n.test(e)&&(s=G(e))}}catch(e){return void r(e)}const g=D(y);try{for(;;){await g.ready;const{done:e,value:t}=await f.read();if(e)throw Error("Misformed armored text");const r=t+"";if(-1!==r.indexOf("=")||-1!==r.indexOf("-")){let e=await f.readToEnd();e.length||(e=""),e=r+e,e=M.removeTrailingSpaces(e.replace(/\r/g,""));const t=e.split(n);if(1===t.length)throw Error("Misformed armored text");const i=W(t[0].slice(0,-1));await g.write(i);break}await g.write(r)}await g.ready,await g.close()}catch(e){await g.abort(e)}})))}catch(e){r(e)}})).then((async e=>(a(e.data)&&(e.data=await K(e.data)),e)))}function X(e,t,r,n,i,s=!1,a=R){let o,c;e===Q.armor.signed&&(o=t.text,c=t.hash,t=t.data);const u=s&&B(t),h=[];switch(e){case Q.armor.multipartSection:h.push("-----BEGIN PGP MESSAGE, PART "+r+"/"+n+"-----\n"),h.push(q(i,a)),h.push(O(t)),u&&h.push("=",j(u)),h.push("-----END PGP MESSAGE, PART "+r+"/"+n+"-----\n");break;case Q.armor.multipartLast:h.push("-----BEGIN PGP MESSAGE, PART "+r+"-----\n"),h.push(q(i,a)),h.push(O(t)),u&&h.push("=",j(u)),h.push("-----END PGP MESSAGE, PART "+r+"-----\n");break;case Q.armor.signed:h.push("-----BEGIN PGP SIGNED MESSAGE-----\n"),h.push(c?`Hash: ${c}\n\n`:"\n"),h.push(o.replace(/^-/gm,"- -")),h.push("\n-----BEGIN PGP SIGNATURE-----\n"),h.push(q(i,a)),h.push(O(t)),u&&h.push("=",j(u)),h.push("-----END PGP SIGNATURE-----\n");break;case Q.armor.message:h.push("-----BEGIN PGP MESSAGE-----\n"),h.push(q(i,a)),h.push(O(t)),u&&h.push("=",j(u)),h.push("-----END PGP MESSAGE-----\n");break;case Q.armor.publicKey:h.push("-----BEGIN PGP PUBLIC KEY BLOCK-----\n"),h.push(q(i,a)),h.push(O(t)),u&&h.push("=",j(u)),h.push("-----END PGP PUBLIC KEY BLOCK-----\n");break;case Q.armor.privateKey:h.push("-----BEGIN PGP PRIVATE KEY BLOCK-----\n"),h.push(q(i,a)),h.push(O(t)),u&&h.push("=",j(u)),h.push("-----END PGP PRIVATE KEY BLOCK-----\n");break;case Q.armor.signature:h.push("-----BEGIN PGP SIGNATURE-----\n"),h.push(q(i,a)),h.push(O(t)),u&&h.push("=",j(u)),h.push("-----END PGP SIGNATURE-----\n")}return M.concat(h)}const $=BigInt(0),ee=BigInt(1);function te(e){const t="0123456789ABCDEF";let r="";return e.forEach((e=>{r+=t[e>>4]+t[15&e]})),BigInt("0x0"+r)}function re(e,t){const r=e%t;return r<$?r+t:r}function ne(e,t,r){if(r===$)throw Error("Modulo cannot be zero");if(r===ee)return BigInt(0);if(t<$)throw Error("Unsopported negative exponent");let n=t,i=e;i%=r;let s=BigInt(1);for(;n>$;){const e=n&ee;n>>=ee;s=e?s*i%r:s,i=i*i%r}return s}function ie(e){return e>=$?e:-e}function se(e,t){const{gcd:r,x:n}=function(e,t){let r=BigInt(0),n=BigInt(1),i=BigInt(1),s=BigInt(0),a=ie(e),o=ie(t);const c=e<$,u=t<$;for(;o!==$;){const e=a/o;let t=r;r=i-e*r,i=t,t=n,n=s-e*n,s=t,t=o,o=a%o,a=t}return{x:c?-i:i,y:u?-s:s,gcd:a}}(e,t);if(r!==ee)throw Error("Inverse does not exist");return re(n+t,t)}function ae(e){const t=Number(e);if(t>Number.MAX_SAFE_INTEGER)throw Error("Number can only safely store up to 53 bits");return t}function oe(e,t){return(e>>BigInt(t)&ee)===$?0:1}function ce(e){const t=e<$?BigInt(-1):$;let r=1,n=e;for(;(n>>=ee)!==t;)r++;return r}function ue(e){const t=e<$?BigInt(-1):$,r=BigInt(8);let n=1,i=e;for(;(i>>=r)!==t;)n++;return n}function he(e,t="be",r){let n=e.toString(16);n.length%2==1&&(n="0"+n);const i=n.length/2,s=new Uint8Array(r||i),a=r?r-i:0;let o=0;for(;o<i;)s[o+a]=parseInt(n.slice(2*o,2*o+2),16),o++;return"be"!==t&&s.reverse(),s}const le=M.getNodeCrypto();function ye(e){const t="undefined"!=typeof crypto?crypto:le?.webcrypto;if(t?.getRandomValues){const r=new Uint8Array(e);return t.getRandomValues(r)}throw Error("No secure random number generator available.")}function fe(e,t){if(t<e)throw Error("Illegal parameter value: max <= min");const r=t-e;return re(te(ye(ue(r)+8)),r)+e}const ge=BigInt(1);function pe(e,t,r){const n=BigInt(30),i=ge<<BigInt(e-1),s=[1,6,5,4,3,2,1,4,3,2,1,2,1,4,3,2,1,2,1,4,3,2,1,6,5,4,3,2,1,2];let a=fe(i,i<<ge),o=ae(re(a,n));do{a+=BigInt(s[o]),o=(o+s[o])%s.length,ce(a)>e&&(a=re(a,i<<ge),a+=i,o=ae(re(a,n)))}while(!de(a,t,r));return a}function de(e,t,r){return(!t||function(e,t){let r=e,n=t;for(;n!==$;){const e=n;n=r%n,r=e}return r}(e-ge,t)===ge)&&(!!function(e){const t=BigInt(0);return Ae.every((r=>re(e,r)!==t))}(e)&&(!!function(e,t=BigInt(2)){return ne(t,e-ge,e)===ge}(e)&&!!function(e,t){const r=ce(e);t||(t=Math.max(1,r/48|0));const n=e-ge;let i=0;for(;!oe(n,i);)i++;const s=e>>BigInt(i);for(;t>0;t--){let t,r=ne(fe(BigInt(2),n),s,e);if(r!==ge&&r!==n){for(t=1;t<i;t++){if(r=re(r*r,e),r===ge)return!1;if(r===n)break}if(t===i)return!1}}return!0}(e,r)))}const Ae=[7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999].map((e=>BigInt(e)));const we=M.getWebCrypto(),me=M.getNodeCrypto(),be=me&&me.getHashes();function ke(e){if(me&&be.includes(e))return async function(t){const r=me.createHash(e);return b(t,(e=>{r.update(e)}),(()=>new Uint8Array(r.digest())))}}function Ee(e,t){const r=async()=>{const{nobleHashes:t}=await Promise.resolve().then((function(){return Sf})),r=t.get(e);if(!r)throw Error("Unsupported hash");return r};return async function(e){if(a(e)&&(e=await K(e)),M.isStream(e)){const t=(await r()).create();return b(e,(e=>{t.update(e)}),(()=>t.digest()))}if(we&&t)return new Uint8Array(await we.digest(t,e));return(await r())(e)}}const ve=ke("md5")||Ee("md5"),Be=ke("sha1")||Ee("sha1","SHA-1"),Se=ke("sha224")||Ee("sha224"),Ie=ke("sha256")||Ee("sha256","SHA-256"),Ke=ke("sha384")||Ee("sha384","SHA-384"),Ce=ke("sha512")||Ee("sha512","SHA-512"),Ue=ke("ripemd160")||Ee("ripemd160"),Pe=ke("sha3-256")||Ee("sha3_256"),De=ke("sha3-512")||Ee("sha3_512");function xe(e,t){switch(e){case Q.hash.md5:return ve(t);case Q.hash.sha1:return Be(t);case Q.hash.ripemd:return Ue(t);case Q.hash.sha256:return Ie(t);case Q.hash.sha384:return Ke(t);case Q.hash.sha512:return Ce(t);case Q.hash.sha224:return Se(t);case Q.hash.sha3_256:return Pe(t);case Q.hash.sha3_512:return De(t);default:throw Error("Unsupported hash function")}}function Qe(e){switch(e){case Q.hash.md5:return 16;case Q.hash.sha1:case Q.hash.ripemd:return 20;case Q.hash.sha256:return 32;case Q.hash.sha384:return 48;case Q.hash.sha512:return 64;case Q.hash.sha224:return 28;case Q.hash.sha3_256:return 32;case Q.hash.sha3_512:return 64;default:throw Error("Invalid hash algorithm.")}}const Re=[];function Te(e,t){const r=e.length;if(r>t-11)throw Error("Message too long");const n=function(e){const t=new Uint8Array(e);let r=0;for(;r<e;){const n=ye(e-r);for(let e=0;e<n.length;e++)0!==n[e]&&(t[r++]=n[e])}return t}(t-r-3),i=new Uint8Array(t);return i[1]=2,i.set(n,2),i.set(e,t-r),i}function Me(e,t){let r=2,n=1;for(let t=r;t<e.length;t++)n&=0!==e[t],r+=n;const i=r-2,s=e.subarray(r+1),a=0===e[0]&2===e[1]&i>=8&!n;if(t)return M.selectUint8Array(a,s,t);if(a)return s;throw Error("Decryption error")}function Le(e,t,r){let n;if(t.length!==Qe(e))throw Error("Invalid hash length");const i=new Uint8Array(Re[e].length);for(n=0;n<Re[e].length;n++)i[n]=Re[e][n];const s=i.length+t.length;if(r<s+11)throw Error("Intended encoded message length too short");const a=new Uint8Array(r-s-3).fill(255),o=new Uint8Array(r);return o[1]=1,o.set(a,2),o.set(i,r-s),o.set(t,r-t.length),o}Re[1]=[48,32,48,12,6,8,42,134,72,134,247,13,2,5,5,0,4,16],Re[2]=[48,33,48,9,6,5,43,14,3,2,26,5,0,4,20],Re[3]=[48,33,48,9,6,5,43,36,3,2,1,5,0,4,20],Re[8]=[48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32],Re[9]=[48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48],Re[10]=[48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64],Re[11]=[48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28];const Fe=M.getWebCrypto(),Ne=M.getNodeCrypto(),Oe=BigInt(1);async function _e(e,t,r,n,i,s,a,o,c){if(Qe(e)>=r.length)throw Error("Digest size cannot exceed key modulus size");if(t&&!M.isStream(t))if(M.getWebCrypto())try{return await async function(e,t,r,n,i,s,a,o){const c=await qe(r,n,i,s,a,o),u={name:"RSASSA-PKCS1-v1_5",hash:{name:e}},h=await Fe.importKey("jwk",c,u,!1,["sign"]);return new Uint8Array(await Fe.sign("RSASSA-PKCS1-v1_5",h,t))}(Q.read(Q.webHash,e),t,r,n,i,s,a,o)}catch(e){M.printDebugError(e)}else if(M.getNodeCrypto())return async function(e,t,r,n,i,s,a,o){const c=Ne.createSign(Q.read(Q.hash,e));c.write(t),c.end();const u=await qe(r,n,i,s,a,o);return new Uint8Array(c.sign({key:u,format:"jwk",type:"pkcs1"}))}(e,t,r,n,i,s,a,o);return async function(e,t,r,n){t=te(t);const i=te(Le(e,n,ue(t)));return r=te(r),he(ne(i,r,t),"be",ue(t))}(e,r,i,c)}async function He(e,t,r,n,i,s){if(t&&!M.isStream(t))if(M.getWebCrypto())try{return await async function(e,t,r,n,i){const s=je(n,i),a=await Fe.importKey("jwk",s,{name:"RSASSA-PKCS1-v1_5",hash:{name:e}},!1,["verify"]);return Fe.verify("RSASSA-PKCS1-v1_5",a,r,t)}(Q.read(Q.webHash,e),t,r,n,i)}catch(e){M.printDebugError(e)}else if(M.getNodeCrypto())return async function(e,t,r,n,i){const s=je(n,i),a={key:s,format:"jwk",type:"pkcs1"},o=Ne.createVerify(Q.read(Q.hash,e));o.write(t),o.end();try{return o.verify(a,r)}catch(e){return!1}}(e,t,r,n,i);return async function(e,t,r,n,i){if(r=te(r),t=te(t),n=te(n),t>=r)throw Error("Signature size cannot exceed modulus size");const s=he(ne(t,n,r),"be",ue(r)),a=Le(e,i,ue(r));return M.equalsUint8Array(s,a)}(e,r,n,i,s)}async function ze(e,t,r){return M.getNodeCrypto()?async function(e,t,r){const n=je(t,r),i={key:n,format:"jwk",type:"pkcs1",padding:Ne.constants.RSA_PKCS1_PADDING};return new Uint8Array(Ne.publicEncrypt(i,e))}(e,t,r):async function(e,t,r){if(t=te(t),e=te(Te(e,ue(t))),r=te(r),e>=t)throw Error("Message size cannot exceed modulus size");return he(ne(e,r,t),"be",ue(t))}(e,t,r)}async function Ge(e,t,r,n,i,s,a,o){if(M.getNodeCrypto()&&!o)try{return await async function(e,t,r,n,i,s,a){const o=await qe(t,r,n,i,s,a),c={key:o,format:"jwk",type:"pkcs1",padding:Ne.constants.RSA_PKCS1_PADDING};try{return new Uint8Array(Ne.privateDecrypt(c,e))}catch(e){throw Error("Decryption error")}}(e,t,r,n,i,s,a)}catch(e){M.printDebugError(e)}return async function(e,t,r,n,i,s,a,o){if(e=te(e),t=te(t),r=te(r),n=te(n),i=te(i),s=te(s),a=te(a),e>=t)throw Error("Data too large.");const c=re(n,s-Oe),u=re(n,i-Oe),h=fe(BigInt(2),t),l=ne(se(h,t),r,t);e=re(e*l,t);const y=ne(e,u,i),f=ne(e,c,s),g=re(a*(f-y),s);let p=g*i+y;return p=re(p*h,t),Me(he(p,"be",ue(t)),o)}(e,t,r,n,i,s,a,o)}async function qe(e,t,r,n,i,s){const a=te(n),o=te(i),c=te(r);let u=re(c,o-Oe),h=re(c,a-Oe);return h=he(h),u=he(u),{kty:"RSA",n:z(e),e:z(t),d:z(r),p:z(i),q:z(n),dp:z(u),dq:z(h),qi:z(s),ext:!0}}function je(e,t){return{kty:"RSA",n:z(e),e:z(t),ext:!0}}function Ve(e,t){return{n:H(e.n),e:he(t),d:H(e.d),p:H(e.q),q:H(e.p),u:H(e.qi)}}const Ye=BigInt(1);const Ze="object"==typeof e&&"crypto"in e?e.crypto:void 0,We={};var Je=function(e){var t,r=new Float64Array(16);if(e)for(t=0;t<e.length;t++)r[t]=e[t];return r},Xe=function(){throw Error("no PRNG")},$e=new Uint8Array(32);$e[0]=9;var et=Je(),tt=Je([1]),rt=Je([56129,1]),nt=Je([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),it=Je([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),st=Je([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),at=Je([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),ot=Je([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function ct(e,t,r,n){e[t]=r>>24&255,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r,e[t+4]=n>>24&255,e[t+5]=n>>16&255,e[t+6]=n>>8&255,e[t+7]=255&n}function ut(e,t,r,n){return function(e,t,r,n,i){var s,a=0;for(s=0;s<i;s++)a|=e[t+s]^r[n+s];return(1&a-1>>>8)-1}(e,t,r,n,32)}function ht(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function lt(e){var t,r,n=1;for(t=0;t<16;t++)r=e[t]+n+65535,n=Math.floor(r/65536),e[t]=r-65536*n;e[0]+=n-1+37*(n-1)}function yt(e,t,r){for(var n,i=~(r-1),s=0;s<16;s++)n=i&(e[s]^t[s]),e[s]^=n,t[s]^=n}function ft(e,t){var r,n,i,s=Je(),a=Je();for(r=0;r<16;r++)a[r]=t[r];for(lt(a),lt(a),lt(a),n=0;n<2;n++){for(s[0]=a[0]-65517,r=1;r<15;r++)s[r]=a[r]-65535-(s[r-1]>>16&1),s[r-1]&=65535;s[15]=a[15]-32767-(s[14]>>16&1),i=s[15]>>16&1,s[14]&=65535,yt(a,s,1-i)}for(r=0;r<16;r++)e[2*r]=255&a[r],e[2*r+1]=a[r]>>8}function gt(e,t){var r=new Uint8Array(32),n=new Uint8Array(32);return ft(r,e),ft(n,t),ut(r,0,n,0)}function pt(e){var t=new Uint8Array(32);return ft(t,e),1&t[0]}function dt(e,t){var r;for(r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}function At(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]+r[n]}function wt(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]-r[n]}function mt(e,t,r){var n,i,s=0,a=0,o=0,c=0,u=0,h=0,l=0,y=0,f=0,g=0,p=0,d=0,A=0,w=0,m=0,b=0,k=0,E=0,v=0,B=0,S=0,I=0,K=0,C=0,U=0,P=0,D=0,x=0,Q=0,R=0,T=0,M=r[0],L=r[1],F=r[2],N=r[3],O=r[4],_=r[5],H=r[6],z=r[7],G=r[8],q=r[9],j=r[10],V=r[11],Y=r[12],Z=r[13],W=r[14],J=r[15];s+=(n=t[0])*M,a+=n*L,o+=n*F,c+=n*N,u+=n*O,h+=n*_,l+=n*H,y+=n*z,f+=n*G,g+=n*q,p+=n*j,d+=n*V,A+=n*Y,w+=n*Z,m+=n*W,b+=n*J,a+=(n=t[1])*M,o+=n*L,c+=n*F,u+=n*N,h+=n*O,l+=n*_,y+=n*H,f+=n*z,g+=n*G,p+=n*q,d+=n*j,A+=n*V,w+=n*Y,m+=n*Z,b+=n*W,k+=n*J,o+=(n=t[2])*M,c+=n*L,u+=n*F,h+=n*N,l+=n*O,y+=n*_,f+=n*H,g+=n*z,p+=n*G,d+=n*q,A+=n*j,w+=n*V,m+=n*Y,b+=n*Z,k+=n*W,E+=n*J,c+=(n=t[3])*M,u+=n*L,h+=n*F,l+=n*N,y+=n*O,f+=n*_,g+=n*H,p+=n*z,d+=n*G,A+=n*q,w+=n*j,m+=n*V,b+=n*Y,k+=n*Z,E+=n*W,v+=n*J,u+=(n=t[4])*M,h+=n*L,l+=n*F,y+=n*N,f+=n*O,g+=n*_,p+=n*H,d+=n*z,A+=n*G,w+=n*q,m+=n*j,b+=n*V,k+=n*Y,E+=n*Z,v+=n*W,B+=n*J,h+=(n=t[5])*M,l+=n*L,y+=n*F,f+=n*N,g+=n*O,p+=n*_,d+=n*H,A+=n*z,w+=n*G,m+=n*q,b+=n*j,k+=n*V,E+=n*Y,v+=n*Z,B+=n*W,S+=n*J,l+=(n=t[6])*M,y+=n*L,f+=n*F,g+=n*N,p+=n*O,d+=n*_,A+=n*H,w+=n*z,m+=n*G,b+=n*q,k+=n*j,E+=n*V,v+=n*Y,B+=n*Z,S+=n*W,I+=n*J,y+=(n=t[7])*M,f+=n*L,g+=n*F,p+=n*N,d+=n*O,A+=n*_,w+=n*H,m+=n*z,b+=n*G,k+=n*q,E+=n*j,v+=n*V,B+=n*Y,S+=n*Z,I+=n*W,K+=n*J,f+=(n=t[8])*M,g+=n*L,p+=n*F,d+=n*N,A+=n*O,w+=n*_,m+=n*H,b+=n*z,k+=n*G,E+=n*q,v+=n*j,B+=n*V,S+=n*Y,I+=n*Z,K+=n*W,C+=n*J,g+=(n=t[9])*M,p+=n*L,d+=n*F,A+=n*N,w+=n*O,m+=n*_,b+=n*H,k+=n*z,E+=n*G,v+=n*q,B+=n*j,S+=n*V,I+=n*Y,K+=n*Z,C+=n*W,U+=n*J,p+=(n=t[10])*M,d+=n*L,A+=n*F,w+=n*N,m+=n*O,b+=n*_,k+=n*H,E+=n*z,v+=n*G,B+=n*q,S+=n*j,I+=n*V,K+=n*Y,C+=n*Z,U+=n*W,P+=n*J,d+=(n=t[11])*M,A+=n*L,w+=n*F,m+=n*N,b+=n*O,k+=n*_,E+=n*H,v+=n*z,B+=n*G,S+=n*q,I+=n*j,K+=n*V,C+=n*Y,U+=n*Z,P+=n*W,D+=n*J,A+=(n=t[12])*M,w+=n*L,m+=n*F,b+=n*N,k+=n*O,E+=n*_,v+=n*H,B+=n*z,S+=n*G,I+=n*q,K+=n*j,C+=n*V,U+=n*Y,P+=n*Z,D+=n*W,x+=n*J,w+=(n=t[13])*M,m+=n*L,b+=n*F,k+=n*N,E+=n*O,v+=n*_,B+=n*H,S+=n*z,I+=n*G,K+=n*q,C+=n*j,U+=n*V,P+=n*Y,D+=n*Z,x+=n*W,Q+=n*J,m+=(n=t[14])*M,b+=n*L,k+=n*F,E+=n*N,v+=n*O,B+=n*_,S+=n*H,I+=n*z,K+=n*G,C+=n*q,U+=n*j,P+=n*V,D+=n*Y,x+=n*Z,Q+=n*W,R+=n*J,b+=(n=t[15])*M,a+=38*(E+=n*F),o+=38*(v+=n*N),c+=38*(B+=n*O),u+=38*(S+=n*_),h+=38*(I+=n*H),l+=38*(K+=n*z),y+=38*(C+=n*G),f+=38*(U+=n*q),g+=38*(P+=n*j),p+=38*(D+=n*V),d+=38*(x+=n*Y),A+=38*(Q+=n*Z),w+=38*(R+=n*W),m+=38*(T+=n*J),s=(n=(s+=38*(k+=n*L))+(i=1)+65535)-65536*(i=Math.floor(n/65536)),a=(n=a+i+65535)-65536*(i=Math.floor(n/65536)),o=(n=o+i+65535)-65536*(i=Math.floor(n/65536)),c=(n=c+i+65535)-65536*(i=Math.floor(n/65536)),u=(n=u+i+65535)-65536*(i=Math.floor(n/65536)),h=(n=h+i+65535)-65536*(i=Math.floor(n/65536)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),f=(n=f+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),A=(n=A+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+i+65535)-65536*(i=Math.floor(n/65536)),b=(n=b+i+65535)-65536*(i=Math.floor(n/65536)),s=(n=(s+=i-1+37*(i-1))+(i=1)+65535)-65536*(i=Math.floor(n/65536)),a=(n=a+i+65535)-65536*(i=Math.floor(n/65536)),o=(n=o+i+65535)-65536*(i=Math.floor(n/65536)),c=(n=c+i+65535)-65536*(i=Math.floor(n/65536)),u=(n=u+i+65535)-65536*(i=Math.floor(n/65536)),h=(n=h+i+65535)-65536*(i=Math.floor(n/65536)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),f=(n=f+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),A=(n=A+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+i+65535)-65536*(i=Math.floor(n/65536)),b=(n=b+i+65535)-65536*(i=Math.floor(n/65536)),s+=i-1+37*(i-1),e[0]=s,e[1]=a,e[2]=o,e[3]=c,e[4]=u,e[5]=h,e[6]=l,e[7]=y,e[8]=f,e[9]=g,e[10]=p,e[11]=d,e[12]=A,e[13]=w,e[14]=m,e[15]=b}function bt(e,t){mt(e,t,t)}function kt(e,t){var r,n=Je();for(r=0;r<16;r++)n[r]=t[r];for(r=253;r>=0;r--)bt(n,n),2!==r&&4!==r&&mt(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}function Et(e,t,r){var n,i,s=new Uint8Array(32),a=new Float64Array(80),o=Je(),c=Je(),u=Je(),h=Je(),l=Je(),y=Je();for(i=0;i<31;i++)s[i]=t[i];for(s[31]=127&t[31]|64,s[0]&=248,dt(a,r),i=0;i<16;i++)c[i]=a[i],h[i]=o[i]=u[i]=0;for(o[0]=h[0]=1,i=254;i>=0;--i)yt(o,c,n=s[i>>>3]>>>(7&i)&1),yt(u,h,n),At(l,o,u),wt(o,o,u),At(u,c,h),wt(c,c,h),bt(h,l),bt(y,o),mt(o,u,o),mt(u,c,l),At(l,o,u),wt(o,o,u),bt(c,o),wt(u,h,y),mt(o,u,rt),At(o,o,h),mt(u,u,o),mt(o,h,y),mt(h,c,a),bt(c,l),yt(o,c,n),yt(u,h,n);for(i=0;i<16;i++)a[i+16]=o[i],a[i+32]=u[i],a[i+48]=c[i],a[i+64]=h[i];var f=a.subarray(32),g=a.subarray(16);return kt(f,f),mt(g,g,f),ft(e,g),0}function vt(e,t){return Et(e,t,$e)}var Bt=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function St(e,t,r,n){for(var i,s,a,o,c,u,h,l,y,f,g,p,d,A,w,m,b,k,E,v,B,S,I,K,C,U,P=new Int32Array(16),D=new Int32Array(16),x=e[0],Q=e[1],R=e[2],T=e[3],M=e[4],L=e[5],F=e[6],N=e[7],O=t[0],_=t[1],H=t[2],z=t[3],G=t[4],q=t[5],j=t[6],V=t[7],Y=0;n>=128;){for(E=0;E<16;E++)v=8*E+Y,P[E]=r[v+0]<<24|r[v+1]<<16|r[v+2]<<8|r[v+3],D[E]=r[v+4]<<24|r[v+5]<<16|r[v+6]<<8|r[v+7];for(E=0;E<80;E++)if(i=x,s=Q,a=R,o=T,c=M,u=L,h=F,N,y=O,f=_,g=H,p=z,d=G,A=q,w=j,V,I=65535&(S=V),K=S>>>16,C=65535&(B=N),U=B>>>16,I+=65535&(S=(G>>>14|M<<18)^(G>>>18|M<<14)^(M>>>9|G<<23)),K+=S>>>16,C+=65535&(B=(M>>>14|G<<18)^(M>>>18|G<<14)^(G>>>9|M<<23)),U+=B>>>16,I+=65535&(S=G&q^~G&j),K+=S>>>16,C+=65535&(B=M&L^~M&F),U+=B>>>16,B=Bt[2*E],I+=65535&(S=Bt[2*E+1]),K+=S>>>16,C+=65535&B,U+=B>>>16,B=P[E%16],K+=(S=D[E%16])>>>16,C+=65535&B,U+=B>>>16,C+=(K+=(I+=65535&S)>>>16)>>>16,I=65535&(S=k=65535&I|K<<16),K=S>>>16,C=65535&(B=b=65535&C|(U+=C>>>16)<<16),U=B>>>16,I+=65535&(S=(O>>>28|x<<4)^(x>>>2|O<<30)^(x>>>7|O<<25)),K+=S>>>16,C+=65535&(B=(x>>>28|O<<4)^(O>>>2|x<<30)^(O>>>7|x<<25)),U+=B>>>16,K+=(S=O&_^O&H^_&H)>>>16,C+=65535&(B=x&Q^x&R^Q&R),U+=B>>>16,l=65535&(C+=(K+=(I+=65535&S)>>>16)>>>16)|(U+=C>>>16)<<16,m=65535&I|K<<16,I=65535&(S=p),K=S>>>16,C=65535&(B=o),U=B>>>16,K+=(S=k)>>>16,C+=65535&(B=b),U+=B>>>16,Q=i,R=s,T=a,M=o=65535&(C+=(K+=(I+=65535&S)>>>16)>>>16)|(U+=C>>>16)<<16,L=c,F=u,N=h,x=l,_=y,H=f,z=g,G=p=65535&I|K<<16,q=d,j=A,V=w,O=m,E%16==15)for(v=0;v<16;v++)B=P[v],I=65535&(S=D[v]),K=S>>>16,C=65535&B,U=B>>>16,B=P[(v+9)%16],I+=65535&(S=D[(v+9)%16]),K+=S>>>16,C+=65535&B,U+=B>>>16,b=P[(v+1)%16],I+=65535&(S=((k=D[(v+1)%16])>>>1|b<<31)^(k>>>8|b<<24)^(k>>>7|b<<25)),K+=S>>>16,C+=65535&(B=(b>>>1|k<<31)^(b>>>8|k<<24)^b>>>7),U+=B>>>16,b=P[(v+14)%16],K+=(S=((k=D[(v+14)%16])>>>19|b<<13)^(b>>>29|k<<3)^(k>>>6|b<<26))>>>16,C+=65535&(B=(b>>>19|k<<13)^(k>>>29|b<<3)^b>>>6),U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,P[v]=65535&C|U<<16,D[v]=65535&I|K<<16;I=65535&(S=O),K=S>>>16,C=65535&(B=x),U=B>>>16,B=e[0],K+=(S=t[0])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[0]=x=65535&C|U<<16,t[0]=O=65535&I|K<<16,I=65535&(S=_),K=S>>>16,C=65535&(B=Q),U=B>>>16,B=e[1],K+=(S=t[1])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[1]=Q=65535&C|U<<16,t[1]=_=65535&I|K<<16,I=65535&(S=H),K=S>>>16,C=65535&(B=R),U=B>>>16,B=e[2],K+=(S=t[2])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[2]=R=65535&C|U<<16,t[2]=H=65535&I|K<<16,I=65535&(S=z),K=S>>>16,C=65535&(B=T),U=B>>>16,B=e[3],K+=(S=t[3])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[3]=T=65535&C|U<<16,t[3]=z=65535&I|K<<16,I=65535&(S=G),K=S>>>16,C=65535&(B=M),U=B>>>16,B=e[4],K+=(S=t[4])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[4]=M=65535&C|U<<16,t[4]=G=65535&I|K<<16,I=65535&(S=q),K=S>>>16,C=65535&(B=L),U=B>>>16,B=e[5],K+=(S=t[5])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[5]=L=65535&C|U<<16,t[5]=q=65535&I|K<<16,I=65535&(S=j),K=S>>>16,C=65535&(B=F),U=B>>>16,B=e[6],K+=(S=t[6])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[6]=F=65535&C|U<<16,t[6]=j=65535&I|K<<16,I=65535&(S=V),K=S>>>16,C=65535&(B=N),U=B>>>16,B=e[7],K+=(S=t[7])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[7]=N=65535&C|U<<16,t[7]=V=65535&I|K<<16,Y+=128,n-=128}return n}function It(e,t,r){var n,i=new Int32Array(8),s=new Int32Array(8),a=new Uint8Array(256),o=r;for(i[0]=1779033703,i[1]=3144134277,i[2]=1013904242,i[3]=2773480762,i[4]=1359893119,i[5]=2600822924,i[6]=528734635,i[7]=1541459225,s[0]=4089235720,s[1]=2227873595,s[2]=4271175723,s[3]=1595750129,s[4]=2917565137,s[5]=725511199,s[6]=4215389547,s[7]=327033209,St(i,s,t,r),r%=128,n=0;n<r;n++)a[n]=t[o-r+n];for(a[r]=128,a[(r=256-128*(r<112?1:0))-9]=0,ct(a,r-8,o/536870912|0,o<<3),St(i,s,a,r),n=0;n<8;n++)ct(e,8*n,i[n],s[n]);return 0}function Kt(e,t){var r=Je(),n=Je(),i=Je(),s=Je(),a=Je(),o=Je(),c=Je(),u=Je(),h=Je();wt(r,e[1],e[0]),wt(h,t[1],t[0]),mt(r,r,h),At(n,e[0],e[1]),At(h,t[0],t[1]),mt(n,n,h),mt(i,e[3],t[3]),mt(i,i,it),mt(s,e[2],t[2]),At(s,s,s),wt(a,n,r),wt(o,s,i),At(c,s,i),At(u,n,r),mt(e[0],a,o),mt(e[1],u,c),mt(e[2],c,o),mt(e[3],a,u)}function Ct(e,t,r){var n;for(n=0;n<4;n++)yt(e[n],t[n],r)}function Ut(e,t){var r=Je(),n=Je(),i=Je();kt(i,t[2]),mt(r,t[0],i),mt(n,t[1],i),ft(e,n),e[31]^=pt(r)<<7}function Pt(e,t,r){var n,i;for(ht(e[0],et),ht(e[1],tt),ht(e[2],tt),ht(e[3],et),i=255;i>=0;--i)Ct(e,t,n=r[i/8|0]>>(7&i)&1),Kt(t,e),Kt(e,e),Ct(e,t,n)}function Dt(e,t){var r=[Je(),Je(),Je(),Je()];ht(r[0],st),ht(r[1],at),ht(r[2],tt),mt(r[3],st,at),Pt(e,r,t)}function xt(e,t,r){var n,i=new Uint8Array(64),s=[Je(),Je(),Je(),Je()];for(r||Xe(t,32),It(i,t,32),i[0]&=248,i[31]&=127,i[31]|=64,Dt(s,i),Ut(e,s),n=0;n<32;n++)t[n+32]=e[n];return 0}var Qt=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function Rt(e,t){var r,n,i,s;for(n=63;n>=32;--n){for(r=0,i=n-32,s=n-12;i<s;++i)t[i]+=r-16*t[n]*Qt[i-(n-32)],r=Math.floor((t[i]+128)/256),t[i]-=256*r;t[i]+=r,t[n]=0}for(r=0,i=0;i<32;i++)t[i]+=r-(t[31]>>4)*Qt[i],r=t[i]>>8,t[i]&=255;for(i=0;i<32;i++)t[i]-=r*Qt[i];for(n=0;n<32;n++)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function Tt(e){var t,r=new Float64Array(64);for(t=0;t<64;t++)r[t]=e[t];for(t=0;t<64;t++)e[t]=0;Rt(e,r)}function Mt(e,t){var r=Je(),n=Je(),i=Je(),s=Je(),a=Je(),o=Je(),c=Je();return ht(e[2],tt),dt(e[1],t),bt(i,e[1]),mt(s,i,nt),wt(i,i,e[2]),At(s,e[2],s),bt(a,s),bt(o,a),mt(c,o,a),mt(r,c,i),mt(r,r,s),function(e,t){var r,n=Je();for(r=0;r<16;r++)n[r]=t[r];for(r=250;r>=0;r--)bt(n,n),1!==r&&mt(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}(r,r),mt(r,r,i),mt(r,r,s),mt(r,r,s),mt(e[0],r,s),bt(n,e[0]),mt(n,n,s),gt(n,i)&&mt(e[0],e[0],ot),bt(n,e[0]),mt(n,n,s),gt(n,i)?-1:(pt(e[0])===t[31]>>7&&wt(e[0],et,e[0]),mt(e[3],e[0],e[1]),0)}var Lt=64;function Ft(){for(var e=0;e<arguments.length;e++)if(!(arguments[e]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}We.scalarMult=function(e,t){if(Ft(e,t),32!==e.length)throw Error("bad n size");if(32!==t.length)throw Error("bad p size");var r=new Uint8Array(32);return Et(r,e,t),r},We.box={},We.box.keyPair=function(){var e=new Uint8Array(32),t=new Uint8Array(32);return function(e,t){Xe(t,32),vt(e,t)}(e,t),{publicKey:e,secretKey:t}},We.box.keyPair.fromSecretKey=function(e){if(Ft(e),32!==e.length)throw Error("bad secret key size");var t=new Uint8Array(32);return vt(t,e),{publicKey:t,secretKey:new Uint8Array(e)}},We.sign=function(e,t){if(Ft(e,t),64!==t.length)throw Error("bad secret key size");var r=new Uint8Array(Lt+e.length);return function(e,t,r,n){var i,s,a=new Uint8Array(64),o=new Uint8Array(64),c=new Uint8Array(64),u=new Float64Array(64),h=[Je(),Je(),Je(),Je()];It(a,n,32),a[0]&=248,a[31]&=127,a[31]|=64;var l=r+64;for(i=0;i<r;i++)e[64+i]=t[i];for(i=0;i<32;i++)e[32+i]=a[32+i];for(It(c,e.subarray(32),r+32),Tt(c),Dt(h,c),Ut(e,h),i=32;i<64;i++)e[i]=n[i];for(It(o,e,r+64),Tt(o),i=0;i<64;i++)u[i]=0;for(i=0;i<32;i++)u[i]=c[i];for(i=0;i<32;i++)for(s=0;s<32;s++)u[i+s]+=o[i]*a[s];Rt(e.subarray(32),u)}(r,e,e.length,t),r},We.sign.detached=function(e,t){for(var r=We.sign(e,t),n=new Uint8Array(Lt),i=0;i<n.length;i++)n[i]=r[i];return n},We.sign.detached.verify=function(e,t,r){if(Ft(e,t,r),t.length!==Lt)throw Error("bad signature size");if(32!==r.length)throw Error("bad public key size");var n,i=new Uint8Array(Lt+e.length),s=new Uint8Array(Lt+e.length);for(n=0;n<Lt;n++)i[n]=t[n];for(n=0;n<e.length;n++)i[n+Lt]=e[n];return function(e,t,r,n){var i,s=new Uint8Array(32),a=new Uint8Array(64),o=[Je(),Je(),Je(),Je()],c=[Je(),Je(),Je(),Je()];if(r<64)return-1;if(Mt(c,n))return-1;for(i=0;i<r;i++)e[i]=t[i];for(i=0;i<32;i++)e[i+32]=n[i];if(It(a,e,r),Tt(a),Pt(o,c,a),Dt(c,t.subarray(32)),Kt(o,c),Ut(s,o),r-=64,ut(t,0,s,0)){for(i=0;i<r;i++)e[i]=0;return-1}for(i=0;i<r;i++)e[i]=t[i+64];return r}(s,i,i.length,r)>=0},We.sign.keyPair=function(){var e=new Uint8Array(32),t=new Uint8Array(64);return xt(e,t),{publicKey:e,secretKey:t}},We.sign.keyPair.fromSecretKey=function(e){if(Ft(e),64!==e.length)throw Error("bad secret key size");for(var t=new Uint8Array(32),r=0;r<t.length;r++)t[r]=e[32+r];return{publicKey:t,secretKey:new Uint8Array(e)}},We.sign.keyPair.fromSeed=function(e){if(Ft(e),32!==e.length)throw Error("bad seed size");for(var t=new Uint8Array(32),r=new Uint8Array(64),n=0;n<32;n++)r[n]=e[n];return xt(t,r,!0),{publicKey:t,secretKey:r}},We.setPRNG=function(e){Xe=e},function(){if(Ze&&Ze.getRandomValues){We.setPRNG((function(e,t){var r,n=new Uint8Array(t);for(r=0;r<t;r+=65536)Ze.getRandomValues(n.subarray(r,r+Math.min(t-r,65536)));for(r=0;r<t;r++)e[r]=n[r];!function(e){for(var t=0;t<e.length;t++)e[t]=0}(n)}))}}();const Nt={"2a8648ce3d030107":Q.curve.nistP256,"2b81040022":Q.curve.nistP384,"2b81040023":Q.curve.nistP521,"2b8104000a":Q.curve.secp256k1,"2b06010401da470f01":Q.curve.ed25519Legacy,"2b060104019755010501":Q.curve.curve25519Legacy,"2b2403030208010107":Q.curve.brainpoolP256r1,"2b240303020801010b":Q.curve.brainpoolP384r1,"2b240303020801010d":Q.curve.brainpoolP512r1};class Ot{constructor(e){if(e instanceof Ot)this.oid=e.oid;else if(M.isArray(e)||M.isUint8Array(e)){if(6===(e=new Uint8Array(e))[0]){if(e[1]!==e.length-2)throw Error("Length mismatch in DER encoded oid");e=e.subarray(2)}this.oid=e}else this.oid=""}read(e){if(e.length>=1){const t=e[0];if(e.length>=1+t)return this.oid=e.subarray(1,1+t),1+this.oid.length}throw Error("Invalid oid")}write(){return M.concatUint8Array([new Uint8Array([this.oid.length]),this.oid])}toHex(){return M.uint8ArrayToHex(this.oid)}getName(){const e=Nt[this.toHex()];if(!e)throw Error("Unknown curve object identifier.");return e}}function _t(e){let t,r=0;const n=e[0];return n<192?([r]=e,t=1):n<255?(r=(e[0]-192<<8)+e[1]+192,t=2):255===n&&(r=M.readNumber(e.subarray(1,5)),t=5),{len:r,offset:t}}function Ht(e){return e<192?new Uint8Array([e]):e>191&&e<8384?new Uint8Array([192+(e-192>>8),e-192&255]):M.concatUint8Array([new Uint8Array([255]),M.writeNumber(e,4)])}function zt(e){if(e<0||e>30)throw Error("Partial Length power must be between 1 and 30");return new Uint8Array([224+e])}function Gt(e){return new Uint8Array([192|e])}function qt(e,t){return M.concatUint8Array([Gt(e),Ht(t)])}function jt(e){return[Q.packet.literalData,Q.packet.compressedData,Q.packet.symmetricallyEncryptedData,Q.packet.symEncryptedIntegrityProtectedData,Q.packet.aeadEncryptedData].includes(e)}async function Vt(e,t){const r=P(e);let n,i;try{const s=await r.peekBytes(2);if(!s||s.length<2||!(128&s[0]))throw Error("Error during parsing. This message / key probably does not conform to a valid OpenPGP format.");const a=await r.readByte();let o,c,u=-1,h=-1;h=0,64&a&&(h=1),h?u=63&a:(u=(63&a)>>2,c=3&a);const l=jt(u);let y,f=null;if(l){if("array"===M.isStream(e)){const e=new ArrayStream;n=D(e),f=e}else{const e=new TransformStream;n=D(e.writable),f=e.readable}i=t({tag:u,packet:f})}else f=[];do{if(h){const e=await r.readByte();if(y=!1,e<192)o=e;else if(e>=192&&e<224)o=(e-192<<8)+await r.readByte()+192;else if(e>223&&e<255){if(o=1<<(31&e),y=!0,!l)throw new TypeError("This packet type does not support partial lengths.")}else o=await r.readByte()<<24|await r.readByte()<<16|await r.readByte()<<8|await r.readByte()}else switch(c){case 0:o=await r.readByte();break;case 1:o=await r.readByte()<<8|await r.readByte();break;case 2:o=await r.readByte()<<24|await r.readByte()<<16|await r.readByte()<<8|await r.readByte();break;default:o=1/0}if(o>0){let e=0;for(;;){n&&await n.ready;const{done:t,value:i}=await r.read();if(t){if(o===1/0)break;throw Error("Unexpected end of packet")}const s=o===1/0?i:i.subarray(0,o-e);if(n?await n.write(s):f.push(s),e+=i.length,e>=o){r.unshift(i.subarray(o-e+i.length));break}}}}while(y);const g=await r.peekBytes(l?1/0:2);return n?(await n.ready,await n.close()):(f=M.concatUint8Array(f),await t({tag:u,packet:f})),!g||!g.length}catch(e){if(n)return await n.abort(e),!0;throw e}finally{n&&await i,r.releaseLock()}}class Yt extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,Yt),this.name="UnsupportedError"}}class Zt extends Yt{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,Yt),this.name="UnknownPacketError"}}class Wt{constructor(e,t){this.tag=e,this.rawContent=t}write(){return this.rawContent}}
3
- /*! noble-ed25519 - MIT License (c) 2019 Paul Miller (paulmillr.com) */const Jt=BigInt(0),Xt=BigInt(1),$t=BigInt(2),er=BigInt(8),tr=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),rr=Object.freeze({a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),l:tr,n:tr,h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")}),nr=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),ir=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742");const sr=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),ar=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),or=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),cr=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");class ur{constructor(e,t,r,n){this.x=e,this.y=t,this.z=r,this.t=n}static fromAffine(e){if(!(e instanceof dr))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return e.equals(dr.ZERO)?ur.ZERO:new ur(e.x,e.y,Xt,Cr(e.x*e.y))}static toAffineBatch(e){const t=function(e,t=rr.P){const r=Array(e.length),n=e.reduce(((e,n,i)=>n===Jt?e:(r[i]=e,Cr(e*n,t))),Xt),i=Ur(n,t);return e.reduceRight(((e,n,i)=>n===Jt?e:(r[i]=Cr(e*r[i],t),Cr(e*n,t))),i),r}(e.map((e=>e.z)));return e.map(((e,r)=>e.toAffine(t[r])))}static normalizeZ(e){return this.toAffineBatch(e).map(this.fromAffine)}equals(e){lr(e);const{x:t,y:r,z:n}=this,{x:i,y:s,z:a}=e,o=Cr(t*a),c=Cr(i*n),u=Cr(r*a),h=Cr(s*n);return o===c&&u===h}negate(){return new ur(Cr(-this.x),this.y,this.z,Cr(-this.t))}double(){const{x:e,y:t,z:r}=this,{a:n}=rr,i=Cr(e*e),s=Cr(t*t),a=Cr($t*Cr(r*r)),o=Cr(n*i),c=e+t,u=Cr(Cr(c*c)-i-s),h=o+s,l=h-a,y=o-s,f=Cr(u*l),g=Cr(h*y),p=Cr(u*y),d=Cr(l*h);return new ur(f,g,d,p)}add(e){lr(e);const{x:t,y:r,z:n,t:i}=this,{x:s,y:a,z:o,t:c}=e,u=Cr((r-t)*(a+s)),h=Cr((r+t)*(a-s)),l=Cr(h-u);if(l===Jt)return this.double();const y=Cr(n*$t*c),f=Cr(i*$t*o),g=f+y,p=h+u,d=f-y,A=Cr(g*l),w=Cr(p*d),m=Cr(g*d),b=Cr(l*p);return new ur(A,w,b,m)}subtract(e){return this.add(e.negate())}precomputeWindow(e){const t=1+256/e,r=[];let n=this,i=n;for(let s=0;s<t;s++){i=n,r.push(i);for(let t=1;t<2**(e-1);t++)i=i.add(n),r.push(i);n=i.double()}return r}wNAF(e,t){!t&&this.equals(ur.BASE)&&(t=dr.BASE);const r=t&&t._WINDOW_SIZE||1;if(256%r)throw Error("Point#wNAF: Invalid precomputation window, must be power of 2");let n=t&&pr.get(t);n||(n=this.precomputeWindow(r),t&&1!==r&&(n=ur.normalizeZ(n),pr.set(t,n)));let i=ur.ZERO,s=ur.BASE;const a=1+256/r,o=2**(r-1),c=BigInt(2**r-1),u=2**r,h=BigInt(r);for(let t=0;t<a;t++){const r=t*o;let a=Number(e&c);e>>=h,a>o&&(a-=u,e+=Xt);const l=r,y=r+Math.abs(a)-1,f=t%2!=0,g=a<0;0===a?s=s.add(hr(f,n[l])):i=i.add(hr(g,n[y]))}return ur.normalizeZ([i,s])[0]}multiply(e,t){return this.wNAF(Tr(e,rr.l),t)}multiplyUnsafe(e){let t=Tr(e,rr.l,!1);const r=ur.BASE,n=ur.ZERO;if(t===Jt)return n;if(this.equals(n)||t===Xt)return this;if(this.equals(r))return this.wNAF(t);let i=n,s=this;for(;t>Jt;)t&Xt&&(i=i.add(s)),s=s.double(),t>>=Xt;return i}isSmallOrder(){return this.multiplyUnsafe(rr.h).equals(ur.ZERO)}isTorsionFree(){let e=this.multiplyUnsafe(rr.l/$t).double();return rr.l%$t&&(e=e.add(this)),e.equals(ur.ZERO)}toAffine(e){const{x:t,y:r,z:n}=this,i=this.equals(ur.ZERO);null==e&&(e=i?er:Ur(n));const s=Cr(t*e),a=Cr(r*e),o=Cr(n*e);if(i)return dr.ZERO;if(o!==Xt)throw Error("invZ was invalid");return new dr(s,a)}fromRistrettoBytes(){fr()}toRistrettoBytes(){fr()}fromRistrettoHash(){fr()}}function hr(e,t){const r=t.negate();return e?r:t}function lr(e){if(!(e instanceof ur))throw new TypeError("ExtendedPoint expected")}function yr(e){if(!(e instanceof gr))throw new TypeError("RistrettoPoint expected")}function fr(){throw Error("Legacy method: switch to RistrettoPoint")}ur.BASE=new ur(rr.Gx,rr.Gy,Xt,Cr(rr.Gx*rr.Gy)),ur.ZERO=new ur(Jt,Xt,Xt,Jt);class gr{constructor(e){this.ep=e}static calcElligatorRistrettoMap(e){const{d:t}=rr,r=Cr(ir*e*e),n=Cr((r+Xt)*or);let i=BigInt(-1);const s=Cr((i-t*r)*Cr(r+t));let{isValid:a,value:o}=Dr(n,s),c=Cr(o*e);Br(c)||(c=Cr(-c)),a||(o=c),a||(i=r);const u=Cr(i*(r-Xt)*cr-s),h=o*o,l=Cr((o+o)*s),y=Cr(u*sr),f=Cr(Xt-h),g=Cr(Xt+h);return new ur(Cr(l*g),Cr(f*y),Cr(y*g),Cr(l*f))}static hashToCurve(e){const t=Kr((e=Rr(e,64)).slice(0,32)),r=this.calcElligatorRistrettoMap(t),n=Kr(e.slice(32,64)),i=this.calcElligatorRistrettoMap(n);return new gr(r.add(i))}static fromHex(e){e=Rr(e,32);const{a:t,d:r}=rr,n="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",i=Kr(e);if(!function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}(vr(i),e)||Br(i))throw Error(n);const s=Cr(i*i),a=Cr(Xt+t*s),o=Cr(Xt-t*s),c=Cr(a*a),u=Cr(o*o),h=Cr(t*r*c-u),{isValid:l,value:y}=xr(Cr(h*u)),f=Cr(y*o),g=Cr(y*f*h);let p=Cr((i+i)*f);Br(p)&&(p=Cr(-p));const d=Cr(a*g),A=Cr(p*d);if(!l||Br(A)||d===Jt)throw Error(n);return new gr(new ur(p,d,Xt,A))}toRawBytes(){let{x:e,y:t,z:r,t:n}=this.ep;const i=Cr(Cr(r+t)*Cr(r-t)),s=Cr(e*t),a=Cr(s*s),{value:o}=xr(Cr(i*a)),c=Cr(o*i),u=Cr(o*s),h=Cr(c*u*n);let l;if(Br(n*h)){let r=Cr(t*ir),n=Cr(e*ir);e=r,t=n,l=Cr(c*ar)}else l=u;Br(e*h)&&(t=Cr(-t));let y=Cr((r-t)*l);return Br(y)&&(y=Cr(-y)),vr(y)}toHex(){return br(this.toRawBytes())}toString(){return this.toHex()}equals(e){yr(e);const t=this.ep,r=e.ep,n=Cr(t.x*r.y)===Cr(t.y*r.x),i=Cr(t.y*r.y)===Cr(t.x*r.x);return n||i}add(e){return yr(e),new gr(this.ep.add(e.ep))}subtract(e){return yr(e),new gr(this.ep.subtract(e.ep))}multiply(e){return new gr(this.ep.multiply(e))}multiplyUnsafe(e){return new gr(this.ep.multiplyUnsafe(e))}}gr.BASE=new gr(ur.BASE),gr.ZERO=new gr(ur.ZERO);const pr=new WeakMap;class dr{constructor(e,t){this.x=e,this.y=t}_setWindowSize(e){this._WINDOW_SIZE=e,pr.delete(this)}static fromHex(e,t=!0){const{d:r,P:n}=rr,i=(e=Rr(e,32)).slice();i[31]=-129&e[31];const s=Sr(i);if(t&&s>=n)throw Error("Expected 0 < hex < P");if(!t&&s>=nr)throw Error("Expected 0 < hex < 2**256");const a=Cr(s*s),o=Cr(a-Xt),c=Cr(r*a+Xt);let{isValid:u,value:h}=Dr(o,c);if(!u)throw Error("Point.fromHex: invalid y coordinate");const l=(h&Xt)===Xt;return!!(128&e[31])!==l&&(h=Cr(-h)),new dr(h,s)}static async fromPrivateKey(e){return(await Lr(e)).point}toRawBytes(){const e=vr(this.y);return e[31]|=this.x&Xt?128:0,e}toHex(){return br(this.toRawBytes())}toX25519(){const{y:e}=this;return vr(Cr((Xt+e)*Ur(Xt-e)))}isTorsionFree(){return ur.fromAffine(this).isTorsionFree()}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new dr(Cr(-this.x),this.y)}add(e){return ur.fromAffine(this).add(ur.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return ur.fromAffine(this).multiply(e,this).toAffine()}}dr.BASE=new dr(rr.Gx,rr.Gy),dr.ZERO=new dr(Jt,Xt);let Ar=class e{constructor(e,t){this.r=e,this.s=t,this.assertValidity()}static fromHex(t){const r=Rr(t,64),n=dr.fromHex(r.slice(0,32),!1),i=Sr(r.slice(32,64));return new e(n,i)}assertValidity(){const{r:e,s:t}=this;if(!(e instanceof dr))throw Error("Expected Point instance");return Tr(t,rr.l,!1),this}toRawBytes(){const e=new Uint8Array(64);return e.set(this.r.toRawBytes()),e.set(vr(this.s),32),e}toHex(){return br(this.toRawBytes())}};function wr(...e){if(!e.every((e=>e instanceof Uint8Array)))throw Error("Expected Uint8Array list");if(1===e.length)return e[0];const t=e.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(t);for(let t=0,n=0;t<e.length;t++){const i=e[t];r.set(i,n),n+=i.length}return r}const mr=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function br(e){if(!(e instanceof Uint8Array))throw Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=mr[e[r]];return t}function kr(e){if("string"!=typeof e)throw new TypeError("hexToBytes: expected string, got "+typeof e);if(e.length%2)throw Error("hexToBytes: received invalid unpadded hex");const t=new Uint8Array(e.length/2);for(let r=0;r<t.length;r++){const n=2*r,i=e.slice(n,n+2),s=Number.parseInt(i,16);if(Number.isNaN(s)||s<0)throw Error("Invalid byte sequence");t[r]=s}return t}function Er(e){return kr(e.toString(16).padStart(64,"0"))}function vr(e){return Er(e).reverse()}function Br(e){return(Cr(e)&Xt)===Xt}function Sr(e){if(!(e instanceof Uint8Array))throw Error("Expected Uint8Array");return BigInt("0x"+br(Uint8Array.from(e).reverse()))}const Ir=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Kr(e){return Cr(Sr(e)&Ir)}function Cr(e,t=rr.P){const r=e%t;return r>=Jt?r:t+r}function Ur(e,t=rr.P){if(e===Jt||t<=Jt)throw Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=Cr(e,t),n=t,i=Jt,s=Xt;for(;r!==Jt;){const e=n%r,t=i-s*(n/r);n=r,r=e,i=s,s=t}if(n!==Xt)throw Error("invert: does not exist");return Cr(i,t)}function Pr(e,t){const{P:r}=rr;let n=e;for(;t-- >Jt;)n*=n,n%=r;return n}function Dr(e,t){const r=Cr(t*t*t),n=function(e){const{P:t}=rr,r=BigInt(5),n=BigInt(10),i=BigInt(20),s=BigInt(40),a=BigInt(80),o=e*e%t*e%t,c=Pr(o,$t)*o%t,u=Pr(c,Xt)*e%t,h=Pr(u,r)*u%t,l=Pr(h,n)*h%t,y=Pr(l,i)*l%t,f=Pr(y,s)*y%t,g=Pr(f,a)*f%t,p=Pr(g,a)*f%t,d=Pr(p,n)*h%t;return{pow_p_5_8:Pr(d,$t)*e%t,b2:o}}(e*Cr(r*r*t)).pow_p_5_8;let i=Cr(e*r*n);const s=Cr(t*i*i),a=i,o=Cr(i*ir),c=s===e,u=s===Cr(-e),h=s===Cr(-e*ir);return c&&(i=a),(u||h)&&(i=o),Br(i)&&(i=Cr(-i)),{isValid:c||u,value:i}}function xr(e){return Dr(Xt,e)}function Qr(e){return Cr(Sr(e),rr.l)}function Rr(e,t){const r=e instanceof Uint8Array?Uint8Array.from(e):kr(e);if("number"==typeof t&&r.length!==t)throw Error(`Expected ${t} bytes`);return r}function Tr(e,t,r=!0){if(!t)throw new TypeError("Specify max value");if("number"==typeof e&&Number.isSafeInteger(e)&&(e=BigInt(e)),"bigint"==typeof e&&e<t)if(r){if(Jt<e)return e}else if(Jt<=e)return e;throw new TypeError("Expected valid scalar: 0 < scalar < max")}let Mr;async function Lr(e){return function(e){const t=function(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}(e.slice(0,32)),r=e.slice(32,64),n=Qr(t),i=dr.BASE.multiply(n),s=i.toRawBytes();return{head:t,prefix:r,scalar:n,point:i,pointBytes:s}}(await Or.sha512(function(e){if(32!==(e="bigint"==typeof e||"number"==typeof e?Er(Tr(e,nr)):Rr(e)).length)throw Error("Expected 32 bytes");return e}(e)))}async function Fr(e,t,r){const{r:n,SB:i,msg:s,pub:a}=function(e,t,r){t=Rr(t),r instanceof dr||(r=dr.fromHex(r,!1));const{r:n,s:i}=e instanceof Ar?e.assertValidity():Ar.fromHex(e);return{r:n,s:i,SB:ur.BASE.multiplyUnsafe(i),pub:r,msg:t}}(e,t,r),o=await Or.sha512(n.toRawBytes(),a.toRawBytes(),s);return function(e,t,r,n){const i=Qr(n),s=ur.fromAffine(e).multiplyUnsafe(i);return ur.fromAffine(t).add(s).subtract(r).multiplyUnsafe(rr.h).equals(ur.ZERO)}(a,n,i,o)}dr.BASE._setWindowSize(8);const Nr={node:null,web:"object"==typeof self&&"crypto"in self?self.crypto:void 0},Or={bytesToHex:br,hexToBytes:kr,concatBytes:wr,getExtendedPublicKey:Lr,mod:Cr,invert:Ur,TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],hashToPrivateScalar:e=>{if((e=Rr(e)).length<40||e.length>1024)throw Error("Expected 40-1024 bytes of private key as per FIPS 186");return Cr(Sr(e),rr.l-Xt)+Xt},randomBytes:(e=32)=>{if(Nr.web)return Nr.web.getRandomValues(new Uint8Array(e));throw Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>Or.randomBytes(32),sha512:async(...e)=>{const t=wr(...e);if(Nr.web){const e=await Nr.web.subtle.digest("SHA-512",t.buffer);return new Uint8Array(e)}throw Error("The environment doesn't have sha512 function")},precompute(e=8,t=dr.BASE){const r=t.equals(dr.BASE)?t:new dr(t.x,t.y);return r._setWindowSize(e),r.multiply($t),r},sha512Sync:void 0};async function _r(e){switch(e){case Q.publicKey.ed25519:try{const e=M.getWebCrypto(),t=await e.generateKey("Ed25519",!0,["sign","verify"]),r=await e.exportKey("jwk",t.privateKey),n=await e.exportKey("jwk",t.publicKey);return{A:new Uint8Array(H(n.x)),seed:H(r.d)}}catch(t){if("NotSupportedError"!==t.name&&"OperationError"!==t.name)throw t;const r=ye(qr(e)),{publicKey:n}=We.sign.keyPair.fromSeed(r);return{A:n,seed:r}}case Q.publicKey.ed448:{const e=await M.getNobleCurve(Q.publicKey.ed448),t=e.utils.randomPrivateKey();return{A:e.getPublicKey(t),seed:t}}default:throw Error("Unsupported EdDSA algorithm")}}async function Hr(e,t,r,n,i,s){if(Qe(t)<Qe(jr(e)))throw Error("Hash algorithm too weak for EdDSA.");switch(e){case Q.publicKey.ed25519:try{const t=M.getWebCrypto(),r=Yr(e,n,i),a=await t.importKey("jwk",r,"Ed25519",!1,["sign"]);return{RS:new Uint8Array(await t.sign("Ed25519",a,s))}}catch(e){if("NotSupportedError"!==e.name)throw e;const t=M.concatUint8Array([i,n]);return{RS:We.sign.detached(s,t)}}case Q.publicKey.ed448:return{RS:(await M.getNobleCurve(Q.publicKey.ed448)).sign(s,i)};default:throw Error("Unsupported EdDSA algorithm")}}async function zr(e,t,{RS:r},n,i,s){if(Qe(t)<Qe(jr(e)))throw Error("Hash algorithm too weak for EdDSA.");switch(e){case Q.publicKey.ed25519:try{const t=M.getWebCrypto(),n=Vr(e,i),a=await t.importKey("jwk",n,"Ed25519",!1,["verify"]);return await t.verify("Ed25519",a,r,s)}catch(e){if("NotSupportedError"!==e.name)throw e;return Fr(r,s,i)}case Q.publicKey.ed448:return(await M.getNobleCurve(Q.publicKey.ed448)).verify(r,s,i);default:throw Error("Unsupported EdDSA algorithm")}}async function Gr(e,t,r){switch(e){case Q.publicKey.ed25519:{const{publicKey:e}=We.sign.keyPair.fromSeed(r);return M.equalsUint8Array(t,e)}case Q.publicKey.ed448:{const e=(await M.getNobleCurve(Q.publicKey.ed448)).getPublicKey(r);return M.equalsUint8Array(t,e)}default:return!1}}function qr(e){switch(e){case Q.publicKey.ed25519:return 32;case Q.publicKey.ed448:return 57;default:throw Error("Unsupported EdDSA algorithm")}}function jr(e){switch(e){case Q.publicKey.ed25519:return Q.hash.sha256;case Q.publicKey.ed448:return Q.hash.sha512;default:throw Error("Unknown EdDSA algo")}}Object.defineProperties(Or,{sha512Sync:{configurable:!1,get:()=>Mr,set(e){Mr||(Mr=e)}}});const Vr=(e,t)=>{if(e===Q.publicKey.ed25519){return{kty:"OKP",crv:"Ed25519",x:z(t),ext:!0}}throw Error("Unsupported EdDSA algorithm")},Yr=(e,t,r)=>{if(e===Q.publicKey.ed25519){const n=Vr(e,t);return n.d=z(r),n}throw Error("Unsupported EdDSA algorithm")};var Zr=/*#__PURE__*/Object.freeze({__proto__:null,generate:_r,getPayloadSize:qr,getPreferredHashAlgo:jr,sign:Hr,validateParams:Gr,verify:zr});function Wr(e){return e instanceof Uint8Array||null!=e&&"object"==typeof e&&"Uint8Array"===e.constructor.name}function Jr(e,...t){if(!Wr(e))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function Xr(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function $r(e,t){Jr(e);const r=t.outputLen;if(e.length<r)throw Error("digestInto() expects output buffer of length at least "+r)}
4
- /*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */const en=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),tn=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),rn=e=>new DataView(e.buffer,e.byteOffset,e.byteLength);if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw Error("Non little-endian hardware is not supported");function nn(e){if("string"==typeof e)e=function(e){if("string"!=typeof e)throw Error("string expected, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e);else{if(!Wr(e))throw Error("Uint8Array expected, got "+typeof e);e=un(e)}return e}function sn(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return 0===r}const an=(e,t)=>(Object.assign(t,e),t);function on(e,t,r,n){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,r,n);const i=BigInt(32),s=BigInt(4294967295),a=Number(r>>i&s),o=Number(r&s);e.setUint32(t+0,a,n),e.setUint32(t+4,o,n)}function cn(e){return e.byteOffset%4==0}function un(e){return Uint8Array.from(e)}function hn(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}const ln=16,yn=/* @__PURE__ */new Uint8Array(16),fn=tn(yn),gn=e=>(e>>>0&255)<<24|(e>>>8&255)<<16|(e>>>16&255)<<8|e>>>24&255;class pn{constructor(e,t){this.blockLen=ln,this.outputLen=ln,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,Jr(e=nn(e),16);const r=rn(e);let n=r.getUint32(0,!1),i=r.getUint32(4,!1),s=r.getUint32(8,!1),a=r.getUint32(12,!1);const o=[];for(let e=0;e<128;e++)o.push({s0:gn(n),s1:gn(i),s2:gn(s),s3:gn(a)}),({s0:n,s1:i,s2:s,s3:a}={s3:(h=s)<<31|(l=a)>>>1,s2:(u=i)<<31|h>>>1,s1:(c=n)<<31|u>>>1,s0:c>>>1^225<<24&-(1&l)});var c,u,h,l;const y=(e=>e>65536?8:e>1024?4:2)(t||1024);if(![1,2,4,8].includes(y))throw Error(`ghash: wrong window size=${y}, should be 2, 4 or 8`);this.W=y;const f=128/y,g=this.windowSize=2**y,p=[];for(let e=0;e<f;e++)for(let t=0;t<g;t++){let r=0,n=0,i=0,s=0;for(let a=0;a<y;a++){if(!(t>>>y-a-1&1))continue;const{s0:c,s1:u,s2:h,s3:l}=o[y*e+a];r^=c,n^=u,i^=h,s^=l}p.push({s0:r,s1:n,s2:i,s3:s})}this.t=p}_updateBlock(e,t,r,n){e^=this.s0,t^=this.s1,r^=this.s2,n^=this.s3;const{W:i,t:s,windowSize:a}=this;let o=0,c=0,u=0,h=0;const l=(1<<i)-1;let y=0;for(const f of[e,t,r,n])for(let e=0;e<4;e++){const t=f>>>8*e&255;for(let e=8/i-1;e>=0;e--){const r=t>>>i*e&l,{s0:n,s1:f,s2:g,s3:p}=s[y*a+r];o^=n,c^=f,u^=g,h^=p,y+=1}}this.s0=o,this.s1=c,this.s2=u,this.s3=h}update(e){e=nn(e),Xr(this);const t=tn(e),r=Math.floor(e.length/ln),n=e.length%ln;for(let e=0;e<r;e++)this._updateBlock(t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]);return n&&(yn.set(e.subarray(r*ln)),this._updateBlock(fn[0],fn[1],fn[2],fn[3]),hn(fn)),this}destroy(){const{t:e}=this;for(const t of e)t.s0=0,t.s1=0,t.s2=0,t.s3=0}digestInto(e){Xr(this),$r(e,this),this.finished=!0;const{s0:t,s1:r,s2:n,s3:i}=this,s=tn(e);return s[0]=t,s[1]=r,s[2]=n,s[3]=i,e}digest(){const e=new Uint8Array(ln);return this.digestInto(e),this.destroy(),e}}class dn extends pn{constructor(e,t){const r=function(e){e.reverse();const t=1&e[15];let r=0;for(let t=0;t<e.length;t++){const n=e[t];e[t]=n>>>1|r,r=(1&n)<<7}return e[0]^=225&-t,e}(un(e=nn(e)));super(r,t),hn(r)}update(e){e=nn(e),Xr(this);const t=tn(e),r=e.length%ln,n=Math.floor(e.length/ln);for(let e=0;e<n;e++)this._updateBlock(gn(t[4*e+3]),gn(t[4*e+2]),gn(t[4*e+1]),gn(t[4*e+0]));return r&&(yn.set(e.subarray(n*ln)),this._updateBlock(gn(fn[3]),gn(fn[2]),gn(fn[1]),gn(fn[0])),hn(fn)),this}digestInto(e){Xr(this),$r(e,this),this.finished=!0;const{s0:t,s1:r,s2:n,s3:i}=this,s=tn(e);return s[0]=t,s[1]=r,s[2]=n,s[3]=i,e.reverse()}}function An(e){const t=(t,r)=>e(r,t.length).update(nn(t)).digest(),r=e(new Uint8Array(16),0);return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=(t,r)=>e(t,r),t}const wn=An(((e,t)=>new pn(e,t)));An(((e,t)=>new dn(e,t)));const mn=16,bn=new Uint8Array(mn),kn=283;function En(e){return e<<1^kn&-(e>>7)}function vn(e,t){let r=0;for(;t>0;t>>=1)r^=e&-(1&t),e=En(e);return r}const Bn=/* @__PURE__ */(()=>{const e=new Uint8Array(256);for(let t=0,r=1;t<256;t++,r^=En(r))e[t]=r;const t=new Uint8Array(256);t[0]=99;for(let r=0;r<255;r++){let n=e[255-r];n|=n<<8,t[e[r]]=255&(n^n>>4^n>>5^n>>6^n>>7^99)}return hn(e),t})(),Sn=/* @__PURE__ */Bn.map(((e,t)=>Bn.indexOf(t))),In=e=>e<<24|e>>>8,Kn=e=>e<<8|e>>>24,Cn=e=>e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255;function Un(e,t){if(256!==e.length)throw Error("Wrong sbox length");const r=new Uint32Array(256).map(((r,n)=>t(e[n]))),n=r.map(Kn),i=n.map(Kn),s=i.map(Kn),a=new Uint32Array(65536),o=new Uint32Array(65536),c=new Uint16Array(65536);for(let t=0;t<256;t++)for(let u=0;u<256;u++){const h=256*t+u;a[h]=r[t]^n[u],o[h]=i[t]^s[u],c[h]=e[t]<<8|e[u]}return{sbox:e,sbox2:c,T0:r,T1:n,T2:i,T3:s,T01:a,T23:o}}const Pn=/* @__PURE__ */Un(Bn,(e=>vn(e,3)<<24|e<<16|e<<8|vn(e,2))),Dn=/* @__PURE__ */Un(Sn,(e=>vn(e,11)<<24|vn(e,13)<<16|vn(e,9)<<8|vn(e,14))),xn=/* @__PURE__ */(()=>{const e=new Uint8Array(16);for(let t=0,r=1;t<16;t++,r=En(r))e[t]=r;return e})();function Qn(e){Jr(e);const t=e.length;if(![16,24,32].includes(t))throw Error("aes: wrong key size: should be 16, 24 or 32, got: "+t);const{sbox2:r}=Pn,n=[];cn(e)||n.push(e=un(e));const i=tn(e),s=i.length,a=e=>Mn(r,e,e,e,e),o=new Uint32Array(t+28);o.set(i);for(let e=s;e<o.length;e++){let t=o[e-1];e%s==0?t=a(In(t))^xn[e/s-1]:s>6&&e%s==4&&(t=a(t)),o[e]=o[e-s]^t}return hn(...n),o}function Rn(e){const t=Qn(e),r=t.slice(),n=t.length,{sbox2:i}=Pn,{T0:s,T1:a,T2:o,T3:c}=Dn;for(let e=0;e<n;e+=4)for(let i=0;i<4;i++)r[e+i]=t[n-e-4+i];hn(t);for(let e=4;e<n-4;e++){const t=r[e],n=Mn(i,t,t,t,t);r[e]=s[255&n]^a[n>>>8&255]^o[n>>>16&255]^c[n>>>24]}return r}function Tn(e,t,r,n,i,s){return e[r<<8&65280|n>>>8&255]^t[i>>>8&65280|s>>>24&255]}function Mn(e,t,r,n,i){return e[255&t|65280&r]|e[n>>>16&255|i>>>16&65280]<<16}function Ln(e,t,r,n,i){const{sbox2:s,T01:a,T23:o}=Pn;let c=0;t^=e[c++],r^=e[c++],n^=e[c++],i^=e[c++];const u=e.length/4-2;for(let s=0;s<u;s++){const s=e[c++]^Tn(a,o,t,r,n,i),u=e[c++]^Tn(a,o,r,n,i,t),h=e[c++]^Tn(a,o,n,i,t,r),l=e[c++]^Tn(a,o,i,t,r,n);t=s,r=u,n=h,i=l}return{s0:e[c++]^Mn(s,t,r,n,i),s1:e[c++]^Mn(s,r,n,i,t),s2:e[c++]^Mn(s,n,i,t,r),s3:e[c++]^Mn(s,i,t,r,n)}}function Fn(e,t,r,n,i){const{sbox2:s,T01:a,T23:o}=Dn;let c=0;t^=e[c++],r^=e[c++],n^=e[c++],i^=e[c++];const u=e.length/4-2;for(let s=0;s<u;s++){const s=e[c++]^Tn(a,o,t,i,n,r),u=e[c++]^Tn(a,o,r,t,i,n),h=e[c++]^Tn(a,o,n,r,t,i),l=e[c++]^Tn(a,o,i,n,r,t);t=s,r=u,n=h,i=l}return{s0:e[c++]^Mn(s,t,i,n,r),s1:e[c++]^Mn(s,r,t,i,n),s2:e[c++]^Mn(s,n,r,t,i),s3:e[c++]^Mn(s,i,n,r,t)}}function Nn(e,t){if(void 0===t)return new Uint8Array(e);if(Jr(t),t.length<e)throw Error(`aes: wrong destination length, expected at least ${e}, got: ${t.length}`);if(!cn(t))throw Error("unaligned dst");return t}function On(e,t,r,n){Jr(t,mn),Jr(r);const i=r.length;n=Nn(i,n);const s=t,a=tn(s);let{s0:o,s1:c,s2:u,s3:h}=Ln(e,a[0],a[1],a[2],a[3]);const l=tn(r),y=tn(n);for(let t=0;t+4<=l.length;t+=4){y[t+0]=l[t+0]^o,y[t+1]=l[t+1]^c,y[t+2]=l[t+2]^u,y[t+3]=l[t+3]^h;let r=1;for(let e=s.length-1;e>=0;e--)r=r+(255&s[e])|0,s[e]=255&r,r>>>=8;({s0:o,s1:c,s2:u,s3:h}=Ln(e,a[0],a[1],a[2],a[3]))}const f=mn*Math.floor(l.length/4);if(f<i){const e=new Uint32Array([o,c,u,h]),t=en(e);for(let e=f,s=0;e<i;e++,s++)n[e]=r[e]^t[s];hn(e)}return n}function _n(e,t,r,n,i){Jr(r,mn),Jr(n),i=Nn(n.length,i);const s=r,a=tn(s),o=rn(s),c=tn(n),u=tn(i),h=t?0:12,l=n.length;let y=o.getUint32(h,t),{s0:f,s1:g,s2:p,s3:d}=Ln(e,a[0],a[1],a[2],a[3]);for(let r=0;r+4<=c.length;r+=4)u[r+0]=c[r+0]^f,u[r+1]=c[r+1]^g,u[r+2]=c[r+2]^p,u[r+3]=c[r+3]^d,y=y+1>>>0,o.setUint32(h,y,t),({s0:f,s1:g,s2:p,s3:d}=Ln(e,a[0],a[1],a[2],a[3]));const A=mn*Math.floor(c.length/4);if(A<l){const e=new Uint32Array([f,g,p,d]),t=en(e);for(let e=A,r=0;e<l;e++,r++)i[e]=n[e]^t[r];hn(e)}return i}const Hn=an({blockSize:16,nonceLength:16},(function(e,t){function r(r,n){if(Jr(r),void 0!==n&&(Jr(n),!cn(n)))throw Error("unaligned destination");const i=Qn(e),s=un(t),a=[i,s];cn(r)||a.push(r=un(r));const o=On(i,s,r,n);return hn(...a),o}return Jr(e),Jr(t,mn),{encrypt:(e,t)=>r(e,t),decrypt:(e,t)=>r(e,t)}}));const zn=an({blockSize:16,nonceLength:16},(function(e,t,r={}){Jr(e),Jr(t,16);const n=!r.disablePadding;return{encrypt(r,i){const s=Qn(e),{b:a,o,out:c}=function(e,t,r){Jr(e);let n=e.length;const i=n%mn;if(!t&&0!==i)throw Error("aec/(cbc-ecb): unpadded plaintext with disabled padding");cn(e)||(e=un(e));const s=tn(e);if(t){let e=mn-i;e||(e=mn),n+=e}const a=Nn(n,r);return{b:s,o:tn(a),out:a}}(r,n,i);let u=t;const h=[s];cn(u)||h.push(u=un(u));const l=tn(u);let y=l[0],f=l[1],g=l[2],p=l[3],d=0;for(;d+4<=a.length;)y^=a[d+0],f^=a[d+1],g^=a[d+2],p^=a[d+3],({s0:y,s1:f,s2:g,s3:p}=Ln(s,y,f,g,p)),o[d++]=y,o[d++]=f,o[d++]=g,o[d++]=p;if(n){const e=function(e){const t=new Uint8Array(16),r=tn(t);t.set(e);const n=mn-e.length;for(let e=mn-n;e<mn;e++)t[e]=n;return r}(r.subarray(4*d));y^=e[0],f^=e[1],g^=e[2],p^=e[3],({s0:y,s1:f,s2:g,s3:p}=Ln(s,y,f,g,p)),o[d++]=y,o[d++]=f,o[d++]=g,o[d++]=p}return hn(...h),c},decrypt(r,i){!function(e){if(Jr(e),e.length%mn!=0)throw Error("aes/(cbc-ecb).decrypt ciphertext should consist of blocks with size 16")}(r);const s=Rn(e);let a=t;const o=[s];cn(a)||o.push(a=un(a));const c=tn(a),u=Nn(r.length,i);cn(r)||o.push(r=un(r));const h=tn(r),l=tn(u);let y=c[0],f=c[1],g=c[2],p=c[3];for(let e=0;e+4<=h.length;){const t=y,r=f,n=g,i=p;y=h[e+0],f=h[e+1],g=h[e+2],p=h[e+3];const{s0:a,s1:o,s2:c,s3:u}=Fn(s,y,f,g,p);l[e++]=a^t,l[e++]=o^r,l[e++]=c^n,l[e++]=u^i}return hn(...o),function(e,t){if(!t)return e;const r=e.length;if(!r)throw Error("aes/pcks5: empty ciphertext not allowed");const n=e[r-1];if(n<=0||n>16)throw Error("aes/pcks5: wrong padding");const i=e.subarray(0,-n);for(let t=0;t<n;t++)if(e[r-t-1]!==n)throw Error("aes/pcks5: wrong padding");return i}(u,n)}}})),Gn=an({blockSize:16,nonceLength:16},(function(e,t){function r(r,n,i){Jr(r);const s=r.length;i=Nn(s,i);const a=Qn(e);let o=t;const c=[a];cn(o)||c.push(o=un(o)),cn(r)||c.push(r=un(r));const u=tn(r),h=tn(i),l=n?h:u,y=tn(o);let f=y[0],g=y[1],p=y[2],d=y[3];for(let e=0;e+4<=u.length;){const{s0:t,s1:r,s2:n,s3:i}=Ln(a,f,g,p,d);h[e+0]=u[e+0]^t,h[e+1]=u[e+1]^r,h[e+2]=u[e+2]^n,h[e+3]=u[e+3]^i,f=l[e++],g=l[e++],p=l[e++],d=l[e++]}const A=mn*Math.floor(u.length/4);if(A<s){({s0:f,s1:g,s2:p,s3:d}=Ln(a,f,g,p,d));const e=en(new Uint32Array([f,g,p,d]));for(let t=A,n=0;t<s;t++,n++)i[t]=r[t]^e[n];hn(e)}return hn(...c),i}return Jr(e),Jr(t,16),{encrypt:(e,t)=>r(e,!0,t),decrypt:(e,t)=>r(e,!1,t)}}));const qn=an({blockSize:16,nonceLength:12,tagLength:16},(function(e,t,r){if(Jr(e),Jr(t),void 0!==r&&Jr(r),t.length<8)throw Error("aes/gcm: invalid nonce length");const n=16;function i(e,t,n){const i=function(e,t,r,n,i){const s=null==i?0:i.length,a=e.create(r,n.length+s);i&&a.update(i),a.update(n);const o=new Uint8Array(16),c=rn(o);i&&on(c,0,BigInt(8*s),t),on(c,8,BigInt(8*n.length),t),a.update(o);const u=a.digest();return hn(o),u}(wn,!1,e,n,r);for(let e=0;e<t.length;e++)i[e]^=t[e];return i}function s(){const r=Qn(e),n=bn.slice(),i=bn.slice();if(_n(r,!1,i,i,n),12===t.length)i.set(t);else{const e=bn.slice();on(rn(e),8,BigInt(8*t.length),!1);const r=wn.create(n).update(t).update(e);r.digestInto(i),r.destroy()}return{xk:r,authKey:n,counter:i,tagMask:_n(r,!1,i,bn)}}return{encrypt(e){Jr(e);const{xk:t,authKey:r,counter:a,tagMask:o}=s(),c=new Uint8Array(e.length+n),u=[t,r,a,o];cn(e)||u.push(e=un(e)),_n(t,!1,a,e,c);const h=i(r,o,c.subarray(0,c.length-n));return u.push(h),c.set(h,e.length),hn(...u),c},decrypt(e){if(Jr(e),e.length<n)throw Error("aes/gcm: ciphertext less than tagLen (16)");const{xk:t,authKey:r,counter:a,tagMask:o}=s(),c=[t,r,o,a];cn(e)||c.push(e=un(e));const u=e.subarray(0,-16),h=e.subarray(-16),l=i(r,o,u);if(c.push(l),!sn(l,h))throw Error("aes/gcm: invalid ghash tag");const y=_n(t,!1,a,u);return hn(...c),y}}}));function jn(e){return null!=e&&"object"==typeof e&&(e instanceof Uint32Array||"Uint32Array"===e.constructor.name)}function Vn(e,t){if(Jr(t,16),!jn(e))throw Error("_encryptBlock accepts result of expandKeyLE");const r=tn(t);let{s0:n,s1:i,s2:s,s3:a}=Ln(e,r[0],r[1],r[2],r[3]);return r[0]=n,r[1]=i,r[2]=s,r[3]=a,t}function Yn(e,t){if(Jr(t,16),!jn(e))throw Error("_decryptBlock accepts result of expandKeyLE");const r=tn(t);let{s0:n,s1:i,s2:s,s3:a}=Fn(e,r[0],r[1],r[2],r[3]);return r[0]=n,r[1]=i,r[2]=s,r[3]=a,t}const Zn={encrypt(e,t){if(t.length>=2**32)throw Error("plaintext should be less than 4gb");const r=Qn(e);if(16===t.length)Vn(r,t);else{const e=tn(t);let n=e[0],i=e[1];for(let t=0,s=1;t<6;t++)for(let t=2;t<e.length;t+=2,s++){const{s0:a,s1:o,s2:c,s3:u}=Ln(r,n,i,e[t],e[t+1]);n=a,i=o^Cn(s),e[t]=c,e[t+1]=u}e[0]=n,e[1]=i}r.fill(0)},decrypt(e,t){if(t.length-8>=2**32)throw Error("ciphertext should be less than 4gb");const r=Rn(e),n=t.length/8-1;if(1===n)Yn(r,t);else{const e=tn(t);let i=e[0],s=e[1];for(let t=0,a=6*n;t<6;t++)for(let t=2*n;t>=1;t-=2,a--){s^=Cn(a);const{s0:n,s1:o,s2:c,s3:u}=Fn(r,i,s,e[t],e[t+1]);i=n,s=o,e[t]=c,e[t+1]=u}e[0]=i,e[1]=s}r.fill(0)}},Wn=new Uint8Array(8).fill(166),Jn=an({blockSize:8},(e=>({encrypt(t){if(Jr(t),!t.length||t.length%8!=0)throw Error("invalid plaintext length");if(8===t.length)throw Error("8-byte keys not allowed in AESKW, use AESKWP instead");const r=function(...e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];Jr(n),t+=n.length}const r=new Uint8Array(t);for(let t=0,n=0;t<e.length;t++){const i=e[t];r.set(i,n),n+=i.length}return r}(Wn,t);return Zn.encrypt(e,r),r},decrypt(t){if(Jr(t),t.length%8!=0||t.length<24)throw Error("invalid ciphertext length");const r=un(t);if(Zn.decrypt(e,r),!sn(r.subarray(0,8),Wn))throw Error("integrity check failed");return r.subarray(0,8).fill(0),r.subarray(8)}}))),Xn={expandKeyLE:Qn,expandKeyDecLE:Rn,encrypt:Ln,decrypt:Fn,encryptBlock:Vn,decryptBlock:Yn,ctrCounter:On,ctr32:_n};async function $n(e){switch(e){case Q.symmetric.aes128:case Q.symmetric.aes192:case Q.symmetric.aes256:throw Error("Not a legacy cipher");case Q.symmetric.cast5:case Q.symmetric.blowfish:case Q.symmetric.twofish:case Q.symmetric.tripledes:{const{legacyCiphers:t}=await Promise.resolve().then((function(){return Of})),r=Q.read(Q.symmetric,e),n=t.get(r);if(!n)throw Error("Unsupported cipher algorithm");return n}default:throw Error("Unsupported cipher algorithm")}}function ei(e){switch(e){case Q.symmetric.aes128:case Q.symmetric.aes192:case Q.symmetric.aes256:case Q.symmetric.twofish:return 16;case Q.symmetric.blowfish:case Q.symmetric.cast5:case Q.symmetric.tripledes:return 8;default:throw Error("Unsupported cipher")}}function ti(e){switch(e){case Q.symmetric.aes128:case Q.symmetric.blowfish:case Q.symmetric.cast5:return 16;case Q.symmetric.aes192:case Q.symmetric.tripledes:return 24;case Q.symmetric.aes256:case Q.symmetric.twofish:return 32;default:throw Error("Unsupported cipher")}}function ri(e){return{keySize:ti(e),blockSize:ei(e)}}const ni=M.getWebCrypto();async function ii(e,t,r){const{keySize:n}=ri(e);if(!M.isAES(e)||t.length!==n)throw Error("Unexpected algorithm or key size");try{const e=await ni.importKey("raw",t,{name:"AES-KW"},!1,["wrapKey"]),n=await ni.importKey("raw",r,{name:"HMAC",hash:"SHA-256"},!0,["sign"]),i=await ni.wrapKey("raw",n,e,{name:"AES-KW"});return new Uint8Array(i)}catch(e){if("NotSupportedError"!==e.name&&(24!==t.length||"OperationError"!==e.name))throw e;M.printDebugError("Browser did not support operation: "+e.message)}return Jn(t).encrypt(r)}async function si(e,t,r){const{keySize:n}=ri(e);if(!M.isAES(e)||t.length!==n)throw Error("Unexpected algorithm or key size");let i;try{i=await ni.importKey("raw",t,{name:"AES-KW"},!1,["unwrapKey"])}catch(e){if("NotSupportedError"!==e.name&&(24!==t.length||"OperationError"!==e.name))throw e;return M.printDebugError("Browser did not support operation: "+e.message),Jn(t).decrypt(r)}try{const e=await ni.unwrapKey("raw",r,i,{name:"AES-KW"},{name:"HMAC",hash:"SHA-256"},!0,["sign"]);return new Uint8Array(await ni.exportKey("raw",e))}catch(e){if("OperationError"===e.name)throw Error("Key Data Integrity failed");throw e}}const ai=M.getWebCrypto();async function oi(e,t,r,n,i){const s=Q.read(Q.webHash,e);if(!s)throw Error("Hash algo not supported with HKDF");const a=await ai.importKey("raw",t,"HKDF",!1,["deriveBits"]),o=await ai.deriveBits({name:"HKDF",hash:s,salt:r,info:n},a,8*i);return new Uint8Array(o)}const ci={x25519:M.encodeUTF8("OpenPGP X25519"),x448:M.encodeUTF8("OpenPGP X448")};async function ui(e){switch(e){case Q.publicKey.x25519:{const e=ye(32),{publicKey:t}=We.box.keyPair.fromSecretKey(e);return{A:t,k:e}}case Q.publicKey.x448:{const e=await M.getNobleCurve(Q.publicKey.x448),t=e.utils.randomPrivateKey();return{A:e.getPublicKey(t),k:t}}default:throw Error("Unsupported ECDH algorithm")}}async function hi(e,t,r){switch(e){case Q.publicKey.x25519:{const{publicKey:e}=We.box.keyPair.fromSecretKey(r);return M.equalsUint8Array(t,e)}case Q.publicKey.x448:{const e=(await M.getNobleCurve(Q.publicKey.x448)).getPublicKey(r);return M.equalsUint8Array(t,e)}default:return!1}}async function li(e,t,r){const{ephemeralPublicKey:n,sharedSecret:i}=await gi(e,r),s=M.concatUint8Array([n,r,i]);switch(e){case Q.publicKey.x25519:{const e=Q.symmetric.aes128,{keySize:r}=ri(e),i=await oi(Q.hash.sha256,s,new Uint8Array,ci.x25519,r);return{ephemeralPublicKey:n,wrappedKey:await ii(e,i,t)}}case Q.publicKey.x448:{const e=Q.symmetric.aes256,{keySize:r}=ri(Q.symmetric.aes256),i=await oi(Q.hash.sha512,s,new Uint8Array,ci.x448,r);return{ephemeralPublicKey:n,wrappedKey:await ii(e,i,t)}}default:throw Error("Unsupported ECDH algorithm")}}async function yi(e,t,r,n,i){const s=await pi(e,t,n,i),a=M.concatUint8Array([t,n,s]);switch(e){case Q.publicKey.x25519:{const e=Q.symmetric.aes128,{keySize:t}=ri(e);return si(e,await oi(Q.hash.sha256,a,new Uint8Array,ci.x25519,t),r)}case Q.publicKey.x448:{const e=Q.symmetric.aes256,{keySize:t}=ri(Q.symmetric.aes256);return si(e,await oi(Q.hash.sha512,a,new Uint8Array,ci.x448,t),r)}default:throw Error("Unsupported ECDH algorithm")}}function fi(e){switch(e){case Q.publicKey.x25519:return 32;case Q.publicKey.x448:return 56;default:throw Error("Unsupported ECDH algorithm")}}async function gi(e,t){switch(e){case Q.publicKey.x25519:{const r=ye(fi(e)),n=We.scalarMult(r,t);di(n);const{publicKey:i}=We.box.keyPair.fromSecretKey(r);return{ephemeralPublicKey:i,sharedSecret:n}}case Q.publicKey.x448:{const e=await M.getNobleCurve(Q.publicKey.x448),r=e.utils.randomPrivateKey(),n=e.getSharedSecret(r,t);di(n);return{ephemeralPublicKey:e.getPublicKey(r),sharedSecret:n}}default:throw Error("Unsupported ECDH algorithm")}}async function pi(e,t,r,n){switch(e){case Q.publicKey.x25519:{const e=We.scalarMult(n,t);return di(e),e}case Q.publicKey.x448:{const e=(await M.getNobleCurve(Q.publicKey.x448)).getSharedSecret(n,t);return di(e),e}default:throw Error("Unsupported ECDH algorithm")}}function di(e){let t=0;for(let r=0;r<e.length;r++)t|=e[r];if(0===t)throw Error("Unexpected low order point")}var Ai=/*#__PURE__*/Object.freeze({__proto__:null,decrypt:yi,encrypt:li,generate:ui,generateEphemeralEncryptionMaterial:gi,getPayloadSize:fi,recomputeSharedSecret:pi,validateParams:hi});const wi=M.getWebCrypto(),mi=M.getNodeCrypto(),bi={[Q.curve.nistP256]:"P-256",[Q.curve.nistP384]:"P-384",[Q.curve.nistP521]:"P-521"},ki=mi?mi.getCurves():[],Ei=mi?{[Q.curve.secp256k1]:ki.includes("secp256k1")?"secp256k1":void 0,[Q.curve.nistP256]:ki.includes("prime256v1")?"prime256v1":void 0,[Q.curve.nistP384]:ki.includes("secp384r1")?"secp384r1":void 0,[Q.curve.nistP521]:ki.includes("secp521r1")?"secp521r1":void 0,[Q.curve.ed25519Legacy]:ki.includes("ED25519")?"ED25519":void 0,[Q.curve.curve25519Legacy]:ki.includes("X25519")?"X25519":void 0,[Q.curve.brainpoolP256r1]:ki.includes("brainpoolP256r1")?"brainpoolP256r1":void 0,[Q.curve.brainpoolP384r1]:ki.includes("brainpoolP384r1")?"brainpoolP384r1":void 0,[Q.curve.brainpoolP512r1]:ki.includes("brainpoolP512r1")?"brainpoolP512r1":void 0}:{},vi={[Q.curve.nistP256]:{oid:[6,8,42,134,72,206,61,3,1,7],keyType:Q.publicKey.ecdsa,hash:Q.hash.sha256,cipher:Q.symmetric.aes128,node:Ei[Q.curve.nistP256],web:bi[Q.curve.nistP256],payloadSize:32,sharedSize:256,wireFormatLeadingByte:4},[Q.curve.nistP384]:{oid:[6,5,43,129,4,0,34],keyType:Q.publicKey.ecdsa,hash:Q.hash.sha384,cipher:Q.symmetric.aes192,node:Ei[Q.curve.nistP384],web:bi[Q.curve.nistP384],payloadSize:48,sharedSize:384,wireFormatLeadingByte:4},[Q.curve.nistP521]:{oid:[6,5,43,129,4,0,35],keyType:Q.publicKey.ecdsa,hash:Q.hash.sha512,cipher:Q.symmetric.aes256,node:Ei[Q.curve.nistP521],web:bi[Q.curve.nistP521],payloadSize:66,sharedSize:528,wireFormatLeadingByte:4},[Q.curve.secp256k1]:{oid:[6,5,43,129,4,0,10],keyType:Q.publicKey.ecdsa,hash:Q.hash.sha256,cipher:Q.symmetric.aes128,node:Ei[Q.curve.secp256k1],payloadSize:32,wireFormatLeadingByte:4},[Q.curve.ed25519Legacy]:{oid:[6,9,43,6,1,4,1,218,71,15,1],keyType:Q.publicKey.eddsaLegacy,hash:Q.hash.sha512,node:!1,payloadSize:32,wireFormatLeadingByte:64},[Q.curve.curve25519Legacy]:{oid:[6,10,43,6,1,4,1,151,85,1,5,1],keyType:Q.publicKey.ecdh,hash:Q.hash.sha256,cipher:Q.symmetric.aes128,node:!1,payloadSize:32,wireFormatLeadingByte:64},[Q.curve.brainpoolP256r1]:{oid:[6,9,43,36,3,3,2,8,1,1,7],keyType:Q.publicKey.ecdsa,hash:Q.hash.sha256,cipher:Q.symmetric.aes128,node:Ei[Q.curve.brainpoolP256r1],payloadSize:32,wireFormatLeadingByte:4},[Q.curve.brainpoolP384r1]:{oid:[6,9,43,36,3,3,2,8,1,1,11],keyType:Q.publicKey.ecdsa,hash:Q.hash.sha384,cipher:Q.symmetric.aes192,node:Ei[Q.curve.brainpoolP384r1],payloadSize:48,wireFormatLeadingByte:4},[Q.curve.brainpoolP512r1]:{oid:[6,9,43,36,3,3,2,8,1,1,13],keyType:Q.publicKey.ecdsa,hash:Q.hash.sha512,cipher:Q.symmetric.aes256,node:Ei[Q.curve.brainpoolP512r1],payloadSize:64,wireFormatLeadingByte:4}};class Bi{constructor(e){try{this.name=e instanceof Ot?e.getName():Q.write(Q.curve,e)}catch(e){throw new Yt("Unknown curve")}const t=vi[this.name];this.keyType=t.keyType,this.oid=t.oid,this.hash=t.hash,this.cipher=t.cipher,this.node=t.node,this.web=t.web,this.payloadSize=t.payloadSize,this.sharedSize=t.sharedSize,this.wireFormatLeadingByte=t.wireFormatLeadingByte,this.web&&M.getWebCrypto()?this.type="web":this.node&&M.getNodeCrypto()?this.type="node":this.name===Q.curve.curve25519Legacy?this.type="curve25519Legacy":this.name===Q.curve.ed25519Legacy&&(this.type="ed25519Legacy")}async genKeyPair(){switch(this.type){case"web":try{return await async function(e,t){const r=await wi.generateKey({name:"ECDSA",namedCurve:bi[e]},!0,["sign","verify"]),n=await wi.exportKey("jwk",r.privateKey);return{publicKey:Pi(await wi.exportKey("jwk",r.publicKey),t),privateKey:H(n.d)}}(this.name,this.wireFormatLeadingByte)}catch(e){return M.printDebugError("Browser did not support generating ec key "+e.message),Ui(this.name)}case"node":return async function(e){const t=mi.createECDH(Ei[e]);return await t.generateKeys(),{publicKey:new Uint8Array(t.getPublicKey()),privateKey:new Uint8Array(t.getPrivateKey())}}(this.name);case"curve25519Legacy":{const{k:e,A:t}=await ui(Q.publicKey.x25519),r=e.slice().reverse();r[0]=127&r[0]|64,r[31]&=248;return{publicKey:M.concatUint8Array([new Uint8Array([this.wireFormatLeadingByte]),t]),privateKey:r}}case"ed25519Legacy":{const{seed:e,A:t}=await _r(Q.publicKey.ed25519);return{publicKey:M.concatUint8Array([new Uint8Array([this.wireFormatLeadingByte]),t]),privateKey:e}}default:return Ui(this.name)}}}async function Si(e){const t=new Bi(e),{oid:r,hash:n,cipher:i}=t,s=await t.genKeyPair();return{oid:r,Q:s.publicKey,secret:M.leftPad(s.privateKey,t.payloadSize),hash:n,cipher:i}}function Ii(e){return vi[e.getName()].hash}async function Ki(e,t,r,n){const i={[Q.curve.nistP256]:!0,[Q.curve.nistP384]:!0,[Q.curve.nistP521]:!0,[Q.curve.secp256k1]:!0,[Q.curve.curve25519Legacy]:e===Q.publicKey.ecdh,[Q.curve.brainpoolP256r1]:!0,[Q.curve.brainpoolP384r1]:!0,[Q.curve.brainpoolP512r1]:!0},s=t.getName();if(!i[s])return!1;if(s===Q.curve.curve25519Legacy){n=n.slice().reverse();const{publicKey:e}=We.box.keyPair.fromSecretKey(n);r=new Uint8Array(r);const t=new Uint8Array([64,...e]);return!!M.equalsUint8Array(t,r)}const a=(await M.getNobleCurve(Q.publicKey.ecdsa,s)).getPublicKey(n,!1);return!!M.equalsUint8Array(a,r)}function Ci(e,t){const{payloadSize:r,wireFormatLeadingByte:n,name:i}=e,s=i===Q.curve.curve25519Legacy||i===Q.curve.ed25519Legacy?r:2*r;if(t[0]!==n||t.length!==s+1)throw Error("Invalid point encoding")}async function Ui(e){const t=await M.getNobleCurve(Q.publicKey.ecdsa,e),r=t.utils.randomPrivateKey();return{publicKey:t.getPublicKey(r,!1),privateKey:r}}function Pi(e,t){const r=H(e.x),n=H(e.y),i=new Uint8Array(r.length+n.length+1);return i[0]=t,i.set(r,1),i.set(n,r.length+1),i}function Di(e,t,r){const n=e,i=r.slice(1,n+1),s=r.slice(n+1,2*n+1);return{kty:"EC",crv:t,x:z(i),y:z(s),ext:!0}}function xi(e,t,r,n){const i=Di(e,t,r);return i.d=z(n),i}const Qi=M.getWebCrypto(),Ri=M.getNodeCrypto();async function Ti(e,t,r,n,i,s){const a=new Bi(e);if(Ci(a,n),r&&!M.isStream(r)){const e={publicKey:n,privateKey:i};switch(a.type){case"web":try{return await async function(e,t,r,n){const i=e.payloadSize,s=xi(e.payloadSize,bi[e.name],n.publicKey,n.privateKey),a=await Qi.importKey("jwk",s,{name:"ECDSA",namedCurve:bi[e.name],hash:{name:Q.read(Q.webHash,e.hash)}},!1,["sign"]),o=new Uint8Array(await Qi.sign({name:"ECDSA",namedCurve:bi[e.name],hash:{name:Q.read(Q.webHash,t)}},a,r));return{r:o.slice(0,i),s:o.slice(i,i<<1)}}(a,t,r,e)}catch(e){if("nistP521"!==a.name&&("DataError"===e.name||"OperationError"===e.name))throw e;M.printDebugError("Browser did not support signing: "+e.message)}break;case"node":return async function(e,t,r,n){const i=M.nodeRequire("eckey-utils"),s=M.getNodeBuffer(),{privateKey:a}=i.generateDer({curveName:Ei[e.name],privateKey:s.from(n)}),o=Ri.createSign(Q.read(Q.hash,t));o.write(r),o.end();const c=new Uint8Array(o.sign({key:a,format:"der",type:"sec1",dsaEncoding:"ieee-p1363"})),u=e.payloadSize;return{r:c.subarray(0,u),s:c.subarray(u,u<<1)}}(a,t,r,i)}}const o=(await M.getNobleCurve(Q.publicKey.ecdsa,a.name)).sign(s,i,{lowS:!1});return{r:he(o.r,"be",a.payloadSize),s:he(o.s,"be",a.payloadSize)}}async function Mi(e,t,r,n,i,s){const a=new Bi(e);Ci(a,i);const o=async()=>0===s[0]&&Li(a,r,s.subarray(1),i);if(n&&!M.isStream(n))switch(a.type){case"web":try{const e=await async function(e,t,{r,s:n},i,s){const a=Di(e.payloadSize,bi[e.name],s),o=await Qi.importKey("jwk",a,{name:"ECDSA",namedCurve:bi[e.name],hash:{name:Q.read(Q.webHash,e.hash)}},!1,["verify"]),c=M.concatUint8Array([r,n]).buffer;return Qi.verify({name:"ECDSA",namedCurve:bi[e.name],hash:{name:Q.read(Q.webHash,t)}},o,c,i)}(a,t,r,n,i);return e||o()}catch(e){if("nistP521"!==a.name&&("DataError"===e.name||"OperationError"===e.name))throw e;M.printDebugError("Browser did not support verifying: "+e.message)}break;case"node":{const e=await async function(e,t,{r,s:n},i,s){const a=M.nodeRequire("eckey-utils"),o=M.getNodeBuffer(),{publicKey:c}=a.generateDer({curveName:Ei[e.name],publicKey:o.from(s)}),u=Ri.createVerify(Q.read(Q.hash,t));u.write(i),u.end();const h=M.concatUint8Array([r,n]);try{return u.verify({key:c,format:"der",type:"spki",dsaEncoding:"ieee-p1363"},h)}catch(e){return!1}}(a,t,r,n,i);return e||o()}}return await Li(a,r,s,i)||o()}async function Li(e,t,r,n){return(await M.getNobleCurve(Q.publicKey.ecdsa,e.name)).verify(M.concatUint8Array([t.r,t.s]),r,n,{lowS:!1})}var Fi=/*#__PURE__*/Object.freeze({__proto__:null,sign:Ti,validateParams:async function(e,t,r){const n=new Bi(e);if(n.keyType!==Q.publicKey.ecdsa)return!1;switch(n.type){case"web":case"node":{const n=ye(8),i=Q.hash.sha256,s=await xe(i,n);try{const a=await Ti(e,i,n,t,r,s);return await Mi(e,i,a,n,t,s)}catch(e){return!1}}default:return Ki(Q.publicKey.ecdsa,e,t,r)}},verify:Mi});async function Ni(e,t,r,n,i,s){if(Ci(new Bi(e),n),Qe(t)<Qe(Q.hash.sha256))throw Error("Hash algorithm too weak for EdDSA.");const{RS:a}=await Hr(Q.publicKey.ed25519,t,0,n.subarray(1),i,s);return{r:a.subarray(0,32),s:a.subarray(32)}}async function Oi(e,t,{r,s:n},i,s,a){if(Ci(new Bi(e),s),Qe(t)<Qe(Q.hash.sha256))throw Error("Hash algorithm too weak for EdDSA.");const o=M.concatUint8Array([r,n]);return zr(Q.publicKey.ed25519,t,{RS:o},0,s.subarray(1),a)}async function _i(e,t,r){if(e.getName()!==Q.curve.ed25519Legacy)return!1;const{publicKey:n}=We.sign.keyPair.fromSeed(r),i=new Uint8Array([64,...n]);return M.equalsUint8Array(t,i)}var Hi=/*#__PURE__*/Object.freeze({__proto__:null,sign:Ni,validateParams:_i,verify:Oi});function zi(e){const t=e.length;if(t>0){const r=e[t-1];if(r>=1){const n=e.subarray(t-r),i=new Uint8Array(r).fill(r);if(M.equalsUint8Array(n,i))return e.subarray(0,t-r)}}throw Error("Invalid padding")}const Gi=M.getWebCrypto(),qi=M.getNodeCrypto();function ji(e,t,r,n){return M.concatUint8Array([t.write(),new Uint8Array([e]),r.write(!0),M.stringToUint8Array("Anonymous Sender "),r.replacementFingerprint||n])}async function Vi(e,t,r,n,i=!1,s=!1){let a;if(i){for(a=0;a<t.length&&0===t[a];a++);t=t.subarray(a)}if(s){for(a=t.length-1;a>=0&&0===t[a];a--);t=t.subarray(0,a+1)}return(await xe(e,M.concatUint8Array([new Uint8Array([0,0,0,1]),t,n]))).subarray(0,r)}async function Yi(e,t){switch(e.type){case"curve25519Legacy":{const{sharedSecret:r,ephemeralPublicKey:n}=await gi(Q.publicKey.x25519,t.subarray(1));return{publicKey:M.concatUint8Array([new Uint8Array([e.wireFormatLeadingByte]),n]),sharedKey:r}}case"web":if(e.web&&M.getWebCrypto())try{return await async function(e,t){const r=Di(e.payloadSize,e.web,t);let n=Gi.generateKey({name:"ECDH",namedCurve:e.web},!0,["deriveKey","deriveBits"]),i=Gi.importKey("jwk",r,{name:"ECDH",namedCurve:e.web},!1,[]);[n,i]=await Promise.all([n,i]);let s=Gi.deriveBits({name:"ECDH",namedCurve:e.web,public:i},n.privateKey,e.sharedSize),a=Gi.exportKey("jwk",n.publicKey);[s,a]=await Promise.all([s,a]);const o=new Uint8Array(s),c=new Uint8Array(Pi(a,e.wireFormatLeadingByte));return{publicKey:c,sharedKey:o}}(e,t)}catch(r){return M.printDebugError(r),$i(e,t)}break;case"node":return async function(e,t){const r=qi.createECDH(e.node);r.generateKeys();const n=new Uint8Array(r.computeSecret(t));return{publicKey:new Uint8Array(r.getPublicKey()),sharedKey:n}}(e,t);default:return $i(e,t)}}async function Zi(e,t,r,n,i){const s=function(e){const t=8-e.length%8,r=new Uint8Array(e.length+t).fill(t);return r.set(e),r}(r),a=new Bi(e);Ci(a,n);const{publicKey:o,sharedKey:c}=await Yi(a,n),u=ji(Q.publicKey.ecdh,e,t,i),{keySize:h}=ri(t.cipher),l=await Vi(t.hash,c,h,u);return{publicKey:o,wrappedKey:await ii(t.cipher,l,s)}}async function Wi(e,t,r,n){if(n.length!==e.payloadSize){const t=new Uint8Array(e.payloadSize);t.set(n,e.payloadSize-n.length),n=t}switch(e.type){case"curve25519Legacy":{const e=n.slice().reverse();return{secretKey:e,sharedKey:await pi(Q.publicKey.x25519,t.subarray(1),r.subarray(1),e)}}case"web":if(e.web&&M.getWebCrypto())try{return await async function(e,t,r,n){const i=xi(e.payloadSize,e.web,r,n);let s=Gi.importKey("jwk",i,{name:"ECDH",namedCurve:e.web},!0,["deriveKey","deriveBits"]);const a=Di(e.payloadSize,e.web,t);let o=Gi.importKey("jwk",a,{name:"ECDH",namedCurve:e.web},!0,[]);[s,o]=await Promise.all([s,o]);let c=Gi.deriveBits({name:"ECDH",namedCurve:e.web,public:o},s,e.sharedSize),u=Gi.exportKey("jwk",s);[c,u]=await Promise.all([c,u]);const h=new Uint8Array(c);return{secretKey:H(u.d),sharedKey:h}}(e,t,r,n)}catch(r){return M.printDebugError(r),Xi(e,t,n)}break;case"node":return async function(e,t,r){const n=qi.createECDH(e.node);n.setPrivateKey(r);const i=new Uint8Array(n.computeSecret(t));return{secretKey:new Uint8Array(n.getPrivateKey()),sharedKey:i}}(e,t,n);default:return Xi(e,t,n)}}async function Ji(e,t,r,n,i,s,a){const o=new Bi(e);Ci(o,i),Ci(o,r);const{sharedKey:c}=await Wi(o,r,i,s),u=ji(Q.publicKey.ecdh,e,t,a),{keySize:h}=ri(t.cipher);let l;for(let e=0;e<3;e++)try{const r=await Vi(t.hash,c,h,u,1===e,2===e);return zi(await si(t.cipher,r,n))}catch(e){l=e}throw l}async function Xi(e,t,r){return{secretKey:r,sharedKey:(await M.getNobleCurve(Q.publicKey.ecdh,e.name)).getSharedSecret(r,t).subarray(1)}}async function $i(e,t){const r=await M.getNobleCurve(Q.publicKey.ecdh,e.name),{publicKey:n,privateKey:i}=await e.genKeyPair();return{publicKey:n,sharedKey:r.getSharedSecret(i,t).subarray(1)}}var es=/*#__PURE__*/Object.freeze({__proto__:null,decrypt:Ji,encrypt:Zi,validateParams:async function(e,t,r){return Ki(Q.publicKey.ecdh,e,t,r)}}),ts=/*#__PURE__*/Object.freeze({__proto__:null,CurveWithOID:Bi,ecdh:es,ecdhX:Ai,ecdsa:Fi,eddsa:Zr,eddsaLegacy:Hi,generate:Si,getPreferredHashAlgo:Ii});const rs=BigInt(0),ns=BigInt(1);const is=new Set([Q.hash.sha1,Q.hash.sha256,Q.hash.sha512]),ss=M.getWebCrypto(),as=M.getNodeCrypto();async function os(e,t){if(e===Q.publicKey.pqc_mlkem_x25519){const{ml_kem768:e}=await Promise.resolve().then((function(){return Tg})),{publicKey:r,secretKey:n}=e.keygen(t);return{mlkemPublicKey:r,mlkemSecretKey:n}}throw Error("Unsupported KEM algorithm")}async function cs(e){const{eccPublicKey:t,eccSecretKey:r}=await async function(e){if(e===Q.publicKey.pqc_mlkem_x25519){const{A:e,k:t}=await ui(Q.publicKey.x25519);return{eccPublicKey:e,eccSecretKey:t}}throw Error("Unsupported KEM algorithm")}(e),{mlkemPublicKey:n,mlkemSeed:i,mlkemSecretKey:s}=await async function(e){if(e===Q.publicKey.pqc_mlkem_x25519){const t=ye(64),{mlkemSecretKey:r,mlkemPublicKey:n}=await os(e,t);return{mlkemSeed:t,mlkemSecretKey:r,mlkemPublicKey:n}}throw Error("Unsupported KEM algorithm")}(e);return{eccPublicKey:t,eccSecretKey:r,mlkemPublicKey:n,mlkemSeed:i,mlkemSecretKey:s}}async function us(e,t,r,n){const{eccKeyShare:i,eccCipherText:s}=await async function(e,t){if(e===Q.publicKey.pqc_mlkem_x25519){const{ephemeralPublicKey:e,sharedSecret:r}=await gi(Q.publicKey.x25519,t);return{eccCipherText:e,eccKeyShare:r}}throw Error("Unsupported KEM algorithm")}(e,t),{mlkemKeyShare:a,mlkemCipherText:o}=await async function(e,t){if(e===Q.publicKey.pqc_mlkem_x25519){const{ml_kem768:e}=await Promise.resolve().then((function(){return Tg})),{cipherText:r,sharedSecret:n}=e.encapsulate(t);return{mlkemCipherText:r,mlkemKeyShare:n}}throw Error("Unsupported KEM algorithm")}(e,r),c=await ls(e,i,s,t,a,o,r);return{eccCipherText:s,mlkemCipherText:o,wrappedKey:await ii(Q.symmetric.aes256,c,n)}}async function hs(e,t,r,n,i,s,a,o){const c=await async function(e,t,r){if(e===Q.publicKey.pqc_mlkem_x25519)return await pi(Q.publicKey.x25519,t,0,r);throw Error("Unsupported KEM algorithm")}(e,t,n),u=await async function(e,t,r){if(e===Q.publicKey.pqc_mlkem_x25519){const{ml_kem768:e}=await Promise.resolve().then((function(){return Tg}));return e.decapsulate(t,r)}throw Error("Unsupported KEM algorithm")}(e,r,s),h=await ls(e,c,t,i,u,r,a);return await si(Q.symmetric.aes256,h,o)}async function ls(e,t,r,n,i,s,a){const o=M.concatUint8Array([i,t,r,n,s,a,new Uint8Array([e]),M.encodeUTF8("OpenPGPCompositeKDFv1")]);return await xe(Q.hash.sha3_256,o)}async function ys(e,t,r,n,i){const s=async function(e,t,r){if(e===Q.publicKey.pqc_mlkem_x25519)return hi(Q.publicKey.x25519,t,r);throw Error("Unsupported KEM algorithm")}(e,t,r),a=async function(e,t,r){if(e===Q.publicKey.pqc_mlkem_x25519){const{mlkemPublicKey:n}=await os(e,r);return M.equalsUint8Array(t,n)}throw Error("Unsupported KEM algorithm")}(e,n,i);return await s&&await a}async function fs(e,t){if(e===Q.publicKey.pqc_mldsa_ed25519){const{ml_dsa65:e}=await Promise.resolve().then((function(){return Tg})),{secretKey:r,publicKey:n}=e.keygen(t);return{mldsaSecretKey:r,mldsaPublicKey:n}}throw Error("Unsupported signature algorithm")}async function gs(e){if(e===Q.publicKey.pqc_mldsa_ed25519){const{eccSecretKey:t,eccPublicKey:r}=await async function(e){if(e===Q.publicKey.pqc_mldsa_ed25519){const{A:e,seed:t}=await _r(Q.publicKey.ed25519);return{eccPublicKey:e,eccSecretKey:t}}throw Error("Unsupported signature algorithm")}(e),{mldsaSeed:n,mldsaSecretKey:i,mldsaPublicKey:s}=await async function(e){if(e===Q.publicKey.pqc_mldsa_ed25519){const t=ye(32),{mldsaSecretKey:r,mldsaPublicKey:n}=await fs(e,t);return{mldsaSeed:t,mldsaSecretKey:r,mldsaPublicKey:n}}throw Error("Unsupported signature algorithm")}(e);return{eccSecretKey:t,eccPublicKey:r,mldsaSeed:n,mldsaSecretKey:i,mldsaPublicKey:s}}throw Error("Unsupported signature algorithm")}async function ps(e,t,r,n,i,s){if(t!==As(e))throw Error("Unexpected hash algorithm for PQC signature");if(e===Q.publicKey.pqc_mldsa_ed25519){const{eccSignature:a}=await async function(e,t,r,n,i){if(e===Q.publicKey.pqc_mldsa_ed25519){const{RS:e}=await Hr(Q.publicKey.ed25519,t,0,n,r,i);return{eccSignature:e}}throw Error("Unsupported signature algorithm")}(e,t,r,n,s),{mldsaSignature:o}=await async function(e,t,r){if(e===Q.publicKey.pqc_mldsa_ed25519){const{ml_dsa65:e}=await Promise.resolve().then((function(){return Tg}));return{mldsaSignature:e.sign(t,r)}}throw Error("Unsupported signature algorithm")}(e,i,s);return{eccSignature:a,mldsaSignature:o}}throw Error("Unsupported signature algorithm")}async function ds(e,t,r,n,i,{eccSignature:s,mldsaSignature:a}){if(t!==As(e))throw Error("Unexpected hash algorithm for PQC signature");if(e===Q.publicKey.pqc_mldsa_ed25519){const o=async function(e,t,r,n,i){if(e===Q.publicKey.pqc_mldsa_ed25519)return zr(Q.publicKey.ed25519,t,{RS:i},0,r,n);throw Error("Unsupported signature algorithm")}(e,t,r,i,s),c=async function(e,t,r,n){if(e===Q.publicKey.pqc_mldsa_ed25519){const{ml_dsa65:e}=await Promise.resolve().then((function(){return Tg}));return e.verify(t,r,n)}throw Error("Unsupported signature algorithm")}(e,n,i,a);return await o&&await c}throw Error("Unsupported signature algorithm")}function As(e){if(e===Q.publicKey.pqc_mldsa_ed25519)return Q.hash.sha3_256;throw Error("Unsupported signature algorithm")}async function ws(e,t,r,n,i){const s=async function(e,t,r){if(e===Q.publicKey.pqc_mldsa_ed25519)return Gr(Q.publicKey.ed25519,t,r);throw Error("Unsupported signature algorithm")}(e,t,r),a=async function(e,t,r){if(e===Q.publicKey.pqc_mldsa_ed25519){const{mldsaPublicKey:n}=await fs(e,r);return M.equalsUint8Array(t,n)}throw Error("Unsupported signature algorithm")}(e,n,i);return await s&&await a}class ms{constructor(e){e&&(this.data=e)}read(e){if(e.length>=1){const t=e[0];if(e.length>=1+t)return this.data=e.subarray(1,1+t),1+this.data.length}throw Error("Invalid symmetric key")}write(){return M.concatUint8Array([new Uint8Array([this.data.length]),this.data])}}class bs{constructor(e){if(void 0===e&&(e=new Uint8Array([])),!M.isUint8Array(e))throw Error("data must be in the form of a Uint8Array");this.data=e,this.length=this.data.byteLength}write(){return M.concatUint8Array([new Uint8Array([this.length]),this.data])}read(e){if(e.length>=1){const t=e[0];if(e.length>=t+1)return this.data=e.subarray(1,1+t),this.length=t,1+t}throw Error("Invalid octet string")}}class ks{constructor(e){if(e){const{version:t,hash:r,cipher:n,replacementFingerprint:i}=e;this.version=t||1,this.hash=r,this.cipher=n,this.replacementFingerprint=i}else this.version=null,this.hash=null,this.cipher=null,this.replacementFingerprint=null}read(e){if(e.length<4||1!==e[1]&&255!==e[1])throw new Yt("Cannot read KDFParams");const t=e[0];this.version=e[1],this.hash=e[2],this.cipher=e[3];let r=4;if(255===this.version){const n=t-r+1;this.replacementFingerprint=e.slice(r,r+n),r+=n}return r}write(e){if(!this.version||1===this.version||e)return new Uint8Array([3,1,this.hash,this.cipher]);return M.concatUint8Array([new Uint8Array([3+this.replacementFingerprint.length,this.version,this.hash,this.cipher]),this.replacementFingerprint])}}const Es=e=>class{constructor(e){this.data=void 0===e?null:e}read(t){const r=t[0];return this.data=Q.write(e,r),1}write(){return new Uint8Array([this.data])}getName(){return Q.read(e,this.data)}getValue(){return this.data}},vs=Es(Q.aead),Bs=Es(Q.symmetric),Ss=Es(Q.hash);class Is{static fromObject({wrappedKey:e,algorithm:t}){const r=new Is;return r.wrappedKey=e,r.algorithm=t,r}read(e){let t=0,r=e[t++];this.algorithm=r%2?e[t++]:null,r-=r%2,this.wrappedKey=M.readExactSubarray(e,t,t+r),t+=r}write(){return M.concatUint8Array([this.algorithm?new Uint8Array([this.wrappedKey.length+1,this.algorithm]):new Uint8Array([this.wrappedKey.length]),this.wrappedKey])}}const Ks=M.getWebCrypto(),Cs=M.getNodeCrypto(),Us=Cs?Cs.getCiphers():[],Ps={idea:Us.includes("idea-cfb")?"idea-cfb":void 0,tripledes:Us.includes("des-ede3-cfb")?"des-ede3-cfb":void 0,cast5:Us.includes("cast5-cfb")?"cast5-cfb":void 0,blowfish:Us.includes("bf-cfb")?"bf-cfb":void 0,aes128:Us.includes("aes-128-cfb")?"aes-128-cfb":void 0,aes192:Us.includes("aes-192-cfb")?"aes-192-cfb":void 0,aes256:Us.includes("aes-256-cfb")?"aes-256-cfb":void 0};async function Ds(e){const{blockSize:t}=ri(e),r=await ye(t),n=new Uint8Array([r[r.length-2],r[r.length-1]]);return M.concat([r,n])}async function xs(e,t,r,n,i){const s=Q.read(Q.symmetric,e);if(M.getNodeCrypto()&&Ps[s])return function(e,t,r,n){const i=Q.read(Q.symmetric,e),s=new Cs.createCipheriv(Ps[i],t,n);return b(r,(e=>new Uint8Array(s.update(e))))}(e,t,r,n);if(M.isAES(e))return async function(e,t,r,n){if(Ks&&await Rs.isSupported(e)){const i=new Rs(e,t,n);return M.isStream(r)?b(r,(e=>i.encryptChunk(e)),(()=>i.finish())):i.encrypt(r)}if(M.isStream(r)){const i=new Ts(!0,e,t,n);return b(r,(e=>i.processChunk(e)),(()=>i.finish()))}return Gn(t,n).encrypt(r)}(e,t,r,n);const a=new(await $n(e))(t),o=a.blockSize,c=n.slice();let u=new Uint8Array;const h=e=>{e&&(u=M.concatUint8Array([u,e]));const t=new Uint8Array(u.length);let r,n=0;for(;e?u.length>=o:u.length;){const e=a.encrypt(c);for(r=0;r<o;r++)c[r]=u[r]^e[r],t[n++]=c[r];u=u.subarray(o)}return t.subarray(0,n)};return b(r,h,h)}async function Qs(e,t,r,n){const i=Q.read(Q.symmetric,e);if(Cs&&Ps[i])return function(e,t,r,n){const i=Q.read(Q.symmetric,e),s=new Cs.createDecipheriv(Ps[i],t,n);return b(r,(e=>new Uint8Array(s.update(e))))}(e,t,r,n);if(M.isAES(e))return async function(e,t,r,n){if(M.isStream(r)){const i=new Ts(!1,e,t,n);return b(r,(e=>i.processChunk(e)),(()=>i.finish()))}return Gn(t,n).decrypt(r)}(e,t,r,n);const s=new(await $n(e))(t),a=s.blockSize;let o=n,c=new Uint8Array;const u=e=>{e&&(c=M.concatUint8Array([c,e]));const t=new Uint8Array(c.length);let r,n=0;for(;e?c.length>=a:c.length;){const e=s.encrypt(o);for(o=c.subarray(0,a),r=0;r<a;r++)t[n++]=o[r]^e[r];c=c.subarray(a)}return t.subarray(0,n)};return b(r,u,u)}class Rs{constructor(e,t,r){const{blockSize:n}=ri(e);this.key=t,this.prevBlock=r,this.nextBlock=new Uint8Array(n),this.i=0,this.blockSize=n,this.zeroBlock=new Uint8Array(this.blockSize)}static async isSupported(e){const{keySize:t}=ri(e);return Ks.importKey("raw",new Uint8Array(t),"aes-cbc",!1,["encrypt"]).then((()=>!0),(()=>!1))}async _runCBC(e,t){const r="AES-CBC";this.keyRef=this.keyRef||await Ks.importKey("raw",this.key,r,!1,["encrypt"]);const n=await Ks.encrypt({name:r,iv:t||this.zeroBlock},this.keyRef,e);return new Uint8Array(n).subarray(0,e.length)}async encryptChunk(e){const t=this.nextBlock.length-this.i,r=e.subarray(0,t);if(this.nextBlock.set(r,this.i),this.i+e.length>=2*this.blockSize){const r=(e.length-t)%this.blockSize,n=M.concatUint8Array([this.nextBlock,e.subarray(t,e.length-r)]),i=M.concatUint8Array([this.prevBlock,n.subarray(0,n.length-this.blockSize)]),s=await this._runCBC(i);return Ms(s,n),this.prevBlock=s.slice(-this.blockSize),r>0&&this.nextBlock.set(e.subarray(-r)),this.i=r,s}let n;if(this.i+=r.length,this.i===this.nextBlock.length){const t=this.nextBlock;n=await this._runCBC(this.prevBlock),Ms(n,t),this.prevBlock=n.slice(),this.i=0;const i=e.subarray(r.length);this.nextBlock.set(i,this.i),this.i+=i.length}else n=new Uint8Array;return n}async finish(){let e;if(0===this.i)e=new Uint8Array;else{this.nextBlock=this.nextBlock.subarray(0,this.i);const t=this.nextBlock,r=await this._runCBC(this.prevBlock);Ms(r,t),e=r.subarray(0,t.length)}return this.clearSensitiveData(),e}clearSensitiveData(){this.nextBlock.fill(0),this.prevBlock.fill(0),this.keyRef=null,this.key=null}async encrypt(e){const t=(await this._runCBC(M.concatUint8Array([new Uint8Array(this.blockSize),e]),this.iv)).subarray(0,e.length);return Ms(t,e),this.clearSensitiveData(),t}}class Ts{constructor(e,t,r,n){this.forEncryption=e;const{blockSize:i}=ri(t);this.key=Xn.expandKeyLE(r),n.byteOffset%4!=0&&(n=n.slice()),this.prevBlock=Ls(n),this.nextBlock=new Uint8Array(i),this.i=0,this.blockSize=i}_runCFB(e){const t=Ls(e),r=new Uint8Array(e.length),n=Ls(r);for(let e=0;e+4<=n.length;e+=4){const{s0:r,s1:i,s2:s,s3:a}=Xn.encrypt(this.key,this.prevBlock[0],this.prevBlock[1],this.prevBlock[2],this.prevBlock[3]);n[e+0]=t[e+0]^r,n[e+1]=t[e+1]^i,n[e+2]=t[e+2]^s,n[e+3]=t[e+3]^a,this.prevBlock=(this.forEncryption?n:t).slice(e,e+4)}return r}async processChunk(e){const t=this.nextBlock.length-this.i,r=e.subarray(0,t);if(this.nextBlock.set(r,this.i),this.i+e.length>=2*this.blockSize){const r=(e.length-t)%this.blockSize,n=M.concatUint8Array([this.nextBlock,e.subarray(t,e.length-r)]),i=this._runCFB(n);return r>0&&this.nextBlock.set(e.subarray(-r)),this.i=r,i}let n;if(this.i+=r.length,this.i===this.nextBlock.length){n=this._runCFB(this.nextBlock),this.i=0;const t=e.subarray(r.length);this.nextBlock.set(t,this.i),this.i+=t.length}else n=new Uint8Array;return n}async finish(){let e;if(0===this.i)e=new Uint8Array;else{e=this._runCFB(this.nextBlock).subarray(0,this.i)}return this.clearSensitiveData(),e}clearSensitiveData(){this.nextBlock.fill(0),this.prevBlock.fill(0),this.key.fill(0)}}function Ms(e,t){const r=Math.min(e.length,t.length);for(let n=0;n<r;n++)e[n]=e[n]^t[n]}const Ls=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4));const Fs=M.getWebCrypto(),Ns=M.getNodeCrypto(),Os=16;function _s(e,t){const r=e.length-Os;for(let n=0;n<Os;n++)e[n+r]^=t[n];return e}const Hs=new Uint8Array(Os);async function zs(e){const t=await Gs(e),r=M.double(await t(Hs)),n=M.double(r);return async function(e){return(await t(function(e,t,r){if(e.length&&e.length%Os==0)return _s(e,t);const n=new Uint8Array(e.length+(Os-e.length%Os));return n.set(e),n[e.length]=128,_s(n,r)}(e,r,n))).subarray(-Os)}}async function Gs(e){if(M.getNodeCrypto())return async function(t){const r=new Ns.createCipheriv("aes-"+8*e.length+"-cbc",e,Hs).update(t);return new Uint8Array(r)};if(M.getWebCrypto())try{return e=await Fs.importKey("raw",e,{name:"AES-CBC",length:8*e.length},!1,["encrypt"]),async function(t){const r=await Fs.encrypt({name:"AES-CBC",iv:Hs,length:8*Os},e,t);return new Uint8Array(r).subarray(0,r.byteLength-Os)}}catch(t){if("NotSupportedError"!==t.name&&(24!==e.length||"OperationError"!==t.name))throw t;M.printDebugError("Browser did not support operation: "+t.message)}return async function(t){return zn(e,Hs,{disablePadding:!0}).encrypt(t)}}const qs=M.getWebCrypto(),js=M.getNodeCrypto(),Vs=M.getNodeBuffer(),Ys=16,Zs=Ys,Ws=Ys,Js=new Uint8Array(Ys),Xs=new Uint8Array(Ys);Xs[Ys-1]=1;const $s=new Uint8Array(Ys);async function ea(e){const t=await zs(e);return function(e,r){return t(M.concatUint8Array([e,r]))}}async function ta(e){if(M.getNodeCrypto())return async function(t,r){const n=new js.createCipheriv("aes-"+8*e.length+"-ctr",e,r),i=Vs.concat([n.update(t),n.final()]);return new Uint8Array(i)};if(M.getWebCrypto())try{const t=await qs.importKey("raw",e,{name:"AES-CTR",length:8*e.length},!1,["encrypt"]);return async function(e,r){const n=await qs.encrypt({name:"AES-CTR",counter:r,length:8*Ys},t,e);return new Uint8Array(n)}}catch(t){if("NotSupportedError"!==t.name&&(24!==e.length||"OperationError"!==t.name))throw t;M.printDebugError("Browser did not support operation: "+t.message)}return async function(t,r){return Hn(e,r).encrypt(t)}}async function ra(e,t){if(e!==Q.symmetric.aes128&&e!==Q.symmetric.aes192&&e!==Q.symmetric.aes256)throw Error("EAX mode supports only AES cipher");const[r,n]=await Promise.all([ea(t),ta(t)]);return{encrypt:async function(e,t,i){const[s,a]=await Promise.all([r(Js,t),r(Xs,i)]),o=await n(e,s),c=await r($s,o);for(let e=0;e<Ws;e++)c[e]^=a[e]^s[e];return M.concatUint8Array([o,c])},decrypt:async function(e,t,i){if(e.length<Ws)throw Error("Invalid EAX ciphertext");const s=e.subarray(0,-Ws),a=e.subarray(-Ws),[o,c,u]=await Promise.all([r(Js,t),r(Xs,i),r($s,s)]),h=u;for(let e=0;e<Ws;e++)h[e]^=c[e]^o[e];if(!M.equalsUint8Array(a,h))throw Error("Authentication tag mismatch");return await n(s,o)}}}$s[Ys-1]=2,ra.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[8+e]^=t[e];return r},ra.blockLength=Ys,ra.ivLength=Zs,ra.tagLength=Ws;const na=16,ia=15,sa=16;function aa(e){let t=0;for(let r=1;!(e&r);r<<=1)t++;return t}function oa(e,t){for(let r=0;r<e.length;r++)e[r]^=t[r];return e}function ca(e,t){return oa(e.slice(),t)}const ua=new Uint8Array(na),ha=new Uint8Array([1]);async function la(e,t){const{keySize:r}=ri(e);if(!M.isAES(e)||t.length!==r)throw Error("Unexpected algorithm or key size");let n=0;const i=zn(t,ua,{disablePadding:!0}),s=e=>i.encrypt(e),a=e=>i.decrypt(e);let o;function c(e,t,r,i){const a=t.length/na|0;!function(e,t){const r=M.nbits(Math.max(e.length,t.length)/na|0)-1;for(let e=n+1;e<=r;e++)o[e]=M.double(o[e-1]);n=r}(t,i);const c=M.concatUint8Array([ua.subarray(0,ia-r.length),ha,r]),u=63&c[na-1];c[na-1]&=192;const h=s(c),l=M.concatUint8Array([h,ca(h.subarray(0,8),h.subarray(1,9))]),y=M.shiftRight(l.subarray(0+(u>>3),17+(u>>3)),8-(7&u)).subarray(1),f=new Uint8Array(na),g=new Uint8Array(t.length+sa);let p,d=0;for(p=0;p<a;p++)oa(y,o[aa(p+1)]),g.set(oa(e(ca(y,t)),y),d),oa(f,e===s?t:g.subarray(d)),t=t.subarray(na),d+=na;if(t.length){oa(y,o.x);const r=s(y);g.set(ca(t,r),d);const n=new Uint8Array(na);n.set(e===s?t:g.subarray(d,-sa),0),n[t.length]=128,oa(f,n),d+=t.length}const A=oa(s(oa(oa(f,y),o.$)),function(e){if(!e.length)return ua;const t=e.length/na|0,r=new Uint8Array(na),n=new Uint8Array(na);for(let i=0;i<t;i++)oa(r,o[aa(i+1)]),oa(n,s(ca(r,e))),e=e.subarray(na);if(e.length){oa(r,o.x);const t=new Uint8Array(na);t.set(e,0),t[e.length]=128,oa(t,r),oa(n,s(t))}return n}(i));return g.set(A,d),g}return function(){const e=s(ua),t=M.double(e);o=[],o[0]=M.double(t),o.x=e,o.$=t}(),{encrypt:async function(e,t,r){return c(s,e,t,r)},decrypt:async function(e,t,r){if(e.length<sa)throw Error("Invalid OCB ciphertext");const n=e.subarray(-sa);e=e.subarray(0,-sa);const i=c(a,e,t,r);if(M.equalsUint8Array(n,i.subarray(-sa)))return i.subarray(0,-sa);throw Error("Authentication tag mismatch")}}}la.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[7+e]^=t[e];return r},la.blockLength=na,la.ivLength=ia,la.tagLength=sa;const ya=M.getWebCrypto(),fa=M.getNodeCrypto(),ga=M.getNodeBuffer(),pa=16,da="AES-GCM";async function Aa(e,t){if(e!==Q.symmetric.aes128&&e!==Q.symmetric.aes192&&e!==Q.symmetric.aes256)throw Error("GCM mode supports only AES cipher");if(M.getNodeCrypto())return{encrypt:async function(e,r,n=new Uint8Array){const i=new fa.createCipheriv("aes-"+8*t.length+"-gcm",t,r);i.setAAD(n);const s=ga.concat([i.update(e),i.final(),i.getAuthTag()]);return new Uint8Array(s)},decrypt:async function(e,r,n=new Uint8Array){const i=new fa.createDecipheriv("aes-"+8*t.length+"-gcm",t,r);i.setAAD(n),i.setAuthTag(e.slice(e.length-pa,e.length));const s=ga.concat([i.update(e.slice(0,e.length-pa)),i.final()]);return new Uint8Array(s)}};if(M.getWebCrypto())try{const e=await ya.importKey("raw",t,{name:da},!1,["encrypt","decrypt"]),r=navigator.userAgent.match(/Version\/13\.\d(\.\d)* Safari/)||navigator.userAgent.match(/Version\/(13|14)\.\d(\.\d)* Mobile\/\S* Safari/);return{encrypt:async function(n,i,s=new Uint8Array){if(r&&!n.length)return qn(t,i,s).encrypt(n);const a=await ya.encrypt({name:da,iv:i,additionalData:s,tagLength:8*pa},e,n);return new Uint8Array(a)},decrypt:async function(n,i,s=new Uint8Array){if(r&&n.length===pa)return qn(t,i,s).decrypt(n);try{const t=await ya.decrypt({name:da,iv:i,additionalData:s,tagLength:8*pa},e,n);return new Uint8Array(t)}catch(e){if("OperationError"===e.name)throw Error("Authentication tag mismatch")}}}}catch(e){if("NotSupportedError"!==e.name&&(24!==t.length||"OperationError"!==e.name))throw e;M.printDebugError("Browser did not support operation: "+e.message)}return{encrypt:async function(e,r,n){return qn(t,r,n).encrypt(e)},decrypt:async function(e,r,n){return qn(t,r,n).decrypt(e)}}}function wa(e,t=!1){switch(e){case Q.aead.eax:return ra;case Q.aead.ocb:return la;case Q.aead.gcm:return Aa;case Q.aead.experimentalGCM:if(!t)throw Error("Unexpected non-standard `experimentalGCM` AEAD algorithm provided in `config.preferredAEADAlgorithm`: use `gcm` instead");return Aa;default:throw Error("Unsupported AEAD mode")}}async function ma(e,t,r,n,i,s){switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:{const{n:e,e:t}=r;return{c:await ze(i,e,t)}}case Q.publicKey.elgamal:{const{p:e,g:t,y:n}=r;return async function(e,t,r,n){t=te(t),r=te(r),n=te(n);const i=te(Te(e,ue(t))),s=fe(Ye,t-Ye);return{c1:he(ne(r,s,t)),c2:he(re(ne(n,s,t)*i,t))}}(i,e,t,n)}case Q.publicKey.ecdh:{const{oid:e,Q:t,kdfParams:n}=r,{publicKey:a,wrappedKey:o}=await Zi(e,n,i,t,s);return{V:a,C:new ms(o)}}case Q.publicKey.x25519:case Q.publicKey.x448:{if(t&&!M.isAES(t))throw Error("X25519 and X448 keys can only encrypt AES session keys");const{A:n}=r,{ephemeralPublicKey:s,wrappedKey:a}=await li(e,i,n);return{ephemeralPublicKey:s,C:Is.fromObject({algorithm:t,wrappedKey:a})}}case Q.publicKey.aead:{if(!n)throw Error("Cannot encrypt with symmetric key missing private parameters");const{cipher:e}=r,t=e.getValue(),{keyMaterial:s}=n,a=R.preferredAEADAlgorithm,o=wa(R.preferredAEADAlgorithm),{ivLength:c}=o,u=ye(c),h=await o(t,s),l=await h.encrypt(i,u,new Uint8Array);return{aeadMode:new vs(a),iv:u,c:new bs(l)}}case Q.publicKey.pqc_mlkem_x25519:{const{eccPublicKey:n,mlkemPublicKey:s}=r,{eccCipherText:a,mlkemCipherText:o,wrappedKey:c}=await us(e,n,s,i);return{eccCipherText:a,mlkemCipherText:o,C:Is.fromObject({algorithm:t,wrappedKey:c})}}default:return[]}}async function ba(e,t,r,n,i,s){switch(e){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:{const{c:e}=n,{n:i,e:a}=t,{d:o,p:c,q:u,u:h}=r;return Ge(e,i,a,o,c,u,h,s)}case Q.publicKey.elgamal:{const{c1:e,c2:i}=n;return async function(e,t,r,n,i){return e=te(e),t=te(t),r=te(r),Me(he(re(se(ne(e,n=te(n),r),r)*t,r),"be",ue(r)),i)}(e,i,t.p,r.x,s)}case Q.publicKey.ecdh:{const{oid:e,Q:s,kdfParams:a}=t,{d:o}=r,{V:c,C:u}=n;return Ji(e,a,c,u.data,s,o,i)}case Q.publicKey.x25519:case Q.publicKey.x448:{const{A:i}=t,{k:s}=r,{ephemeralPublicKey:a,C:o}=n;if(null!==o.algorithm&&!M.isAES(o.algorithm))throw Error("AES session key expected");return yi(e,a,o.wrappedKey,i,s)}case Q.publicKey.aead:{const{cipher:e}=t,i=e.getValue(),{keyMaterial:s}=r,{aeadMode:a,iv:o,c}=n,u=wa(a.getValue());return(await u(i,s)).decrypt(c.data,o,new Uint8Array)}case Q.publicKey.pqc_mlkem_x25519:{const{eccSecretKey:i,mlkemSecretKey:s}=r,{eccPublicKey:a,mlkemPublicKey:o}=t,{eccCipherText:c,mlkemCipherText:u,C:h}=n;return hs(e,c,u,i,a,s,o,h.wrappedKey)}default:throw Error("Unknown public key encryption algorithm.")}}async function ka(e,t,r){let n=0;switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:{const e=M.readMPI(t.subarray(n));n+=e.length+2;const r=M.readMPI(t.subarray(n));n+=r.length+2;const i=M.readMPI(t.subarray(n));n+=i.length+2;const s=M.readMPI(t.subarray(n));return n+=s.length+2,{read:n,privateParams:{d:e,p:r,q:i,u:s}}}case Q.publicKey.dsa:case Q.publicKey.elgamal:{const e=M.readMPI(t.subarray(n));return n+=e.length+2,{read:n,privateParams:{x:e}}}case Q.publicKey.ecdsa:case Q.publicKey.ecdh:{const i=Ca(e,r.oid);let s=M.readMPI(t.subarray(n));return n+=s.length+2,s=M.leftPad(s,i),{read:n,privateParams:{d:s}}}case Q.publicKey.eddsaLegacy:{const i=Ca(e,r.oid);if(r.oid.getName()!==Q.curve.ed25519Legacy)throw Error("Unexpected OID for eddsaLegacy");let s=M.readMPI(t.subarray(n));return n+=s.length+2,s=M.leftPad(s,i),{read:n,privateParams:{seed:s}}}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const r=Ca(e),i=M.readExactSubarray(t,n,n+r);return n+=i.length,{read:n,privateParams:{seed:i}}}case Q.publicKey.x25519:case Q.publicKey.x448:{const r=Ca(e),i=M.readExactSubarray(t,n,n+r);return n+=i.length,{read:n,privateParams:{k:i}}}case Q.publicKey.hmac:{const{cipher:e}=r,i=Qe(e.getValue()),s=t.subarray(n,n+32);n+=32;const a=t.subarray(n,n+i);return n+=i,{read:n,privateParams:{hashSeed:s,keyMaterial:a}}}case Q.publicKey.aead:{const{cipher:e}=r,i=t.subarray(n,n+32);n+=32;const{keySize:s}=ri(e.getValue()),a=t.subarray(n,n+s);return n+=s,{read:n,privateParams:{hashSeed:i,keyMaterial:a}}}case Q.publicKey.pqc_mlkem_x25519:{const r=M.readExactSubarray(t,n,n+Ca(Q.publicKey.x25519));n+=r.length;const i=M.readExactSubarray(t,n,n+64);n+=i.length;const{mlkemSecretKey:s}=await os(e,i);return{read:n,privateParams:{eccSecretKey:r,mlkemSecretKey:s,mlkemSeed:i}}}case Q.publicKey.pqc_mldsa_ed25519:{const r=M.readExactSubarray(t,n,n+Ca(Q.publicKey.ed25519));n+=r.length;const i=M.readExactSubarray(t,n,n+32);n+=i.length;const{mldsaSecretKey:s}=await fs(e,i);return{read:n,privateParams:{eccSecretKey:r,mldsaSecretKey:s,mldsaSeed:i}}}default:throw new Yt("Unknown public key encryption algorithm.")}}function Ea(e,t){const r=new Set([Q.publicKey.ed25519,Q.publicKey.x25519,Q.publicKey.ed448,Q.publicKey.x448,Q.publicKey.aead,Q.publicKey.hmac,Q.publicKey.pqc_mlkem_x25519,Q.publicKey.pqc_mldsa_ed25519]),n={[Q.publicKey.pqc_mlkem_x25519]:new Set(["mlkemSecretKey"]),[Q.publicKey.pqc_mldsa_ed25519]:new Set(["mldsaSecretKey"])},i=Object.keys(t).map((i=>{if(n[e]?.has(i))return new Uint8Array;const s=t[i];return M.isUint8Array(s)?r.has(e)?s:M.uint8ArrayToMPI(s):s.write()}));return M.concatUint8Array(i)}async function va(e,t,r,n){switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:return async function(e,t){if(t=BigInt(t),M.getWebCrypto()){const r={name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:he(t),hash:{name:"SHA-1"}},n=await Fe.generateKey(r,!0,["sign","verify"]);return Ve(await Fe.exportKey("jwk",n.privateKey),t)}if(M.getNodeCrypto()){const r={modulusLength:e,publicExponent:ae(t),publicKeyEncoding:{type:"pkcs1",format:"jwk"},privateKeyEncoding:{type:"pkcs1",format:"jwk"}},n=await new Promise(((e,t)=>{Ne.generateKeyPair("rsa",r,((r,n,i)=>{r?t(r):e(i)}))}));return Ve(n,t)}let r,n,i;do{n=pe(e-(e>>1),t,40),r=pe(e>>1,t,40),i=r*n}while(ce(i)!==e);const s=(r-Oe)*(n-Oe);return n<r&&([r,n]=[n,r]),{n:he(i),e:he(t),d:he(se(t,s)),p:he(r),q:he(n),u:he(se(r,n))}}(t,65537).then((({n:e,e:t,d:r,p:n,q:i,u:s})=>({privateParams:{d:r,p:n,q:i,u:s},publicParams:{n:e,e:t}})));case Q.publicKey.ecdsa:return Si(r).then((({oid:e,Q:t,secret:r})=>({privateParams:{d:r},publicParams:{oid:new Ot(e),Q:t}})));case Q.publicKey.eddsaLegacy:return Si(r).then((({oid:e,Q:t,secret:r})=>({privateParams:{seed:r},publicParams:{oid:new Ot(e),Q:t}})));case Q.publicKey.ecdh:return Si(r).then((({oid:e,Q:t,secret:r,hash:n,cipher:i})=>({privateParams:{d:r},publicParams:{oid:new Ot(e),Q:t,kdfParams:new ks({hash:n,cipher:i})}})));case Q.publicKey.ed25519:case Q.publicKey.ed448:return _r(e).then((({A:e,seed:t})=>({privateParams:{seed:t},publicParams:{A:e}})));case Q.publicKey.x25519:case Q.publicKey.x448:return ui(e).then((({A:e,k:t})=>({privateParams:{k:t},publicParams:{A:e}})));case Q.publicKey.hmac:return Ba(await async function(e){if(!is.has(e))throw Error("Unsupported hash algorithm.");const t=Q.read(Q.webHash,e),r=ss||as.webcrypto.subtle,n=await r.generateKey({name:"HMAC",hash:{name:t}},!0,["sign","verify"]),i=await r.exportKey("raw",n);return new Uint8Array(i)}(n),new Ss(n));case Q.publicKey.aead:return Ba(Ia(n),new Bs(n));case Q.publicKey.pqc_mlkem_x25519:return cs(e).then((({eccSecretKey:e,eccPublicKey:t,mlkemSeed:r,mlkemSecretKey:n,mlkemPublicKey:i})=>({privateParams:{eccSecretKey:e,mlkemSeed:r,mlkemSecretKey:n},publicParams:{eccPublicKey:t,mlkemPublicKey:i}})));case Q.publicKey.pqc_mldsa_ed25519:return gs(e).then((({eccSecretKey:e,eccPublicKey:t,mldsaSeed:r,mldsaSecretKey:n,mldsaPublicKey:i})=>({privateParams:{eccSecretKey:e,mldsaSeed:r,mldsaSecretKey:n},publicParams:{eccPublicKey:t,mldsaPublicKey:i}})));case Q.publicKey.dsa:case Q.publicKey.elgamal:throw Error("Unsupported algorithm for key generation.");default:throw Error("Unknown public key algorithm.")}}async function Ba(e,t){const r=ye(32);return{privateParams:{hashSeed:r,keyMaterial:e},publicParams:{cipher:t,digest:await xe(Q.hash.sha256,r)}}}async function Sa(e,t,r){if(!t||!r)throw Error("Missing key parameters");switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:{const{n:e,e:n}=t,{d:i,p:s,q:a,u:o}=r;return async function(e,t,r,n,i,s){if(e=te(e),(n=te(n))*(i=te(i))!==e)return!1;const a=BigInt(2);if(re(n*(s=te(s)),i)!==BigInt(1))return!1;t=te(t),r=te(r);const o=fe(a,a<<BigInt(Math.floor(ce(e)/3))),c=o*r*t;return!(re(c,n-Oe)!==o||re(c,i-Oe)!==o)}(e,n,i,s,a,o)}case Q.publicKey.dsa:{const{p:e,q:n,g:i,y:s}=t,{x:a}=r;return async function(e,t,r,n,i){if(e=te(e),t=te(t),r=te(r),n=te(n),r<=ns||r>=e)return!1;if(re(e-ns,t)!==rs)return!1;if(ne(r,t,e)!==ns)return!1;const s=BigInt(ce(t));if(s<BigInt(150)||!de(t,null,32))return!1;i=te(i);const a=BigInt(2);return n===ne(r,t*fe(a<<s-ns,a<<s)+i,e)}(e,n,i,s,a)}case Q.publicKey.elgamal:{const{p:e,g:n,y:i}=t,{x:s}=r;return async function(e,t,r,n){if(e=te(e),t=te(t),r=te(r),t<=Ye||t>=e)return!1;const i=BigInt(ce(e));if(i<BigInt(1023))return!1;if(ne(t,e-Ye,e)!==Ye)return!1;let s=t,a=BigInt(1);const o=BigInt(2),c=o<<BigInt(17);for(;a<c;){if(s=re(s*t,e),s===Ye)return!1;a++}n=te(n);const u=fe(o<<i-Ye,o<<i);return r===ne(t,(e-Ye)*u+n,e)}(e,n,i,s)}case Q.publicKey.ecdsa:case Q.publicKey.ecdh:{const n=ts[Q.read(Q.publicKey,e)],{oid:i,Q:s}=t,{d:a}=r;return n.validateParams(i,s,a)}case Q.publicKey.eddsaLegacy:{const{Q:e,oid:n}=t,{seed:i}=r;return _i(n,e,i)}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const{A:n}=t,{seed:i}=r;return Gr(e,n,i)}case Q.publicKey.x25519:case Q.publicKey.x448:{const{A:n}=t,{k:i}=r;return hi(e,n,i)}case Q.publicKey.hmac:{const{cipher:e,digest:n}=t,{hashSeed:i,keyMaterial:s}=r;return Qe(e.getValue())===s.length&&M.equalsUint8Array(n,await xe(Q.hash.sha256,i))}case Q.publicKey.aead:{const{cipher:e,digest:n}=t,{hashSeed:i,keyMaterial:s}=r,{keySize:a}=ri(e.getValue());return a===s.length&&M.equalsUint8Array(n,await xe(Q.hash.sha256,i))}case Q.publicKey.pqc_mlkem_x25519:{const{eccSecretKey:n,mlkemSeed:i}=r,{eccPublicKey:s,mlkemPublicKey:a}=t;return ys(e,s,n,a,i)}case Q.publicKey.pqc_mldsa_ed25519:{const{eccSecretKey:n,mldsaSeed:i}=r,{eccPublicKey:s,mldsaPublicKey:a}=t;return ws(e,s,n,a,i)}default:throw Error("Unknown public key algorithm.")}}function Ia(e){const{keySize:t}=ri(e);return ye(t)}function Ka(e){try{e.getName()}catch(e){throw new Yt("Unknown curve OID")}}function Ca(e,t){switch(e){case Q.publicKey.ecdsa:case Q.publicKey.ecdh:case Q.publicKey.eddsaLegacy:return new Bi(t).payloadSize;case Q.publicKey.ed25519:case Q.publicKey.ed448:return qr(e);case Q.publicKey.x25519:case Q.publicKey.x448:return fi(e);default:throw Error("Unknown elliptic algo")}}async function Ua(e,t,r,n,i,s,a){switch(e){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaSign:{const{n:e,e:i}=n;return He(t,s,M.leftPad(r.s,e.length),e,i,a)}case Q.publicKey.dsa:{const{g:e,p:t,q:i,y:s}=n,{r:o,s:c}=r;return async function(e,t,r,n,i,s,a,o){if(t=te(t),r=te(r),s=te(s),a=te(a),i=te(i),o=te(o),t<=rs||t>=a||r<=rs||r>=a)return M.printDebug("invalid DSA Signature"),!1;const c=re(te(n.subarray(0,ue(a))),a),u=se(r,a);if(u===rs)return M.printDebug("invalid DSA Signature"),!1;i=re(i,s),o=re(o,s);const h=re(c*u,a),l=re(t*u,a);return re(re(ne(i,h,s)*ne(o,l,s),s),a)===t}(0,o,c,a,e,t,i,s)}case Q.publicKey.ecdsa:{const{oid:e,Q:i}=n,o=new Bi(e).payloadSize;return Mi(e,t,{r:M.leftPad(r.r,o),s:M.leftPad(r.s,o)},s,i,a)}case Q.publicKey.eddsaLegacy:{const{oid:e,Q:i}=n,s=new Bi(e).payloadSize;return Oi(e,t,{r:M.leftPad(r.r,s),s:M.leftPad(r.s,s)},0,i,a)}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const{A:i}=n;return zr(e,t,r,0,i,a)}case Q.publicKey.hmac:{if(!i)throw Error("Cannot verify HMAC signature with symmetric key missing private parameters");const{cipher:e}=n,{keyMaterial:t}=i;return async function(e,t,r,n){if(!is.has(e))throw Error("Unsupported hash algorithm.");const i=Q.read(Q.webHash,e),s=ss||as.webcrypto.subtle,a=await s.importKey("raw",t,{name:"HMAC",hash:{name:i}},!1,["verify"]);return s.verify("HMAC",a,r,n)}(e.getValue(),t,r.mac.data,a)}case Q.publicKey.pqc_mldsa_ed25519:{const{eccPublicKey:i,mldsaPublicKey:s}=n;return ds(e,t,i,s,a,r)}default:throw Error("Unknown signature algorithm.")}}async function Pa(e,t,r,n,i,s){if(!r||!n)throw Error("Missing key parameters");switch(e){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaSign:{const{n:e,e:a}=r,{d:o,p:c,q:u,u:h}=n;return{s:await _e(t,i,e,a,o,c,u,h,s)}}case Q.publicKey.dsa:{const{g:e,p:t,q:i}=r,{x:a}=n;return async function(e,t,r,n,i,s){const a=BigInt(0);let o,c,u,h;n=te(n),i=te(i),r=te(r),s=te(s),r=re(r,n),s=re(s,i);const l=re(te(t.subarray(0,ue(i))),i);for(;;){if(o=fe(ns,i),c=re(ne(r,o,n),i),c===a)continue;const e=re(s*c,i);if(h=re(l+e,i),u=re(se(o,i)*h,i),u!==a)break}return{r:he(c,"be",ue(n)),s:he(u,"be",ue(n))}}(0,s,e,t,i,a)}case Q.publicKey.elgamal:throw Error("Signing with Elgamal is not defined in the OpenPGP standard.");case Q.publicKey.ecdsa:{const{oid:e,Q:a}=r,{d:o}=n;return Ti(e,t,i,a,o,s)}case Q.publicKey.eddsaLegacy:{const{oid:e,Q:i}=r,{seed:a}=n;return Ni(e,t,0,i,a,s)}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const{A:i}=r,{seed:a}=n;return Hr(e,t,0,i,a,s)}case Q.publicKey.hmac:{const{cipher:e}=r,{keyMaterial:t}=n,i=await async function(e,t,r){if(!is.has(e))throw Error("Unsupported hash algorithm.");const n=Q.read(Q.webHash,e),i=ss||as.webcrypto.subtle,s=await i.importKey("raw",t,{name:"HMAC",hash:{name:n}},!1,["sign"]),a=await i.sign("HMAC",s,r);return new Uint8Array(a)}(e.getValue(),t,s);return{mac:new bs(i)}}case Q.publicKey.pqc_mldsa_ed25519:{const{eccPublicKey:i}=r,{eccSecretKey:a,mldsaSecretKey:o}=n;return ps(e,t,a,i,o,s)}default:throw Error("Unknown signature algorithm.")}}Aa.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[4+e]^=t[e];return r},Aa.blockLength=16,Aa.ivLength=12,Aa.tagLength=pa;class Da extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,Da),this.name="Argon2OutOfMemoryError"}}let xa,Qa,Ra=2<<19;class Ta{static get ARGON2_WASM_MEMORY_THRESHOLD_RELOAD(){return Ra}static set ARGON2_WASM_MEMORY_THRESHOLD_RELOAD(e){Ra=e}static reloadWasmModule(){xa&&(Qa=xa(),Qa.catch((()=>{})))}constructor(e=R){const{passes:t,parallelism:r,memoryExponent:n}=e.s2kArgon2Params;this.type="argon2",this.salt=null,this.t=t,this.p=r,this.encodedM=n}generateSalt(){this.salt=ye(16)}read(e){let t=0;return this.salt=e.subarray(t,t+16),t+=16,this.t=e[t++],this.p=e[t++],this.encodedM=e[t++],t}write(){const e=[new Uint8Array([Q.write(Q.s2k,this.type)]),this.salt,new Uint8Array([this.t,this.p,this.encodedM])];return M.concatUint8Array(e)}async produceKey(e,t){const r=2<<this.encodedM-1;try{xa=xa||(await Promise.resolve().then((function(){return mp}))).default,Qa=Qa||xa();const n=await Qa,i=n({version:19,type:2,password:M.encodeUTF8(e),salt:this.salt,tagLength:t,memorySize:r,parallelism:this.p,passes:this.t});return r>Ta.ARGON2_WASM_MEMORY_THRESHOLD_RELOAD&&Ta.reloadWasmModule(),i}catch(e){throw e.message&&(e.message.includes("Unable to grow instance memory")||e.message.includes("failed to grow memory")||e.message.includes("WebAssembly.Memory.grow")||e.message.includes("Out of memory"))?new Da("Could not allocate required memory for Argon2"):e}}}class Ma{constructor(e,t=R){this.algorithm=Q.hash.sha256,this.type=Q.read(Q.s2k,e),this.c=t.s2kIterationCountByte,this.salt=null}generateSalt(){switch(this.type){case"salted":case"iterated":this.salt=ye(8)}}getCount(){return 16+(15&this.c)<<6+(this.c>>4)}read(e){let t=0;switch(this.algorithm=e[t++],this.type){case"simple":break;case"salted":this.salt=e.subarray(t,t+8),t+=8;break;case"iterated":this.salt=e.subarray(t,t+8),t+=8,this.c=e[t++];break;case"gnu":if("GNU"!==M.uint8ArrayToString(e.subarray(t,t+3)))throw new Yt("Unknown s2k type.");t+=3;if(1001!==1e3+e[t++])throw new Yt("Unknown s2k gnu protection mode.");this.type="gnu-dummy";break;default:throw new Yt("Unknown s2k type.")}return t}write(){if("gnu-dummy"===this.type)return new Uint8Array([101,0,...M.stringToUint8Array("GNU"),1]);const e=[new Uint8Array([Q.write(Q.s2k,this.type),this.algorithm])];switch(this.type){case"simple":break;case"salted":e.push(this.salt);break;case"iterated":e.push(this.salt),e.push(new Uint8Array([this.c]));break;case"gnu":throw Error("GNU s2k type not supported.");default:throw Error("Unknown s2k type.")}return M.concatUint8Array(e)}async produceKey(e,t){e=M.encodeUTF8(e);const r=[];let n=0,i=0;for(;n<t;){let t;switch(this.type){case"simple":t=M.concatUint8Array([new Uint8Array(i),e]);break;case"salted":t=M.concatUint8Array([new Uint8Array(i),this.salt,e]);break;case"iterated":{const r=M.concatUint8Array([this.salt,e]);let n=r.length;const s=Math.max(this.getCount(),n);t=new Uint8Array(i+s),t.set(r,i);for(let e=i+n;e<s;e+=n,n*=2)t.copyWithin(e,i,e);break}case"gnu":throw Error("GNU s2k type not supported.");default:throw Error("Unknown s2k type.")}const s=await xe(this.algorithm,t);r.push(s),n+=s.length,i++}return M.concatUint8Array(r).subarray(0,t)}}const La=new Set([Q.s2k.argon2,Q.s2k.iterated]);function Fa(e,t=R){switch(e){case Q.s2k.argon2:return new Ta(t);case Q.s2k.iterated:case Q.s2k.gnu:case Q.s2k.salted:case Q.s2k.simple:return new Ma(e,t);default:throw new Yt("Unsupported S2K type")}}function Na(e){const{s2kType:t}=e;if(!La.has(t))throw Error("The provided `config.s2kType` value is not allowed");return Fa(t,e)}var Oa=Uint8Array,_a=Uint16Array,Ha=Uint32Array,za=new Oa([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Ga=new Oa([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),qa=new Oa([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ja=function(e,t){for(var r=new _a(31),n=0;n<31;++n)r[n]=t+=1<<e[n-1];var i=new Ha(r[30]);for(n=1;n<30;++n)for(var s=r[n];s<r[n+1];++s)i[s]=s-r[n]<<5|n;return[r,i]},Va=ja(za,2),Ya=Va[0],Za=Va[1];Ya[28]=258,Za[258]=28;for(var Wa=ja(Ga,0),Ja=Wa[0],Xa=Wa[1],$a=new _a(32768),eo=0;eo<32768;++eo){var to=(43690&eo)>>>1|(21845&eo)<<1;to=(61680&(to=(52428&to)>>>2|(13107&to)<<2))>>>4|(3855&to)<<4,$a[eo]=((65280&to)>>>8|(255&to)<<8)>>>1}var ro=function(e,t,r){for(var n=e.length,i=0,s=new _a(t);i<n;++i)e[i]&&++s[e[i]-1];var a,o=new _a(t);for(i=0;i<t;++i)o[i]=o[i-1]+s[i-1]<<1;if(r){a=new _a(1<<t);var c=15-t;for(i=0;i<n;++i)if(e[i])for(var u=i<<4|e[i],h=t-e[i],l=o[e[i]-1]++<<h,y=l|(1<<h)-1;l<=y;++l)a[$a[l]>>>c]=u}else for(a=new _a(n),i=0;i<n;++i)e[i]&&(a[i]=$a[o[e[i]-1]++]>>>15-e[i]);return a},no=new Oa(288);for(eo=0;eo<144;++eo)no[eo]=8;for(eo=144;eo<256;++eo)no[eo]=9;for(eo=256;eo<280;++eo)no[eo]=7;for(eo=280;eo<288;++eo)no[eo]=8;var io=new Oa(32);for(eo=0;eo<32;++eo)io[eo]=5;var so=/*#__PURE__*/ro(no,9,0),ao=/*#__PURE__*/ro(no,9,1),oo=/*#__PURE__*/ro(io,5,0),co=/*#__PURE__*/ro(io,5,1),uo=function(e){for(var t=e[0],r=1;r<e.length;++r)e[r]>t&&(t=e[r]);return t},ho=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},lo=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},yo=function(e){return(e+7)/8|0},fo=function(e,t,r){(null==t||t<0)&&(t=0),(null==r||r>e.length)&&(r=e.length);var n=new(2==e.BYTES_PER_ELEMENT?_a:4==e.BYTES_PER_ELEMENT?Ha:Oa)(r-t);return n.set(e.subarray(t,r)),n},go=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],po=function(e,t,r){var n=Error(t||go[e]);if(n.code=e,Error.captureStackTrace&&Error.captureStackTrace(n,po),!r)throw n;return n},Ao=function(e,t,r){r<<=7&t;var n=t/8|0;e[n]|=r,e[n+1]|=r>>>8},wo=function(e,t,r){r<<=7&t;var n=t/8|0;e[n]|=r,e[n+1]|=r>>>8,e[n+2]|=r>>>16},mo=function(e,t){for(var r=[],n=0;n<e.length;++n)e[n]&&r.push({s:n,f:e[n]});var i=r.length,s=r.slice();if(!i)return[Io,0];if(1==i){var a=new Oa(r[0].s+1);return a[r[0].s]=1,[a,1]}r.sort((function(e,t){return e.f-t.f})),r.push({s:-1,f:25001});var o=r[0],c=r[1],u=0,h=1,l=2;for(r[0]={s:-1,f:o.f+c.f,l:o,r:c};h!=i-1;)o=r[r[u].f<r[l].f?u++:l++],c=r[u!=h&&r[u].f<r[l].f?u++:l++],r[h++]={s:-1,f:o.f+c.f,l:o,r:c};var y=s[0].s;for(n=1;n<i;++n)s[n].s>y&&(y=s[n].s);var f=new _a(y+1),g=bo(r[h-1],f,0);if(g>t){n=0;var p=0,d=g-t,A=1<<d;for(s.sort((function(e,t){return f[t.s]-f[e.s]||e.f-t.f}));n<i;++n){var w=s[n].s;if(!(f[w]>t))break;p+=A-(1<<g-f[w]),f[w]=t}for(p>>>=d;p>0;){var m=s[n].s;f[m]<t?p-=1<<t-f[m]++-1:++n}for(;n>=0&&p;--n){var b=s[n].s;f[b]==t&&(--f[b],++p)}g=t}return[new Oa(f),g]},bo=function(e,t,r){return-1==e.s?Math.max(bo(e.l,t,r+1),bo(e.r,t,r+1)):t[e.s]=r},ko=function(e){for(var t=e.length;t&&!e[--t];);for(var r=new _a(++t),n=0,i=e[0],s=1,a=function(e){r[n++]=e},o=1;o<=t;++o)if(e[o]==i&&o!=t)++s;else{if(!i&&s>2){for(;s>138;s-=138)a(32754);s>2&&(a(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(a(i),--s;s>6;s-=6)a(8304);s>2&&(a(s-3<<5|8208),s=0)}for(;s--;)a(i);s=1,i=e[o]}return[r.subarray(0,n),t]},Eo=function(e,t){for(var r=0,n=0;n<t.length;++n)r+=e[n]*t[n];return r},vo=function(e,t,r){var n=r.length,i=yo(t+2);e[i]=255&n,e[i+1]=n>>>8,e[i+2]=255^e[i],e[i+3]=255^e[i+1];for(var s=0;s<n;++s)e[i+s+4]=r[s];return 8*(i+4+n)},Bo=function(e,t,r,n,i,s,a,o,c,u,h){Ao(t,h++,r),++i[256];for(var l=mo(i,15),y=l[0],f=l[1],g=mo(s,15),p=g[0],d=g[1],A=ko(y),w=A[0],m=A[1],b=ko(p),k=b[0],E=b[1],v=new _a(19),B=0;B<w.length;++B)v[31&w[B]]++;for(B=0;B<k.length;++B)v[31&k[B]]++;for(var S=mo(v,7),I=S[0],K=S[1],C=19;C>4&&!I[qa[C-1]];--C);var U,P,D,x,Q=u+5<<3,R=Eo(i,no)+Eo(s,io)+a,T=Eo(i,y)+Eo(s,p)+a+14+3*C+Eo(v,I)+(2*v[16]+3*v[17]+7*v[18]);if(Q<=R&&Q<=T)return vo(t,h,e.subarray(c,c+u));if(Ao(t,h,1+(T<R)),h+=2,T<R){U=ro(y,f,0),P=y,D=ro(p,d,0),x=p;var M=ro(I,K,0);Ao(t,h,m-257),Ao(t,h+5,E-1),Ao(t,h+10,C-4),h+=14;for(B=0;B<C;++B)Ao(t,h+3*B,I[qa[B]]);h+=3*C;for(var L=[w,k],F=0;F<2;++F){var N=L[F];for(B=0;B<N.length;++B){var O=31&N[B];Ao(t,h,M[O]),h+=I[O],O>15&&(Ao(t,h,N[B]>>>5&127),h+=N[B]>>>12)}}}else U=so,P=no,D=oo,x=io;for(B=0;B<o;++B)if(n[B]>255){O=n[B]>>>18&31;wo(t,h,U[O+257]),h+=P[O+257],O>7&&(Ao(t,h,n[B]>>>23&31),h+=za[O]);var _=31&n[B];wo(t,h,D[_]),h+=x[_],_>3&&(wo(t,h,n[B]>>>5&8191),h+=Ga[_])}else wo(t,h,U[n[B]]),h+=P[n[B]];return wo(t,h,U[256]),h+P[256]},So=/*#__PURE__*/new Ha([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Io=/*#__PURE__*/new Oa(0),Ko=function(e,t,r,n,i){return function(e,t,r,n,i,s){var a=e.length,o=new Oa(n+a+5*(1+Math.ceil(a/7e3))+i),c=o.subarray(n,o.length-i),u=0;if(!t||a<8)for(var h=0;h<=a;h+=65535){var l=h+65535;l>=a&&(c[u>>3]=s),u=vo(c,u+1,e.subarray(h,l))}else{for(var y=So[t-1],f=y>>>13,g=8191&y,p=(1<<r)-1,d=new _a(32768),A=new _a(p+1),w=Math.ceil(r/3),m=2*w,b=function(t){return(e[t]^e[t+1]<<w^e[t+2]<<m)&p},k=new Ha(25e3),E=new _a(288),v=new _a(32),B=0,S=0,I=(h=0,0),K=0,C=0;h<a;++h){var U=b(h),P=32767&h,D=A[U];if(d[P]=D,A[U]=P,K<=h){var x=a-h;if((B>7e3||I>24576)&&x>423){u=Bo(e,c,0,k,E,v,S,I,C,h-C,u),I=B=S=0,C=h;for(var Q=0;Q<286;++Q)E[Q]=0;for(Q=0;Q<30;++Q)v[Q]=0}var R=2,T=0,M=g,L=P-D&32767;if(x>2&&U==b(h-L))for(var F=Math.min(f,x)-1,N=Math.min(32767,h),O=Math.min(258,x);L<=N&&--M&&P!=D;){if(e[h+R]==e[h+R-L]){for(var _=0;_<O&&e[h+_]==e[h+_-L];++_);if(_>R){if(R=_,T=L,_>F)break;var H=Math.min(L,_-2),z=0;for(Q=0;Q<H;++Q){var G=h-L+Q+32768&32767,q=G-d[G]+32768&32767;q>z&&(z=q,D=G)}}}L+=(P=D)-(D=d[P])+32768&32767}if(T){k[I++]=268435456|Za[R]<<18|Xa[T];var j=31&Za[R],V=31&Xa[T];S+=za[j]+Ga[V],++E[257+j],++v[V],K=h+R,++B}else k[I++]=e[h],++E[e[h]]}}u=Bo(e,c,s,k,E,v,S,I,C,h-C,u),!s&&7&u&&(u=vo(c,u+1,Io))}return fo(o,0,n+yo(u)+i)}(e,null==t.level?6:t.level,null==t.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,r,n,!i)},Co=/*#__PURE__*/function(){function e(e,t){t||"function"!=typeof e||(t=e,e={}),this.ondata=t,this.o=e||{}}return e.prototype.p=function(e,t){this.ondata(Ko(e,this.o,0,0,!t),t)},e.prototype.push=function(e,t){this.ondata||po(5),this.d&&po(4),this.d=t,this.p(e,t||!1)},e}(),Uo=/*#__PURE__*/function(){function e(e){this.s={},this.p=new Oa(0),this.ondata=e}return e.prototype.e=function(e){this.ondata||po(5),this.d&&po(4);var t=this.p.length,r=new Oa(t+e.length);r.set(this.p),r.set(e,t),this.p=r},e.prototype.c=function(e){this.d=this.s.i=e||!1;var t=this.s.b,r=function(e,t,r){var n=e.length;if(!n||r&&r.f&&!r.l)return t||new Oa(0);var i=!t||r,s=!r||r.i;r||(r={}),t||(t=new Oa(3*n));var a=function(e){var r=t.length;if(e>r){var n=new Oa(Math.max(2*r,e));n.set(t),t=n}},o=r.f||0,c=r.p||0,u=r.b||0,h=r.l,l=r.d,y=r.m,f=r.n,g=8*n;do{if(!h){o=ho(e,c,1);var p=ho(e,c+1,3);if(c+=3,!p){var d=e[(K=yo(c)+4)-4]|e[K-3]<<8,A=K+d;if(A>n){s&&po(0);break}i&&a(u+d),t.set(e.subarray(K,A),u),r.b=u+=d,r.p=c=8*A,r.f=o;continue}if(1==p)h=ao,l=co,y=9,f=5;else if(2==p){var w=ho(e,c,31)+257,m=ho(e,c+10,15)+4,b=w+ho(e,c+5,31)+1;c+=14;for(var k=new Oa(b),E=new Oa(19),v=0;v<m;++v)E[qa[v]]=ho(e,c+3*v,7);c+=3*m;var B=uo(E),S=(1<<B)-1,I=ro(E,B,1);for(v=0;v<b;){var K,C=I[ho(e,c,S)];if(c+=15&C,(K=C>>>4)<16)k[v++]=K;else{var U=0,P=0;for(16==K?(P=3+ho(e,c,3),c+=2,U=k[v-1]):17==K?(P=3+ho(e,c,7),c+=3):18==K&&(P=11+ho(e,c,127),c+=7);P--;)k[v++]=U}}var D=k.subarray(0,w),x=k.subarray(w);y=uo(D),f=uo(x),h=ro(D,y,1),l=ro(x,f,1)}else po(1);if(c>g){s&&po(0);break}}i&&a(u+131072);for(var Q=(1<<y)-1,R=(1<<f)-1,T=c;;T=c){var M=(U=h[lo(e,c)&Q])>>>4;if((c+=15&U)>g){s&&po(0);break}if(U||po(2),M<256)t[u++]=M;else{if(256==M){T=c,h=null;break}var L=M-254;if(M>264){var F=za[v=M-257];L=ho(e,c,(1<<F)-1)+Ya[v],c+=F}var N=l[lo(e,c)&R],O=N>>>4;if(N||po(3),c+=15&N,x=Ja[O],O>3&&(F=Ga[O],x+=lo(e,c)&(1<<F)-1,c+=F),c>g){s&&po(0);break}i&&a(u+131072);for(var _=u+L;u<_;u+=4)t[u]=t[u-x],t[u+1]=t[u+1-x],t[u+2]=t[u+2-x],t[u+3]=t[u+3-x];u=_}}r.l=h,r.p=T,r.b=u,r.f=o,h&&(o=1,r.m=y,r.d=l,r.n=f)}while(!o);return u==t.length?t:fo(t,0,u)}(this.p,this.o,this.s);this.ondata(fo(r,t,this.s.b),this.d),this.o=fo(r,this.s.b-32768),this.s.b=this.o.length,this.p=fo(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),Po=/*#__PURE__*/function(){function e(e,t){var r,n;this.c=(r=1,n=0,{p:function(e){for(var t=r,i=n,s=0|e.length,a=0;a!=s;){for(var o=Math.min(a+2655,s);a<o;++a)i+=t+=e[a];t=(65535&t)+15*(t>>16),i=(65535&i)+15*(i>>16)}r=t,n=i},d:function(){return(255&(r%=65521))<<24|r>>>8<<16|(255&(n%=65521))<<8|n>>>8}}),this.v=1,Co.call(this,e,t)}return e.prototype.push=function(e,t){Co.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){this.c.p(e);var r=Ko(e,this.o,this.v&&2,t&&4,!t);this.v&&(function(e,t){var r=t.level,n=0==r?0:r<6?1:9==r?3:2;e[0]=120,e[1]=n<<6|(n?32-2*n:1)}(r,this.o),this.v=0),t&&function(e,t,r){for(;r;++t)e[t]=r,r>>>=8}(r,r.length-4,this.c.d()),this.ondata(r,t)},e}(),Do=/*#__PURE__*/function(){function e(e){this.v=1,Uo.call(this,e)}return e.prototype.push=function(e,t){if(Uo.prototype.e.call(this,e),this.v){if(this.p.length<2&&!t)return;this.p=this.p.subarray(2),this.v=0}t&&(this.p.length<4&&po(6,"invalid zlib data"),this.p=this.p.subarray(0,-4)),Uo.prototype.c.call(this,t)},e}(),xo="undefined"!=typeof TextDecoder&&/*#__PURE__*/new TextDecoder;try{xo.decode(Io,{stream:!0}),1}catch(e){}class Qo{static get tag(){return Q.packet.literalData}constructor(e=new Date){this.format=Q.literal.utf8,this.date=M.normalizeDate(e),this.text=null,this.data=null,this.filename=""}setText(e,t=Q.literal.utf8){this.format=t,this.text=e,this.data=null}getText(e=!1){return(null===this.text||M.isStream(this.text))&&(this.text=M.decodeUTF8(M.nativeEOL(this.getBytes(e)))),this.text}setBytes(e,t){this.format=t,this.data=e,this.text=null}getBytes(e=!1){return null===this.data&&(this.data=M.canonicalizeEOL(M.encodeUTF8(this.text))),e?B(this.data):this.data}setFilename(e){this.filename=e}getFilename(){return this.filename}async read(e){await E(e,(async e=>{const t=await e.readByte(),r=await e.readByte();this.filename=M.decodeUTF8(await e.readBytes(r)),this.date=M.readDate(await e.readBytes(4));let n=e.remainder();a(n)&&(n=await K(n)),this.setBytes(n,t)}))}writeHeader(){const e=M.encodeUTF8(this.filename),t=new Uint8Array([e.length]),r=new Uint8Array([this.format]),n=M.writeDate(this.date);return M.concatUint8Array([r,t,e,n])}write(){const e=this.writeHeader(),t=this.getBytes();return M.concat([e,t])}}class Ro{constructor(){this.bytes=""}read(e){return this.bytes=M.uint8ArrayToString(e.subarray(0,8)),this.bytes.length}write(){return M.stringToUint8Array(this.bytes)}toHex(){return M.uint8ArrayToHex(M.stringToUint8Array(this.bytes))}equals(e,t=!1){return t&&(e.isWildcard()||this.isWildcard())||this.bytes===e.bytes}isNull(){return""===this.bytes}isWildcard(){return/^0+$/.test(this.toHex())}static mapToHex(e){return e.toHex()}static fromID(e){const t=new Ro;return t.read(M.hexToUint8Array(e)),t}static wildcard(){const e=new Ro;return e.read(new Uint8Array(8)),e}}const To=Symbol("verified"),Mo="salt@notations.openpgpjs.org",Lo=new Set([Q.signatureSubpacket.issuerKeyID,Q.signatureSubpacket.issuerFingerprint,Q.signatureSubpacket.embeddedSignature]);class Fo{static get tag(){return Q.packet.signature}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.signatureData=null,this.unhashedSubpackets=[],this.unknownSubpackets=[],this.signedHashValue=null,this.salt=null,this.created=null,this.signatureExpirationTime=null,this.signatureNeverExpires=!0,this.exportable=null,this.trustLevel=null,this.trustAmount=null,this.regularExpression=null,this.revocable=null,this.keyExpirationTime=null,this.keyNeverExpires=null,this.preferredSymmetricAlgorithms=null,this.revocationKeyClass=null,this.revocationKeyAlgorithm=null,this.revocationKeyFingerprint=null,this.issuerKeyID=new Ro,this.rawNotations=[],this.notations={},this.preferredHashAlgorithms=null,this.preferredCompressionAlgorithms=null,this.keyServerPreferences=null,this.preferredKeyServer=null,this.isPrimaryUserID=null,this.policyURI=null,this.keyFlags=null,this.signersUserID=null,this.reasonForRevocationFlag=null,this.reasonForRevocationString=null,this.features=null,this.signatureTargetPublicKeyAlgorithm=null,this.signatureTargetHashAlgorithm=null,this.signatureTargetHash=null,this.embeddedSignature=null,this.issuerKeyVersion=null,this.issuerFingerprint=null,this.preferredAEADAlgorithms=null,this.preferredCipherSuites=null,this.revoked=null,this[To]=null}read(e,t=R){let r=0;if(this.version=e[r++],5===this.version&&!t.enableParsingV5Entities)throw new Yt("Support for v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed");if(4!==this.version&&5!==this.version&&6!==this.version)throw new Yt(`Version ${this.version} of the signature packet is unsupported.`);if(this.signatureType=e[r++],this.publicKeyAlgorithm=e[r++],this.hashAlgorithm=e[r++],r+=this.readSubPackets(e.subarray(r,e.length),!0),!this.created)throw Error("Missing signature creation time subpacket.");if(this.signatureData=e.subarray(0,r),r+=this.readSubPackets(e.subarray(r,e.length),!1),this.signedHashValue=e.subarray(r,r+2),r+=2,6===this.version){const t=e[r++];this.salt=e.subarray(r,r+t),r+=t}const n=e.subarray(r,e.length),{read:i,signatureParams:s}=function(e,t){let r=0;switch(e){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaSign:{const e=M.readMPI(t.subarray(r));return r+=e.length+2,{read:r,signatureParams:{s:e}}}case Q.publicKey.dsa:case Q.publicKey.ecdsa:{const e=M.readMPI(t.subarray(r));r+=e.length+2;const n=M.readMPI(t.subarray(r));return r+=n.length+2,{read:r,signatureParams:{r:e,s:n}}}case Q.publicKey.eddsaLegacy:{const e=M.readMPI(t.subarray(r));r+=e.length+2;const n=M.readMPI(t.subarray(r));return r+=n.length+2,{read:r,signatureParams:{r:e,s:n}}}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const n=2*qr(e),i=M.readExactSubarray(t,r,r+n);return r+=i.length,{read:r,signatureParams:{RS:i}}}case Q.publicKey.hmac:{const e=new bs;return r+=e.read(t.subarray(r)),{read:r,signatureParams:{mac:e}}}case Q.publicKey.pqc_mldsa_ed25519:{const e=2*qr(Q.publicKey.ed25519),n=M.readExactSubarray(t,r,r+e);r+=n.length;const i=M.readExactSubarray(t,r,r+3309);return r+=i.length,{read:r,signatureParams:{eccSignature:n,mldsaSignature:i}}}default:throw new Yt("Unknown signature algorithm.")}}(this.publicKeyAlgorithm,n);if(i<n.length)throw Error("Error reading MPIs");this.params=s}writeParams(){return this.params instanceof Promise?U((async()=>Ea(this.publicKeyAlgorithm,await this.params))):Ea(this.publicKeyAlgorithm,this.params)}write(){const e=[];return e.push(this.signatureData),e.push(this.writeUnhashedSubPackets()),e.push(this.signedHashValue),6===this.version&&(e.push(new Uint8Array([this.salt.length])),e.push(this.salt)),e.push(this.writeParams()),M.concat(e)}async sign(e,t,r=new Date,n=!1,i){this.version=e.version,this.created=M.normalizeDate(r),this.issuerKeyVersion=e.version,this.issuerFingerprint=e.getFingerprintBytes(),this.issuerKeyID=e.getKeyID();const s=[new Uint8Array([this.version,this.signatureType,this.publicKeyAlgorithm,this.hashAlgorithm])];if(6===this.version){const e=Oo(this.hashAlgorithm);if(null===this.salt)this.salt=ye(e);else if(e!==this.salt.length)throw Error("Provided salt does not have the required length")}else if(i.nonDeterministicSignaturesViaNotation){if(0!==this.rawNotations.filter((({name:e})=>e===Mo)).length)throw Error("Unexpected existing salt notation");{const e=ye(Oo(this.hashAlgorithm));this.rawNotations.push({name:Mo,value:e,humanReadable:!1,critical:!1})}}s.push(this.writeHashedSubPackets()),this.unhashedSubpackets=[],this.signatureData=M.concat(s);const a=this.toHash(this.signatureType,t,n),o=await this.hash(this.signatureType,t,a,n);this.signedHashValue=I(v(o),0,2);const c=async()=>Pa(this.publicKeyAlgorithm,this.hashAlgorithm,e.publicParams,e.privateParams,a,await K(o));M.isStream(o)?this.params=c():(this.params=await c(),this[To]=!0)}writeHashedSubPackets(){const e=Q.signatureSubpacket,t=[];let r;if(null===this.created)throw Error("Missing signature creation time");t.push(No(e.signatureCreationTime,!0,M.writeDate(this.created))),null!==this.signatureExpirationTime&&t.push(No(e.signatureExpirationTime,!0,M.writeNumber(this.signatureExpirationTime,4))),null!==this.exportable&&t.push(No(e.exportableCertification,!0,new Uint8Array([this.exportable?1:0]))),null!==this.trustLevel&&(r=new Uint8Array([this.trustLevel,this.trustAmount]),t.push(No(e.trustSignature,!0,r))),null!==this.regularExpression&&t.push(No(e.regularExpression,!0,this.regularExpression)),null!==this.revocable&&t.push(No(e.revocable,!0,new Uint8Array([this.revocable?1:0]))),null!==this.keyExpirationTime&&t.push(No(e.keyExpirationTime,!0,M.writeNumber(this.keyExpirationTime,4))),null!==this.preferredSymmetricAlgorithms&&(r=M.stringToUint8Array(M.uint8ArrayToString(this.preferredSymmetricAlgorithms)),t.push(No(e.preferredSymmetricAlgorithms,!1,r))),null!==this.revocationKeyClass&&(r=new Uint8Array([this.revocationKeyClass,this.revocationKeyAlgorithm]),r=M.concat([r,this.revocationKeyFingerprint]),t.push(No(e.revocationKey,!1,r))),!this.issuerKeyID.isNull()&&this.issuerKeyVersion<5&&t.push(No(e.issuerKeyID,!0,this.issuerKeyID.write())),this.rawNotations.forEach((({name:n,value:i,humanReadable:s,critical:a})=>{r=[new Uint8Array([s?128:0,0,0,0])];const o=M.encodeUTF8(n);r.push(M.writeNumber(o.length,2)),r.push(M.writeNumber(i.length,2)),r.push(o),r.push(i),r=M.concat(r),t.push(No(e.notationData,a,r))})),null!==this.preferredHashAlgorithms&&(r=M.stringToUint8Array(M.uint8ArrayToString(this.preferredHashAlgorithms)),t.push(No(e.preferredHashAlgorithms,!1,r))),null!==this.preferredCompressionAlgorithms&&(r=M.stringToUint8Array(M.uint8ArrayToString(this.preferredCompressionAlgorithms)),t.push(No(e.preferredCompressionAlgorithms,!1,r))),null!==this.keyServerPreferences&&(r=M.stringToUint8Array(M.uint8ArrayToString(this.keyServerPreferences)),t.push(No(e.keyServerPreferences,!1,r))),null!==this.preferredKeyServer&&t.push(No(e.preferredKeyServer,!1,M.encodeUTF8(this.preferredKeyServer))),null!==this.isPrimaryUserID&&t.push(No(e.primaryUserID,!1,new Uint8Array([this.isPrimaryUserID?1:0]))),null!==this.policyURI&&t.push(No(e.policyURI,!1,M.encodeUTF8(this.policyURI))),null!==this.keyFlags&&(r=M.stringToUint8Array(M.uint8ArrayToString(this.keyFlags)),t.push(No(e.keyFlags,!0,r))),null!==this.signersUserID&&t.push(No(e.signersUserID,!1,M.encodeUTF8(this.signersUserID))),null!==this.reasonForRevocationFlag&&(r=M.stringToUint8Array(String.fromCharCode(this.reasonForRevocationFlag)+this.reasonForRevocationString),t.push(No(e.reasonForRevocation,!0,r))),null!==this.features&&(r=M.stringToUint8Array(M.uint8ArrayToString(this.features)),t.push(No(e.features,!1,r))),null!==this.signatureTargetPublicKeyAlgorithm&&(r=[new Uint8Array([this.signatureTargetPublicKeyAlgorithm,this.signatureTargetHashAlgorithm])],r.push(M.stringToUint8Array(this.signatureTargetHash)),r=M.concat(r),t.push(No(e.signatureTarget,!0,r))),null!==this.embeddedSignature&&t.push(No(e.embeddedSignature,!0,this.embeddedSignature.write())),null!==this.issuerFingerprint&&(r=[new Uint8Array([this.issuerKeyVersion]),this.issuerFingerprint],r=M.concat(r),t.push(No(e.issuerFingerprint,this.version>=5,r))),null!==this.preferredAEADAlgorithms&&(r=M.stringToUint8Array(M.uint8ArrayToString(this.preferredAEADAlgorithms)),t.push(No(e.preferredAEADAlgorithms,!1,r))),null!==this.preferredCipherSuites&&(r=new Uint8Array([].concat(...this.preferredCipherSuites)),t.push(No(e.preferredCipherSuites,!1,r)));const n=M.concat(t),i=M.writeNumber(n.length,6===this.version?4:2);return M.concat([i,n])}writeUnhashedSubPackets(){const e=this.unhashedSubpackets.map((({type:e,critical:t,body:r})=>No(e,t,r))),t=M.concat(e),r=M.writeNumber(t.length,6===this.version?4:2);return M.concat([r,t])}readSubPacket(e,t=!0){let r=0;const n=!!(128&e[r]),i=127&e[r];if(r++,t||(this.unhashedSubpackets.push({type:i,critical:n,body:e.subarray(r,e.length)}),Lo.has(i)))switch(i){case Q.signatureSubpacket.signatureCreationTime:this.created=M.readDate(e.subarray(r,e.length));break;case Q.signatureSubpacket.signatureExpirationTime:{const t=M.readNumber(e.subarray(r,e.length));this.signatureNeverExpires=0===t,this.signatureExpirationTime=t;break}case Q.signatureSubpacket.exportableCertification:this.exportable=1===e[r++];break;case Q.signatureSubpacket.trustSignature:this.trustLevel=e[r++],this.trustAmount=e[r++];break;case Q.signatureSubpacket.regularExpression:this.regularExpression=e[r];break;case Q.signatureSubpacket.revocable:this.revocable=1===e[r++];break;case Q.signatureSubpacket.keyExpirationTime:{const t=M.readNumber(e.subarray(r,e.length));this.keyExpirationTime=t,this.keyNeverExpires=0===t;break}case Q.signatureSubpacket.preferredSymmetricAlgorithms:this.preferredSymmetricAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.revocationKey:this.revocationKeyClass=e[r++],this.revocationKeyAlgorithm=e[r++],this.revocationKeyFingerprint=e.subarray(r,r+20);break;case Q.signatureSubpacket.issuerKeyID:if(4===this.version)this.issuerKeyID.read(e.subarray(r,e.length));else if(t)throw Error("Unexpected Issuer Key ID subpacket");break;case Q.signatureSubpacket.notationData:{const t=!!(128&e[r]);r+=4;const i=M.readNumber(e.subarray(r,r+2));r+=2;const s=M.readNumber(e.subarray(r,r+2));r+=2;const a=M.decodeUTF8(e.subarray(r,r+i)),o=e.subarray(r+i,r+i+s);this.rawNotations.push({name:a,humanReadable:t,value:o,critical:n}),t&&(this.notations[a]=M.decodeUTF8(o));break}case Q.signatureSubpacket.preferredHashAlgorithms:this.preferredHashAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.preferredCompressionAlgorithms:this.preferredCompressionAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.keyServerPreferences:this.keyServerPreferences=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.preferredKeyServer:this.preferredKeyServer=M.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.primaryUserID:this.isPrimaryUserID=0!==e[r++];break;case Q.signatureSubpacket.policyURI:this.policyURI=M.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.keyFlags:this.keyFlags=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.signersUserID:this.signersUserID=M.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.reasonForRevocation:this.reasonForRevocationFlag=e[r++],this.reasonForRevocationString=M.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.features:this.features=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.signatureTarget:{this.signatureTargetPublicKeyAlgorithm=e[r++],this.signatureTargetHashAlgorithm=e[r++];const t=Qe(this.signatureTargetHashAlgorithm);this.signatureTargetHash=M.uint8ArrayToString(e.subarray(r,r+t));break}case Q.signatureSubpacket.embeddedSignature:this.embeddedSignature=new Fo,this.embeddedSignature.read(e.subarray(r,e.length));break;case Q.signatureSubpacket.issuerFingerprint:this.issuerKeyVersion=e[r++],this.issuerFingerprint=e.subarray(r,e.length),this.issuerKeyVersion>=5?this.issuerKeyID.read(this.issuerFingerprint):this.issuerKeyID.read(this.issuerFingerprint.subarray(-8));break;case Q.signatureSubpacket.preferredAEADAlgorithms:this.preferredAEADAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.preferredCipherSuites:this.preferredCipherSuites=[];for(let t=r;t<e.length;t+=2)this.preferredCipherSuites.push([e[t],e[t+1]]);break;default:this.unknownSubpackets.push({type:i,critical:n,body:e.subarray(r,e.length)})}}readSubPackets(e,t=!0,r){const n=6===this.version?4:2,i=M.readNumber(e.subarray(0,n));let s=n;for(;s<2+i;){const n=_t(e.subarray(s,e.length));s+=n.offset,this.readSubPacket(e.subarray(s,s+n.len),t,r),s+=n.len}return s}toSign(e,t){const r=Q.signature;switch(e){case r.binary:return null!==t.text?M.encodeUTF8(t.getText(!0)):t.getBytes(!0);case r.text:{const e=t.getBytes(!0);return M.canonicalizeEOL(e)}case r.standalone:return new Uint8Array(0);case r.certGeneric:case r.certPersona:case r.certCasual:case r.certPositive:case r.certRevocation:{let e,n;if(t.userID)n=180,e=t.userID;else{if(!t.userAttribute)throw Error("Either a userID or userAttribute packet needs to be supplied for certification.");n=209,e=t.userAttribute}const i=e.write();return M.concat([this.toSign(r.key,t),new Uint8Array([n]),M.writeNumber(i.length,4),i])}case r.subkeyBinding:case r.subkeyRevocation:case r.keyBinding:return M.concat([this.toSign(r.key,t),this.toSign(r.key,{key:t.bind})]);case r.key:if(void 0===t.key)throw Error("Key packet is required for this signature.");return t.key.writeForHash(this.version);case r.keyRevocation:return this.toSign(r.key,t);case r.timestamp:return new Uint8Array(0);case r.thirdParty:throw Error("Not implemented");default:throw Error("Unknown signature type.")}}calculateTrailer(e,t){let r=0;return b(v(this.signatureData),(e=>{r+=e.length}),(()=>{const n=[];return 5!==this.version||this.signatureType!==Q.signature.binary&&this.signatureType!==Q.signature.text||(t?n.push(new Uint8Array(6)):n.push(e.writeHeader())),n.push(new Uint8Array([this.version,255])),5===this.version&&n.push(new Uint8Array(4)),n.push(M.writeNumber(r,4)),M.concat(n)}))}toHash(e,t,r=!1){const n=this.toSign(e,t);return M.concat([this.salt||new Uint8Array,n,this.signatureData,this.calculateTrailer(t,r)])}async hash(e,t,r,n=!1){if(6===this.version&&this.salt.length!==Oo(this.hashAlgorithm))throw Error("Signature salt does not have the expected length");return r||(r=this.toHash(e,t,n)),xe(this.hashAlgorithm,r)}async verify(e,t,r,n=new Date,i=!1,s=R){if(!this.issuerKeyID.equals(e.getKeyID()))throw Error("Signature was not issued by the given public key");if(this.publicKeyAlgorithm!==e.algorithm)throw Error("Public key algorithm used to sign signature does not match issuer key algorithm.");const a=t===Q.signature.binary||t===Q.signature.text;if(!(this[To]&&!a)){let n,s;if(this.hashed?s=await this.hashed:(n=this.toHash(t,r,i),s=await this.hash(t,r,n)),s=await K(s),this.signedHashValue[0]!==s[0]||this.signedHashValue[1]!==s[1])throw Error("Signed digest did not match");this.params=await this.params;const a=this.publicKeyAlgorithm===Q.publicKey.hmac?e.privateParams:null;if(this[To]=await Ua(this.publicKeyAlgorithm,this.hashAlgorithm,this.params,e.publicParams,a,n,s),!this[To])throw Error("Signature verification failed")}const o=M.normalizeDate(n);if(o&&this.created>o)throw Error("Signature creation time is in the future");if(o&&o>=this.getExpirationTime())throw Error("Signature is expired");if(s.rejectHashAlgorithms.has(this.hashAlgorithm))throw Error("Insecure hash algorithm: "+Q.read(Q.hash,this.hashAlgorithm).toUpperCase());if(s.rejectMessageHashAlgorithms.has(this.hashAlgorithm)&&[Q.signature.binary,Q.signature.text].includes(this.signatureType))throw Error("Insecure message hash algorithm: "+Q.read(Q.hash,this.hashAlgorithm).toUpperCase());if(this.unknownSubpackets.forEach((({type:e,critical:t})=>{if(t)throw Error("Unknown critical signature subpacket type "+e)})),this.rawNotations.forEach((({name:e,critical:t})=>{if(t&&s.knownNotations.indexOf(e)<0)throw Error("Unknown critical notation: "+e)})),null!==this.revocationKeyClass)throw Error("This key is intended to be revoked with an authorized key, which OpenPGP.js does not support.")}isExpired(e=new Date){const t=M.normalizeDate(e);return null!==t&&!(this.created<=t&&t<this.getExpirationTime())}getExpirationTime(){return this.signatureNeverExpires?1/0:new Date(this.created.getTime()+1e3*this.signatureExpirationTime)}}function No(e,t,r){const n=[];return n.push(Ht(r.length+1)),n.push(new Uint8Array([(t?128:0)|e])),n.push(r),M.concat(n)}function Oo(e){switch(e){case Q.hash.sha256:return 16;case Q.hash.sha384:return 24;case Q.hash.sha512:return 32;case Q.hash.sha224:case Q.hash.sha3_256:return 16;case Q.hash.sha3_512:return 32;default:throw Error("Unsupported hash function")}}class _o{static get tag(){return Q.packet.onePassSignature}static fromSignaturePacket(e,t){const r=new _o;return r.version=6===e.version?6:3,r.signatureType=e.signatureType,r.hashAlgorithm=e.hashAlgorithm,r.publicKeyAlgorithm=e.publicKeyAlgorithm,r.issuerKeyID=e.issuerKeyID,r.salt=e.salt,r.issuerFingerprint=e.issuerFingerprint,r.flags=t?1:0,r}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.salt=null,this.issuerKeyID=null,this.issuerFingerprint=null,this.flags=null}read(e){let t=0;if(this.version=e[t++],3!==this.version&&6!==this.version)throw new Yt(`Version ${this.version} of the one-pass signature packet is unsupported.`);if(this.signatureType=e[t++],this.hashAlgorithm=e[t++],this.publicKeyAlgorithm=e[t++],6===this.version){const r=e[t++];this.salt=e.subarray(t,t+r),t+=r,this.issuerFingerprint=e.subarray(t,t+32),t+=32,this.issuerKeyID=new Ro,this.issuerKeyID.read(this.issuerFingerprint)}else this.issuerKeyID=new Ro,this.issuerKeyID.read(e.subarray(t,t+8)),t+=8;return this.flags=e[t++],this}write(){const e=[new Uint8Array([this.version,this.signatureType,this.hashAlgorithm,this.publicKeyAlgorithm])];return 6===this.version?e.push(new Uint8Array([this.salt.length]),this.salt,this.issuerFingerprint):e.push(this.issuerKeyID.write()),e.push(new Uint8Array([this.flags])),M.concatUint8Array(e)}calculateTrailer(...e){return U((async()=>Fo.prototype.calculateTrailer.apply(await this.correspondingSig,e)))}async verify(){const e=await this.correspondingSig;if(!e||e.constructor.tag!==Q.packet.signature)throw Error("Corresponding signature packet missing");if(e.signatureType!==this.signatureType||e.hashAlgorithm!==this.hashAlgorithm||e.publicKeyAlgorithm!==this.publicKeyAlgorithm||!e.issuerKeyID.equals(this.issuerKeyID)||3===this.version&&6===e.version||6===this.version&&6!==e.version||6===this.version&&!M.equalsUint8Array(e.issuerFingerprint,this.issuerFingerprint)||6===this.version&&!M.equalsUint8Array(e.salt,this.salt))throw Error("Corresponding signature packet does not match one-pass signature packet");return e.hashed=this.hashed,e.verify.apply(e,arguments)}}_o.prototype.hash=Fo.prototype.hash,_o.prototype.toHash=Fo.prototype.toHash,_o.prototype.toSign=Fo.prototype.toSign;class Ho extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,Ho),this.name="GrammarError"}}const zo=(e,t)=>{const r=e.filter((e=>e!==Q.packet.marker&&e!==Q.packet.padding&&!(e=>{try{return Q.read(Q.packet,e),!1}catch(e){return!0}})(e)));return 1===(n=r).length&&n[0]===Q.packet.literalData||(e=>1===e.length&&e[0]===Q.packet.compressedData)(r)||(e=>{const t=(e,t)=>e.every((e=>new Set([Q.packet.publicKeyEncryptedSessionKey,Q.packet.symEncryptedSessionKey]).has(e))),r=e.findIndex((e=>new Set([Q.packet.aeadEncryptedData,Q.packet.symmetricallyEncryptedData,Q.packet.symEncryptedIntegrityProtectedData]).has(e)));return r<0?t(e):r===e.length-1&&t(e.slice(0,r))})(r)||((e,t)=>{if(0===e.findIndex((e=>e===Q.packet.signature)))return zo(e.slice(1),t);if(0===e.findIndex((e=>e===Q.packet.onePassSignature))){const r=M.findLastIndex(e,(e=>e===Q.packet.signature));return!(r!==e.length-1&&!t)&&zo(e.slice(1,r<0?void 0:r),t)}return!1})(r,t);var n},Go=({delayReporting:e})=>{let t=!1;return(r,n,i)=>{if(e&&n)return null;if(!zo(r,n)){const e=new Ho(`Data does not respect OpenPGP grammar [${r}]`);if(t||(i.pluggableGrammarErrorReporter?.(e.message),M.printDebugError(e),t=!0),i.enforceGrammar)throw e;return!0}return!0}};function qo(e,t){if(!t[e]){let t;try{t=Q.read(Q.packet,e)}catch(t){throw new Zt("Unknown packet type with tag: "+e)}throw Error("Packet not allowed in this context: "+t)}return new t[e]}class jo extends Array{static async fromBinary(e,t,r=R,n=null){const i=new jo;return await i.read(e,t,r,n),i}async read(e,t,r=R,n=null){r.additionalAllowedPackets.length&&(t={...t,...M.constructAllowedPackets(r.additionalAllowedPackets)}),this.stream=k(e,(async(e,i)=>{const s=D(i),a=[];try{for(;;){await s.ready;if(await Vt(e,(async e=>{try{if(e.tag===Q.packet.marker||e.tag===Q.packet.trust||e.tag===Q.packet.padding)return;const i=qo(e.tag,t);i.packets=new jo,i.fromStream=M.isStream(e.packet),await i.read(e.packet,r),await s.write(i),a.push(e.tag),n?.(a,!0,r)}catch(t){if(t instanceof Zt){if(!(e.tag<=39))return;await s.abort(t)}const i=!r.ignoreUnsupportedPackets&&t instanceof Yt,o=!(r.ignoreMalformedPackets||t instanceof Yt);if(i||o||t instanceof Ho||jt(e.tag))await s.abort(t);else{const t=new Wt(e.tag,e.packet);await s.write(t),a.push(e.tag),n?.(a,!0,r)}M.printDebugError(t)}})))return n?.(a,!1,r),await s.ready,void await s.close()}}catch(e){await s.abort(e)}}));const i=P(this.stream);for(;;){const{done:e,value:t}=await i.read();if(e?this.stream=null:this.push(t),e||jt(t.constructor.tag))break}i.releaseLock()}write(){const e=[];for(let t=0;t<this.length;t++){const r=this[t]instanceof Wt?this[t].tag:this[t].constructor.tag,n=this[t].write();if(M.isStream(n)&&jt(this[t].constructor.tag)){let t=[],i=0;const s=512;e.push(Gt(r)),e.push(b(n,(e=>{if(t.push(e),i+=e.length,i>=s){const e=Math.min(Math.log(i)/Math.LN2|0,30),r=2**e,n=M.concat([zt(e)].concat(t));return t=[n.subarray(1+r)],i=t[0].length,n.subarray(0,1+r)}}),(()=>M.concat([Ht(i)].concat(t)))))}else{if(M.isStream(n)){let t=0;e.push(b(v(n),(e=>{t+=e.length}),(()=>qt(r,t))))}else e.push(qt(r,n.length));e.push(n)}}return M.concat(e)}filterByTag(...e){const t=new jo,r=e=>t=>e===t;for(let n=0;n<this.length;n++)e.some(r(this[n].constructor.tag))&&t.push(this[n]);return t}findPacket(e){return this.find((t=>t.constructor.tag===e))}indexOfTag(...e){const t=[],r=this,n=e=>t=>e===t;for(let i=0;i<this.length;i++)e.some(n(r[i].constructor.tag))&&t.push(i);return t}}const Vo=/*#__PURE__*/M.constructAllowedPackets([Qo,_o,Fo]);class Yo{static get tag(){return Q.packet.compressedData}constructor(e=R){this.packets=null,this.algorithm=e.preferredCompressionAlgorithm,this.compressed=null}async read(e,t=R){await E(e,(async e=>{this.algorithm=await e.readByte(),this.compressed=e.remainder(),await this.decompress(t)}))}write(){return null===this.compressed&&this.compress(),M.concat([new Uint8Array([this.algorithm]),this.compressed])}async decompress(e=R){const t=Q.read(Q.compression,this.algorithm),r=$o[t];if(!r)throw Error(t+" decompression not supported");this.packets=await jo.fromBinary(await r(this.compressed),Vo,e,Go({enforceDelay:!1}))}compress(){const e=Q.read(Q.compression,this.algorithm),t=Xo[e];if(!t)throw Error(e+" compression not supported");this.compressed=t(this.packets.write())}}function Zo(e,t){return r=>{if(!M.isStream(r)||a(r))return U((()=>K(r).then((e=>new Promise(((r,n)=>{const i=new t;i.ondata=e=>{r(e)};try{i.push(e,!0)}catch(e){n(e)}}))))));if(e)try{const t=e();return r.pipeThrough(t)}catch(e){if("TypeError"!==e.name)throw e}const n=r.getReader(),i=new t;return new ReadableStream({async start(e){for(i.ondata=async(t,r)=>{e.enqueue(t),r&&e.close()};;){const{done:e,value:t}=await n.read();if(e)return void i.push(new Uint8Array,!0);t.length&&i.push(t)}}})}}function Wo(){return async function(e){const{decode:t}=await Promise.resolve().then((function(){return Fp}));return U((async()=>t(await K(e))))}}const Jo=e=>({compressor:"undefined"!=typeof CompressionStream&&(()=>new CompressionStream(e)),decompressor:"undefined"!=typeof DecompressionStream&&(()=>new DecompressionStream(e))}),Xo={zip:/*#__PURE__*/Zo(Jo("deflate-raw").compressor,Co),zlib:/*#__PURE__*/Zo(Jo("deflate").compressor,Po)},$o={uncompressed:e=>e,zip:/*#__PURE__*/Zo(Jo("deflate-raw").decompressor,Uo),zlib:/*#__PURE__*/Zo(Jo("deflate").decompressor,Do),bzip2:/*#__PURE__*/Wo()},ec=/*#__PURE__*/M.constructAllowedPackets([Qo,Yo,_o,Fo]);class tc{static get tag(){return Q.packet.symEncryptedIntegrityProtectedData}static fromObject({version:e,aeadAlgorithm:t}){if(1!==e&&2!==e)throw Error("Unsupported SEIPD version");const r=new tc;return r.version=e,2===e&&(r.aeadAlgorithm=t),r}constructor(){this.version=null,this.cipherAlgorithm=null,this.aeadAlgorithm=null,this.chunkSizeByte=null,this.salt=null,this.encrypted=null,this.packets=null}async read(e){await E(e,(async e=>{if(this.version=await e.readByte(),1!==this.version&&2!==this.version)throw new Yt(`Version ${this.version} of the SEIP packet is unsupported.`);2===this.version&&(this.cipherAlgorithm=await e.readByte(),this.aeadAlgorithm=await e.readByte(),this.chunkSizeByte=await e.readByte(),this.salt=await e.readBytes(32)),this.encrypted=e.remainder()}))}write(){return 2===this.version?M.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.salt,this.encrypted]):M.concat([new Uint8Array([this.version]),this.encrypted])}async encrypt(e,t,r=R){const{blockSize:n,keySize:i}=ri(e);if(t.length!==i)throw Error("Unexpected session key size");let s=this.packets.write();if(a(s)&&(s=await K(s)),2===this.version)this.cipherAlgorithm=e,this.salt=ye(32),this.chunkSizeByte=r.aeadChunkSizeByte,this.encrypted=await rc(this,"encrypt",t,s);else{const r=await Ds(e),i=new Uint8Array([211,20]),a=M.concat([r,s,i]),o=await xe(Q.hash.sha1,B(a)),c=M.concat([a,o]);this.encrypted=await xs(e,t,c,new Uint8Array(n))}return!0}async decrypt(e,t,r=R){if(t.length!==ri(e).keySize)throw Error("Unexpected session key size");let n,i,s=v(this.encrypted);if(a(s)&&(s=await K(s)),2===this.version){if(this.cipherAlgorithm!==e)throw Error("Unexpected session key algorithm");n=await rc(this,"decrypt",t,s),i=Go({delayReporting:!1})}else{const{blockSize:a}=ri(e),o=await Qs(e,t,s,new Uint8Array(a)),c=M.isStream(s)&&r.allowUnauthenticatedStream;i=Go({delayReporting:c});const u=I(B(o),-20),h=I(o,0,-20),l=Promise.all([K(await xe(Q.hash.sha1,B(h))),K(u)]).then((([e,t])=>{if(!M.equalsUint8Array(e,t))throw Error("Modification detected.");return new Uint8Array})),y=I(h,a+2);n=I(y,0,-2),n=d([n,U((()=>l))]),c||(n=await K(n))}return this.packets=await jo.fromBinary(n,ec,r,i),!0}}async function rc(e,t,r,n){const i=e instanceof tc&&2===e.version,s=!i&&e.constructor.tag===Q.packet.aeadEncryptedData;if(!i&&!s)throw Error("Unexpected packet type");const a=wa(e.aeadAlgorithm,s),o="decrypt"===t?a.tagLength:0,c="encrypt"===t?a.tagLength:0,u=2**(e.chunkSizeByte+6)+o,h=s?8:0,l=new ArrayBuffer(13+h),y=new Uint8Array(l,0,5+h),f=new Uint8Array(l),g=new DataView(l),p=new Uint8Array(l,5,8);y.set([192|e.constructor.tag,e.version,e.cipherAlgorithm,e.aeadAlgorithm,e.chunkSizeByte],0);let d,w,m=0,b=Promise.resolve(),E=0,v=0;if(i){const{keySize:t}=ri(e.cipherAlgorithm),{ivLength:n}=a,i=new Uint8Array(l,0,5),s=await oi(Q.hash.sha256,r,e.salt,i,t+n);r=s.subarray(0,t),d=s.subarray(t),d.fill(0,d.length-8),w=new DataView(d.buffer,d.byteOffset,d.byteLength)}else d=e.iv;const B=await a(e.cipherAlgorithm,r);return k(n,(async(r,n)=>{if("array"!==M.isStream(r)){const t=new TransformStream({},{highWaterMark:M.getHardwareConcurrency()*2**(e.chunkSizeByte+6),size:e=>e.length});A(t.readable,n),n=t.writable}const s=P(r),a=D(n);try{for(;;){let e=await s.readBytes(u+o)||new Uint8Array;const r=e.subarray(e.length-o);let n,l,A;if(e=e.subarray(0,e.length-o),i)A=d;else{A=d.slice();for(let e=0;e<8;e++)A[d.length-8+e]^=p[e]}if(!m||e.length?(s.unshift(r),n=B[t](e,A,y),n.catch((()=>{})),v+=e.length-o+c):(g.setInt32(5+h+4,E),n=B[t](r,A,f),n.catch((()=>{})),v+=c,l=!0),E+=e.length-o,b=b.then((()=>n)).then((async e=>{await a.ready,await a.write(e),v-=e.length})).catch((e=>a.abort(e))),(l||v>a.desiredSize)&&await b,l){await a.close();break}i?w.setInt32(d.length-4,++m):g.setInt32(9,++m)}}catch(e){await a.ready.catch((()=>{})),await a.abort(e)}}))}const nc=/*#__PURE__*/M.constructAllowedPackets([Qo,Yo,_o,Fo]);class ic{static get tag(){return Q.packet.aeadEncryptedData}constructor(){this.version=1,this.cipherAlgorithm=null,this.aeadAlgorithm=Q.aead.eax,this.chunkSizeByte=null,this.iv=null,this.encrypted=null,this.packets=null}async read(e){await E(e,(async e=>{const t=await e.readByte();if(1!==t)throw new Yt(`Version ${t} of the AEAD-encrypted data packet is not supported.`);this.cipherAlgorithm=await e.readByte(),this.aeadAlgorithm=await e.readByte(),this.chunkSizeByte=await e.readByte();const r=wa(this.aeadAlgorithm,!0);this.iv=await e.readBytes(r.ivLength),this.encrypted=e.remainder()}))}write(){return M.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.iv,this.encrypted])}async decrypt(e,t,r=R){this.packets=await jo.fromBinary(await rc(this,"decrypt",t,v(this.encrypted)),nc,r,Go({enforceDelay:!1}))}async encrypt(e,t,r=R){this.cipherAlgorithm=e;const{ivLength:n}=wa(this.aeadAlgorithm,!0);this.iv=ye(n),this.chunkSizeByte=r.aeadChunkSizeByte;const i=this.packets.write();this.encrypted=await rc(this,"encrypt",t,i)}}const sc=new Set([Q.publicKey.x25519,Q.publicKey.x448,Q.publicKey.pqc_mlkem_x25519]);class ac{static get tag(){return Q.packet.publicKeyEncryptedSessionKey}constructor(){this.version=null,this.publicKeyID=new Ro,this.publicKeyVersion=null,this.publicKeyFingerprint=null,this.publicKeyAlgorithm=null,this.sessionKey=null,this.sessionKeyAlgorithm=null,this.encrypted={}}static fromObject({version:e,encryptionKeyPacket:t,anonymousRecipient:r,sessionKey:n,sessionKeyAlgorithm:i}){const s=new ac;if(3!==e&&6!==e)throw Error("Unsupported PKESK version");return s.version=e,6===e&&(s.publicKeyVersion=r?null:t.version,s.publicKeyFingerprint=r?null:t.getFingerprintBytes()),s.publicKeyID=r?Ro.wildcard():t.getKeyID(),s.publicKeyAlgorithm=t.algorithm,s.sessionKey=n,s.sessionKeyAlgorithm=i,s}read(e){let t=0;if(this.version=e[t++],3!==this.version&&6!==this.version)throw new Yt(`Version ${this.version} of the PKESK packet is unsupported.`);if(6===this.version){const r=e[t++];if(r){this.publicKeyVersion=e[t++];const n=r-1;this.publicKeyFingerprint=e.subarray(t,t+n),t+=n,this.publicKeyVersion>=5?this.publicKeyID.read(this.publicKeyFingerprint):this.publicKeyID.read(this.publicKeyFingerprint.subarray(-8))}else this.publicKeyID=Ro.wildcard()}else t+=this.publicKeyID.read(e.subarray(t,t+8));if(this.publicKeyAlgorithm=e[t++],this.encrypted=function(e,t){let r=0;switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:return{c:M.readMPI(t.subarray(r))};case Q.publicKey.elgamal:{const e=M.readMPI(t.subarray(r));return r+=e.length+2,{c1:e,c2:M.readMPI(t.subarray(r))}}case Q.publicKey.ecdh:{const e=M.readMPI(t.subarray(r));r+=e.length+2;const n=new ms;return n.read(t.subarray(r)),{V:e,C:n}}case Q.publicKey.x25519:case Q.publicKey.x448:{const n=Ca(e),i=M.readExactSubarray(t,r,r+n);r+=i.length;const s=new Is;return s.read(t.subarray(r)),{ephemeralPublicKey:i,C:s}}case Q.publicKey.aead:{const e=new vs;r+=e.read(t.subarray(r));const{ivLength:n}=wa(e.getValue()),i=t.subarray(r,r+n);r+=n;const s=new bs;return r+=s.read(t.subarray(r)),{aeadMode:e,iv:i,c:s}}case Q.publicKey.pqc_mlkem_x25519:{const e=M.readExactSubarray(t,r,r+Ca(Q.publicKey.x25519));r+=e.length;const n=M.readExactSubarray(t,r,r+1088);r+=n.length;const i=new Is;return i.read(t.subarray(r)),{eccCipherText:e,mlkemCipherText:n,C:i}}default:throw new Yt("Unknown public key encryption algorithm.")}}(this.publicKeyAlgorithm,e.subarray(t)),sc.has(this.publicKeyAlgorithm))if(3===this.version)this.sessionKeyAlgorithm=Q.write(Q.symmetric,this.encrypted.C.algorithm);else if(null!==this.encrypted.C.algorithm)throw Error("Unexpected cleartext symmetric algorithm")}write(){const e=[new Uint8Array([this.version])];return 6===this.version?null!==this.publicKeyFingerprint?(e.push(new Uint8Array([this.publicKeyFingerprint.length+1,this.publicKeyVersion])),e.push(this.publicKeyFingerprint)):e.push(new Uint8Array([0])):e.push(this.publicKeyID.write()),e.push(new Uint8Array([this.publicKeyAlgorithm]),Ea(this.publicKeyAlgorithm,this.encrypted)),M.concatUint8Array(e)}async encrypt(e){const t=Q.write(Q.publicKey,this.publicKeyAlgorithm),r=3===this.version?this.sessionKeyAlgorithm:null,n=5===e.version?e.getFingerprintBytes().subarray(0,20):e.getFingerprintBytes(),i=oc(this.version,t,r,this.sessionKey),s=t===Q.publicKey.aead?e.privateParams:null;this.encrypted=await ma(t,r,e.publicParams,s,i,n)}async decrypt(e,t){if(this.publicKeyAlgorithm!==e.algorithm)throw Error("Decryption error");const r=t?oc(this.version,this.publicKeyAlgorithm,t.sessionKeyAlgorithm,t.sessionKey):null,n=5===e.version?e.getFingerprintBytes().subarray(0,20):e.getFingerprintBytes(),i=await ba(this.publicKeyAlgorithm,e.publicParams,e.privateParams,this.encrypted,n,r),{sessionKey:s,sessionKeyAlgorithm:a}=function(e,t,r,n){switch(t){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.elgamal:case Q.publicKey.ecdh:case Q.publicKey.aead:{const t=r.subarray(0,r.length-2),i=r.subarray(r.length-2),s=M.writeChecksum(t.subarray(t.length%8)),a=s[0]===i[0]&s[1]===i[1],o=6===e?{sessionKeyAlgorithm:null,sessionKey:t}:{sessionKeyAlgorithm:t[0],sessionKey:t.subarray(1)};if(n){const t=a&o.sessionKeyAlgorithm===n.sessionKeyAlgorithm&o.sessionKey.length===n.sessionKey.length;return{sessionKey:M.selectUint8Array(t,o.sessionKey,n.sessionKey),sessionKeyAlgorithm:6===e?null:M.selectUint8(t,o.sessionKeyAlgorithm,n.sessionKeyAlgorithm)}}if(a&&(6===e||Q.read(Q.symmetric,o.sessionKeyAlgorithm)))return o;throw Error("Decryption error")}case Q.publicKey.x25519:case Q.publicKey.x448:case Q.publicKey.pqc_mlkem_x25519:return{sessionKeyAlgorithm:null,sessionKey:r};default:throw Error("Unsupported public key algorithm")}}(this.version,this.publicKeyAlgorithm,i,t);if(3===this.version){const e=!sc.has(this.publicKeyAlgorithm);if(this.sessionKeyAlgorithm=e?a:this.sessionKeyAlgorithm,s.length!==ri(this.sessionKeyAlgorithm).keySize)throw Error("Unexpected session key size")}this.sessionKey=s}}function oc(e,t,r,n){switch(t){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.elgamal:case Q.publicKey.ecdh:case Q.publicKey.aead:return M.concatUint8Array([new Uint8Array(6===e?[]:[r]),n,M.writeChecksum(n.subarray(n.length%8))]);case Q.publicKey.x25519:case Q.publicKey.x448:case Q.publicKey.pqc_mlkem_x25519:return n;default:throw Error("Unsupported public key algorithm")}}class cc{static get tag(){return Q.packet.symEncryptedSessionKey}constructor(e=R){this.version=e.aeadProtect?6:4,this.sessionKey=null,this.sessionKeyEncryptionAlgorithm=null,this.sessionKeyAlgorithm=null,this.aeadAlgorithm=Q.write(Q.aead,e.preferredAEADAlgorithm),this.encrypted=null,this.s2k=null,this.iv=null}read(e){let t=0;if(this.version=e[t++],4!==this.version&&5!==this.version&&6!==this.version)throw new Yt(`Version ${this.version} of the SKESK packet is unsupported.`);6===this.version&&t++;const r=e[t++];this.version>=5&&(this.aeadAlgorithm=e[t++],6===this.version&&t++);const n=e[t++];if(this.s2k=Fa(n),t+=this.s2k.read(e.subarray(t,e.length)),this.version>=5){const r=wa(this.aeadAlgorithm,!0);this.iv=e.subarray(t,t+=r.ivLength)}this.version>=5||t<e.length?(this.encrypted=e.subarray(t,e.length),this.sessionKeyEncryptionAlgorithm=r):this.sessionKeyAlgorithm=r}write(){const e=null===this.encrypted?this.sessionKeyAlgorithm:this.sessionKeyEncryptionAlgorithm;let t;const r=this.s2k.write();if(6===this.version){const n=r.length,i=3+n+this.iv.length;t=M.concatUint8Array([new Uint8Array([this.version,i,e,this.aeadAlgorithm,n]),r,this.iv,this.encrypted])}else 5===this.version?t=M.concatUint8Array([new Uint8Array([this.version,e,this.aeadAlgorithm]),r,this.iv,this.encrypted]):(t=M.concatUint8Array([new Uint8Array([this.version,e]),r]),null!==this.encrypted&&(t=M.concatUint8Array([t,this.encrypted])));return t}async decrypt(e){const t=null!==this.sessionKeyEncryptionAlgorithm?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm,{blockSize:r,keySize:n}=ri(t),i=await this.s2k.produceKey(e,n);if(this.version>=5){const e=wa(this.aeadAlgorithm,!0),r=new Uint8Array([192|cc.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),s=6===this.version?await oi(Q.hash.sha256,i,new Uint8Array,r,n):i,a=await e(t,s);this.sessionKey=await a.decrypt(this.encrypted,this.iv,r)}else if(null!==this.encrypted){const e=await Qs(t,i,this.encrypted,new Uint8Array(r));if(this.sessionKeyAlgorithm=Q.write(Q.symmetric,e[0]),this.sessionKey=e.subarray(1,e.length),this.sessionKey.length!==ri(this.sessionKeyAlgorithm).keySize)throw Error("Unexpected session key size")}else this.sessionKey=i}async encrypt(e,t=R){const r=null!==this.sessionKeyEncryptionAlgorithm?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm;this.sessionKeyEncryptionAlgorithm=r,this.s2k=Na(t),this.s2k.generateSalt();const{blockSize:n,keySize:i}=ri(r),s=await this.s2k.produceKey(e,i);if(null===this.sessionKey&&(this.sessionKey=Ia(this.sessionKeyAlgorithm)),this.version>=5){const e=wa(this.aeadAlgorithm);this.iv=ye(e.ivLength);const t=new Uint8Array([192|cc.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),n=6===this.version?await oi(Q.hash.sha256,s,new Uint8Array,t,i):s,a=await e(r,n);this.encrypted=await a.encrypt(this.sessionKey,this.iv,t)}else{const e=M.concatUint8Array([new Uint8Array([this.sessionKeyAlgorithm]),this.sessionKey]);this.encrypted=await xs(r,s,e,new Uint8Array(n))}}}class uc{static get tag(){return Q.packet.publicKey}constructor(e=new Date,t=R){this.version=t.v6Keys?6:4,this.created=M.normalizeDate(e),this.algorithm=null,this.publicParams=null,this.expirationTimeV3=0,this.fingerprint=null,this.keyID=null}static fromSecretKeyPacket(e){const t=new uc,{version:r,created:n,algorithm:i,publicParams:s,keyID:a,fingerprint:o}=e;return t.version=r,t.created=n,t.algorithm=i,t.publicParams=s,t.keyID=a,t.fingerprint=o,t}async read(e,t=R){let r=0;if(this.version=e[r++],5===this.version&&!t.enableParsingV5Entities)throw new Yt("Support for parsing v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed");if(4===this.version||5===this.version||6===this.version){this.created=M.readDate(e.subarray(r,r+4)),r+=4,this.algorithm=e[r++],this.version>=5&&(r+=4);const{read:t,publicParams:n}=function(e,t){let r=0;switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:{const e=M.readMPI(t.subarray(r));r+=e.length+2;const n=M.readMPI(t.subarray(r));return r+=n.length+2,{read:r,publicParams:{n:e,e:n}}}case Q.publicKey.dsa:{const e=M.readMPI(t.subarray(r));r+=e.length+2;const n=M.readMPI(t.subarray(r));r+=n.length+2;const i=M.readMPI(t.subarray(r));r+=i.length+2;const s=M.readMPI(t.subarray(r));return r+=s.length+2,{read:r,publicParams:{p:e,q:n,g:i,y:s}}}case Q.publicKey.elgamal:{const e=M.readMPI(t.subarray(r));r+=e.length+2;const n=M.readMPI(t.subarray(r));r+=n.length+2;const i=M.readMPI(t.subarray(r));return r+=i.length+2,{read:r,publicParams:{p:e,g:n,y:i}}}case Q.publicKey.ecdsa:{const e=new Ot;r+=e.read(t),Ka(e);const n=M.readMPI(t.subarray(r));return r+=n.length+2,{read:r,publicParams:{oid:e,Q:n}}}case Q.publicKey.eddsaLegacy:{const e=new Ot;if(r+=e.read(t),Ka(e),e.getName()!==Q.curve.ed25519Legacy)throw Error("Unexpected OID for eddsaLegacy");let n=M.readMPI(t.subarray(r));return r+=n.length+2,n=M.leftPad(n,33),{read:r,publicParams:{oid:e,Q:n}}}case Q.publicKey.ecdh:{const e=new Ot;r+=e.read(t),Ka(e);const n=M.readMPI(t.subarray(r));r+=n.length+2;const i=new ks;return r+=i.read(t.subarray(r)),{read:r,publicParams:{oid:e,Q:n,kdfParams:i}}}case Q.publicKey.ed25519:case Q.publicKey.ed448:case Q.publicKey.x25519:case Q.publicKey.x448:{const n=M.readExactSubarray(t,r,r+Ca(e));return r+=n.length,{read:r,publicParams:{A:n}}}case Q.publicKey.hmac:case Q.publicKey.aead:{const e=new Bs;r+=e.read(t);const n=Qe(Q.hash.sha256),i=t.subarray(r,r+n);return r+=n,{read:r,publicParams:{cipher:e,digest:i}}}case Q.publicKey.pqc_mlkem_x25519:{const e=M.readExactSubarray(t,r,r+Ca(Q.publicKey.x25519));r+=e.length;const n=M.readExactSubarray(t,r,r+1184);return r+=n.length,{read:r,publicParams:{eccPublicKey:e,mlkemPublicKey:n}}}case Q.publicKey.pqc_mldsa_ed25519:{const e=M.readExactSubarray(t,r,r+Ca(Q.publicKey.ed25519));r+=e.length;const n=M.readExactSubarray(t,r,r+1952);return r+=n.length,{read:r,publicParams:{eccPublicKey:e,mldsaPublicKey:n}}}default:throw new Yt("Unknown public key encryption algorithm.")}}(this.algorithm,e.subarray(r));if(6===this.version&&n.oid&&(n.oid.getName()===Q.curve.curve25519Legacy||n.oid.getName()===Q.curve.ed25519Legacy))throw Error("Legacy curve25519 cannot be used with v6 keys");if(6!==this.version&&(this.algorithm===Q.publicKey.pqc_mldsa_ed25519||this.algorithm===Q.publicKey.pqc_mlkem_x25519))throw Error("Unexpected key version: ML-DSA and ML-KEM algorithms can only be used with v6 keys");return this.publicParams=n,r+=t,await this.computeFingerprintAndKeyID(),r}throw new Yt(`Version ${this.version} of the key packet is unsupported.`)}write(){const e=[];e.push(new Uint8Array([this.version])),e.push(M.writeDate(this.created)),e.push(new Uint8Array([this.algorithm]));const t=Ea(this.algorithm,this.publicParams);return this.version>=5&&e.push(M.writeNumber(t.length,4)),e.push(t),M.concatUint8Array(e)}writeForHash(e){const t=this.writePublicKey(),r=149+e,n=e>=5?4:2;return M.concatUint8Array([new Uint8Array([r]),M.writeNumber(t.length,n),t])}isDecrypted(){return null}getCreationTime(){return this.created}getKeyID(){return this.keyID}async computeFingerprintAndKeyID(){if(await this.computeFingerprint(),this.keyID=new Ro,this.version>=5)this.keyID.read(this.fingerprint.subarray(0,8));else{if(4!==this.version)throw Error("Unsupported key version");this.keyID.read(this.fingerprint.subarray(12,20))}}async computeFingerprint(){const e=this.writeForHash(this.version);if(this.version>=5)this.fingerprint=await xe(Q.hash.sha256,e);else{if(4!==this.version)throw Error("Unsupported key version");this.fingerprint=await xe(Q.hash.sha1,e)}}getFingerprintBytes(){return this.fingerprint}getFingerprint(){return M.uint8ArrayToHex(this.getFingerprintBytes())}hasSameFingerprintAs(e){return this.version===e.version&&M.equalsUint8Array(this.writePublicKey(),e.writePublicKey())}getAlgorithmInfo(){const e={};e.algorithm=Q.read(Q.publicKey,this.algorithm);const t=this.publicParams.n||this.publicParams.p;return t?e.bits=M.uint8ArrayBitLength(t):this.publicParams.oid?e.curve=this.publicParams.oid.getName():this.publicParams.cipher&&(e.symmetric=this.publicParams.cipher.getName()),e}}uc.prototype.readPublicKey=uc.prototype.read,uc.prototype.writePublicKey=uc.prototype.write;const hc=/*#__PURE__*/M.constructAllowedPackets([Qo,Yo,_o,Fo]);class lc{static get tag(){return Q.packet.symmetricallyEncryptedData}constructor(){this.encrypted=null,this.packets=null}read(e){this.encrypted=e}write(){return this.encrypted}async decrypt(e,t,r=R){if(!r.allowUnauthenticatedMessages)throw Error("Message is not authenticated.");const{blockSize:n}=ri(e),i=await K(v(this.encrypted)),s=await Qs(e,t,i.subarray(n+2),i.subarray(2,n+2));this.packets=await jo.fromBinary(s,hc,r)}async encrypt(e,t,r=R){const n=this.packets.write(),{blockSize:i}=ri(e),s=await Ds(e),a=await xs(e,t,s,new Uint8Array(i)),o=await xs(e,t,n,a.subarray(2));this.encrypted=M.concat([a,o])}}class yc{static get tag(){return Q.packet.marker}read(e){return 80===e[0]&&71===e[1]&&80===e[2]}write(){return new Uint8Array([80,71,80])}}class fc extends uc{static get tag(){return Q.packet.publicSubkey}constructor(e,t){super(e,t)}static fromSecretSubkeyPacket(e){const t=new fc,{version:r,created:n,algorithm:i,publicParams:s,keyID:a,fingerprint:o}=e;return t.version=r,t.created=n,t.algorithm=i,t.publicParams=s,t.keyID=a,t.fingerprint=o,t}}class gc{static get tag(){return Q.packet.userAttribute}constructor(){this.attributes=[]}read(e){let t=0;for(;t<e.length;){const r=_t(e.subarray(t,e.length));t+=r.offset,this.attributes.push(M.uint8ArrayToString(e.subarray(t,t+r.len))),t+=r.len}}write(){const e=[];for(let t=0;t<this.attributes.length;t++)e.push(Ht(this.attributes[t].length)),e.push(M.stringToUint8Array(this.attributes[t]));return M.concatUint8Array(e)}equals(e){return!!(e&&e instanceof gc)&&this.attributes.every((function(t,r){return t===e.attributes[r]}))}}class pc extends uc{static get tag(){return Q.packet.secretKey}constructor(e=new Date,t=R){super(e,t),this.keyMaterial=null,this.isEncrypted=null,this.s2kUsage=0,this.s2k=null,this.symmetric=null,this.aead=null,this.isLegacyAEAD=null,this.privateParams=null,this.usedModernAEAD=null}async read(e,t=R){let r=await this.readPublicKey(e,t);const n=r;this.s2kUsage=e[r++],5===this.version&&r++,6===this.version&&this.s2kUsage&&r++;try{if(255===this.s2kUsage||254===this.s2kUsage||253===this.s2kUsage){this.symmetric=e[r++],253===this.s2kUsage&&(this.aead=e[r++]),6===this.version&&r++;const t=e[r++];if(this.s2k=Fa(t),r+=this.s2k.read(e.subarray(r,e.length)),"gnu-dummy"===this.s2k.type)return}else this.s2kUsage&&(this.symmetric=this.s2kUsage);this.s2kUsage&&(this.isLegacyAEAD=253===this.s2kUsage&&(5===this.version||4===this.version&&t.parseAEADEncryptedV4KeysAsLegacy),253!==this.s2kUsage||this.isLegacyAEAD?(this.iv=e.subarray(r,r+ri(this.symmetric).blockSize),this.usedModernAEAD=!1):(this.iv=e.subarray(r,r+wa(this.aead).ivLength),this.usedModernAEAD=!0),r+=this.iv.length)}catch(t){if(!this.s2kUsage)throw t;this.unparseableKeyMaterial=e.subarray(n),this.isEncrypted=!0}if(5===this.version&&(r+=4),this.keyMaterial=e.subarray(r),this.isEncrypted=!!this.s2kUsage,!this.isEncrypted){let e;if(6===this.version)e=this.keyMaterial;else if(e=this.keyMaterial.subarray(0,-2),!M.equalsUint8Array(M.writeChecksum(e),this.keyMaterial.subarray(-2)))throw Error("Key checksum mismatch");try{const{read:t,privateParams:r}=await ka(this.algorithm,e,this.publicParams);if(t<e.length)throw Error("Error reading MPIs");this.privateParams=r}catch(e){if(e instanceof Yt)throw e;throw Error("Error reading MPIs")}}}write(){const e=this.writePublicKey();if(this.unparseableKeyMaterial)return M.concatUint8Array([e,this.unparseableKeyMaterial]);const t=[e];t.push(new Uint8Array([this.s2kUsage]));const r=[];if(255===this.s2kUsage||254===this.s2kUsage||253===this.s2kUsage){r.push(this.symmetric),253===this.s2kUsage&&r.push(this.aead);const e=this.s2k.write();6===this.version&&r.push(e.length),r.push(...e)}return this.s2kUsage&&"gnu-dummy"!==this.s2k.type&&r.push(...this.iv),(5===this.version||6===this.version&&this.s2kUsage)&&t.push(new Uint8Array([r.length])),t.push(new Uint8Array(r)),this.isDummy()||(this.s2kUsage||(this.keyMaterial=Ea(this.algorithm,this.privateParams)),5===this.version&&t.push(M.writeNumber(this.keyMaterial.length,4)),t.push(this.keyMaterial),this.s2kUsage||6===this.version||t.push(M.writeChecksum(this.keyMaterial))),M.concatUint8Array(t)}isDecrypted(){return!1===this.isEncrypted}isMissingSecretKeyMaterial(){return void 0!==this.unparseableKeyMaterial||this.isDummy()}isDummy(){return!(!this.s2k||"gnu-dummy"!==this.s2k.type)}makeDummy(e=R){this.isDummy()||(this.isDecrypted()&&this.clearPrivateParams(),delete this.unparseableKeyMaterial,this.isEncrypted=null,this.keyMaterial=null,this.s2k=Fa(Q.s2k.gnu,e),this.s2k.algorithm=0,this.s2k.c=0,this.s2k.type="gnu-dummy",this.s2kUsage=254,this.symmetric=Q.symmetric.aes256,this.isLegacyAEAD=null,this.usedModernAEAD=null)}async encrypt(e,t=R){if(this.isDummy())return;if(!this.isDecrypted())throw Error("Key packet is already encrypted");if(!e)throw Error("A non-empty passphrase is required for key encryption.");this.s2k=Na(t),this.s2k.generateSalt();const r=Ea(this.algorithm,this.privateParams);this.symmetric=Q.symmetric.aes256;const{blockSize:n}=ri(this.symmetric);if(t.aeadProtect){this.s2kUsage=253,this.aead=t.preferredAEADAlgorithm;const i=wa(this.aead);this.isLegacyAEAD=5===this.version,this.usedModernAEAD=!this.isLegacyAEAD;const s=Gt(this.constructor.tag),a=await dc(this.version,this.s2k,e,this.symmetric,this.aead,s,this.isLegacyAEAD),o=await i(this.symmetric,a);this.iv=this.isLegacyAEAD?ye(n):ye(i.ivLength);const c=this.isLegacyAEAD?new Uint8Array:M.concatUint8Array([s,this.writePublicKey()]);this.keyMaterial=await o.encrypt(r,this.iv.subarray(0,i.ivLength),c)}else{this.s2kUsage=254,this.usedModernAEAD=!1;const t=await dc(this.version,this.s2k,e,this.symmetric);this.iv=ye(n),this.keyMaterial=await xs(this.symmetric,t,M.concatUint8Array([r,await xe(Q.hash.sha1,r)]),this.iv)}}async decrypt(e){if(this.isDummy())return!1;if(this.unparseableKeyMaterial)throw Error("Key packet cannot be decrypted: unsupported S2K or cipher algo");if(this.isDecrypted())throw Error("Key packet is already decrypted.");let t;const r=Gt(this.constructor.tag);if(254!==this.s2kUsage&&253!==this.s2kUsage)throw 255===this.s2kUsage?Error("Encrypted private key is authenticated using an insecure two-byte hash"):Error("Private key is encrypted using an insecure S2K function: unsalted MD5");let n;if(t=await dc(this.version,this.s2k,e,this.symmetric,this.aead,r,this.isLegacyAEAD),253===this.s2kUsage){const e=wa(this.aead,!0),i=await e(this.symmetric,t);try{const t=this.isLegacyAEAD?new Uint8Array:M.concatUint8Array([r,this.writePublicKey()]);n=await i.decrypt(this.keyMaterial,this.iv.subarray(0,e.ivLength),t)}catch(e){if("Authentication tag mismatch"===e.message)throw Error("Incorrect key passphrase: "+e.message);throw e}}else{const e=await Qs(this.symmetric,t,this.keyMaterial,this.iv);n=e.subarray(0,-20);const r=await xe(Q.hash.sha1,n);if(!M.equalsUint8Array(r,e.subarray(-20)))throw Error("Incorrect key passphrase")}try{const{privateParams:e}=await ka(this.algorithm,n,this.publicParams);this.privateParams=e}catch(e){throw Error("Error reading MPIs")}this.isEncrypted=!1,this.keyMaterial=null,this.s2kUsage=0,this.aead=null,this.symmetric=null,this.isLegacyAEAD=null}async validate(){if(this.isDummy())return;if(!this.isDecrypted())throw Error("Key is not decrypted");if(this.usedModernAEAD)return;let e;try{e=await Sa(this.algorithm,this.publicParams,this.privateParams)}catch(t){e=!1}if(!e)throw Error("Key is invalid")}async generate(e,t,r){if(6===this.version&&(this.algorithm===Q.publicKey.ecdh&&t===Q.curve.curve25519Legacy||this.algorithm===Q.publicKey.eddsaLegacy))throw Error(`Cannot generate v6 keys of type 'ecc' with curve ${t}. Generate a key of type 'curve25519' instead`);if(6!==this.version&&(this.algorithm===Q.publicKey.pqc_mldsa_ed25519||this.algorithm===Q.publicKey.pqc_mlkem_x25519))throw Error(`Cannot generate v${this.version} keys of type 'pqc'. Generate a v6 key instead`);const{privateParams:n,publicParams:i}=await va(this.algorithm,e,t,r);this.privateParams=n,this.publicParams=i,this.isEncrypted=!1}clearPrivateParams(){this.isMissingSecretKeyMaterial()||(Object.keys(this.privateParams).forEach((e=>{this.privateParams[e].fill(0),delete this.privateParams[e]})),this.privateParams=null,this.isEncrypted=!0)}}async function dc(e,t,r,n,i,s,a){if("argon2"===t.type&&!i)throw Error("Using Argon2 S2K without AEAD is not allowed");if("simple"===t.type&&6===e)throw Error("Using Simple S2K with version 6 keys is not allowed");const{keySize:o}=ri(n),c=await t.produceKey(r,o);if(!i||5===e||a)return c;const u=M.concatUint8Array([s,new Uint8Array([e,n,i])]);return oi(Q.hash.sha256,c,new Uint8Array,u,o)}class Ac{static get tag(){return Q.packet.userID}constructor(){this.userID="",this.name="",this.email="",this.comment=""}static fromObject(e){if(M.isString(e)||e.name&&!M.isString(e.name)||e.email&&!M.isEmailAddress(e.email)||e.comment&&!M.isString(e.comment))throw Error("Invalid user ID format");const t=new Ac;Object.assign(t,e);const r=[];return t.name&&r.push(t.name),t.comment&&r.push(`(${t.comment})`),t.email&&r.push(`<${t.email}>`),t.userID=r.join(" "),t}read(e,t=R){const r=M.decodeUTF8(e);if(r.length>t.maxUserIDLength)throw Error("User ID string is too long");const n=/^(?<name>[^()]+\s+)?(?<comment>\([^()]+\)\s+)?(?<email><\S+@\S+>)$/.exec(r);if(null!==n){const{name:e,comment:t,email:r}=n.groups;this.comment=t?.replace(/^\(|\)|\s$/g,"").trim()||"",this.name=e?.trim()||"",this.email=r.substring(1,r.length-1)}else/^[^\s@]+@[^\s@]+$/.test(r)&&(this.email=r);this.userID=r}write(){return M.encodeUTF8(this.userID)}equals(e){return e&&e.userID===this.userID}}class wc extends pc{static get tag(){return Q.packet.secretSubkey}constructor(e=new Date,t=R){super(e,t)}}class mc{static get tag(){return Q.packet.trust}read(){throw new Yt("Trust packets are not supported")}write(){throw new Yt("Trust packets are not supported")}}class bc{static get tag(){return Q.packet.padding}constructor(){this.padding=null}read(e){}write(){return this.padding}async createPadding(e){this.padding=await ye(e)}}const kc=/*#__PURE__*/M.constructAllowedPackets([Fo]);class Ec{constructor(e){this.packets=e||new jo}write(){return this.packets.write()}armor(e=R){const t=this.packets.some((e=>e.constructor.tag===Fo.tag&&6!==e.version));return X(Q.armor.signature,this.write(),void 0,void 0,void 0,t,e)}getSigningKeyIDs(){return this.packets.map((e=>e.issuerKeyID))}}async function vc({armoredSignature:e,binarySignature:t,config:r,...n}){r={...R,...r};let i=e||t;if(!i)throw Error("readSignature: must pass options object containing `armoredSignature` or `binarySignature`");if(e&&!M.isString(e))throw Error("readSignature: options.armoredSignature must be a string");if(t&&!M.isUint8Array(t))throw Error("readSignature: options.binarySignature must be a Uint8Array");const s=Object.keys(n);if(s.length>0)throw Error("Unknown option: "+s.join(", "));if(e){const{type:e,data:t}=await J(i);if(e!==Q.armor.signature)throw Error("Armored text not of type signature");i=t}const a=await jo.fromBinary(i,kc,r);return new Ec(a)}async function Bc(e,t){const r=new wc(e.date,t);return r.packets=null,r.algorithm=Q.write(Q.publicKey,e.algorithm),await r.generate(e.rsaBits,e.curve,e.symmetric),await r.computeFingerprintAndKeyID(),r}async function Sc(e,t){const r=new pc(e.date,t);return r.packets=null,r.algorithm=Q.write(Q.publicKey,e.algorithm),await r.generate(e.rsaBits,e.curve,e.symmetric),await r.computeFingerprintAndKeyID(),r}async function Ic(e,t,r,n,i=new Date,s){let a,o;for(let c=e.length-1;c>=0;c--)try{(!a||e[c].created>=a.created)&&(await e[c].verify(t,r,n,i,void 0,s),a=e[c])}catch(e){o=e}if(!a)throw M.wrapError(`Could not find valid ${Q.read(Q.signature,r)} signature in key ${t.getKeyID().toHex()}`.replace("certGeneric ","self-").replace(/([a-z])([A-Z])/g,((e,t,r)=>t+" "+r.toLowerCase())),o);return a}function Kc(e,t,r=new Date){const n=M.normalizeDate(r);if(null!==n){const r=Qc(e,t);return!(e.created<=n&&n<r)}return!1}async function Cc(e,t,r,n){const i={};i.key=t,i.bind=e;const s={signatureType:Q.signature.subkeyBinding};r.sign?(s.keyFlags=[Q.keyFlags.signData],s.embeddedSignature=await Pc(i,[],e,{signatureType:Q.signature.keyBinding},r.date,void 0,void 0,void 0,n)):s.keyFlags=r.forwarding?[Q.keyFlags.forwardedCommunication]:[Q.keyFlags.encryptCommunication|Q.keyFlags.encryptStorage],r.keyExpirationTime>0&&(s.keyExpirationTime=r.keyExpirationTime,s.keyNeverExpires=!1);return await Pc(i,[],t,s,r.date,void 0,void 0,void 0,n)}async function Uc(e,t,r=new Date,n=[],i){if(t.algorithm===Q.publicKey.pqc_mldsa_ed25519)return As(t.algorithm);const s=Q.hash.sha256,a=i.preferredHashAlgorithm,o=await Promise.all(e.map((async(e,t)=>(await e.getPrimarySelfSignature(r,n[t],i)).preferredHashAlgorithms||[]))),c=new Map;for(const e of o)for(const t of e)try{const e=Q.write(Q.hash,t);c.set(e,c.has(e)?c.get(e)+1:1)}catch{}const u=t=>0===e.length||c.get(t)===e.length||t===s,h=()=>{if(0===c.size)return s;const e=Array.from(c.keys()).filter((e=>u(e))).sort(((e,t)=>Qe(e)-Qe(t)))[0];return Qe(e)>=Qe(s)?e:s};if(new Set([Q.publicKey.ecdsa,Q.publicKey.eddsaLegacy,Q.publicKey.ed25519,Q.publicKey.ed448]).has(t.algorithm)){const e=function(e,t){switch(e){case Q.publicKey.ecdsa:case Q.publicKey.eddsaLegacy:return Ii(t);case Q.publicKey.ed25519:case Q.publicKey.ed448:return jr(e);default:throw Error("Unknown elliptic signing algo")}}(t.algorithm,t.publicParams.oid),r=u(a),n=Qe(a)>=Qe(e);if(r&&n)return a;{const t=h();return Qe(t)>=Qe(e)?t:e}}return u(a)?a:h()}async function Pc(e,t,r,n,i,s,a=[],o=!1,c){if(r.isDummy())throw Error("Cannot sign with a gnu-dummy key.");if(!r.isDecrypted())throw Error("Signing key is not decrypted.");const u=new Fo;return Object.assign(u,n),u.publicKeyAlgorithm=r.algorithm,u.hashAlgorithm=await Uc(t,r,i,s,c),u.rawNotations=[...a],await u.sign(r,e,i,o,c),u}async function Dc(e,t,r,n=new Date,i){(e=e[r])&&(t[r].length?await Promise.all(e.map((async function(e){e.isExpired(n)||i&&!await i(e)||t[r].some((function(t){return M.equalsUint8Array(t.writeParams(),e.writeParams())}))||t[r].push(e)}))):t[r]=e)}async function xc(e,t,r,n,i,s,a=new Date,o){s=s||e;const c=[];return await Promise.all(n.map((async function(e){try{if(!i||e.issuerKeyID.equals(i.issuerKeyID)){const n=![Q.reasonForRevocation.keyRetired,Q.reasonForRevocation.keySuperseded,Q.reasonForRevocation.userIDInvalid].includes(e.reasonForRevocationFlag);await e.verify(s,t,r,n?null:a,!1,o),c.push(e.issuerKeyID)}}catch(e){}}))),i?(i.revoked=!!c.some((e=>e.equals(i.issuerKeyID)))||(i.revoked||!1),i.revoked):c.length>0}function Qc(e,t){let r;return!1===t.keyNeverExpires&&(r=e.created.getTime()+1e3*t.keyExpirationTime),r?new Date(r):1/0}function Rc(e,t={}){if(e.type=e.type||t.type,e.curve=e.curve||t.curve,e.rsaBits=e.rsaBits||t.rsaBits,e.symmetricHash=e.symmetricHash||t.symmetricHash,e.symmetricCipher=e.symmetricCipher||t.symmetricCipher,e.keyExpirationTime=void 0!==e.keyExpirationTime?e.keyExpirationTime:t.keyExpirationTime,e.passphrase=M.isString(e.passphrase)?e.passphrase:t.passphrase,e.date=e.date||t.date,e.sign=e.sign||!1,e.forwarding=e.forwarding||!1,e.sign&&e.forwarding)throw Error('Incompatible options: "sign" and "forwarding" cannot be set together');switch(e.type){case"pqc":e.sign?e.algorithm=Q.publicKey.pqc_mldsa_ed25519:e.algorithm=Q.publicKey.pqc_mlkem_x25519;break;case"ecc":try{e.curve=Q.write(Q.curve,e.curve)}catch(e){throw Error("Unknown curve")}e.curve!==Q.curve.ed25519Legacy&&e.curve!==Q.curve.curve25519Legacy&&"ed25519"!==e.curve&&"curve25519"!==e.curve||(e.curve=e.sign?Q.curve.ed25519Legacy:Q.curve.curve25519Legacy),e.sign?e.algorithm=e.curve===Q.curve.ed25519Legacy?Q.publicKey.eddsaLegacy:Q.publicKey.ecdsa:e.algorithm=Q.publicKey.ecdh;break;case"curve25519":e.algorithm=e.sign?Q.publicKey.ed25519:Q.publicKey.x25519;break;case"curve448":e.algorithm=e.sign?Q.publicKey.ed448:Q.publicKey.x448;break;case"rsa":e.algorithm=Q.publicKey.rsaEncryptSign;break;case"symmetric":if(e.sign){e.algorithm=Q.publicKey.hmac;try{e.symmetric=Q.write(Q.hash,e.symmetricHash)}catch(e){throw Error("Unknown hash algorithm")}}else{e.algorithm=Q.publicKey.aead;try{e.symmetric=Q.write(Q.symmetric,e.symmetricCipher)}catch(e){throw Error("Unknown symmetric algorithm")}}break;default:throw Error("Unsupported key type "+e.type)}return e}function Tc(e,t,r){switch(e.algorithm){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:case Q.publicKey.dsa:case Q.publicKey.ecdsa:case Q.publicKey.eddsaLegacy:case Q.publicKey.ed25519:case Q.publicKey.ed448:case Q.publicKey.hmac:case Q.publicKey.pqc_mldsa_ed25519:if(!t.keyFlags&&!r.allowMissingKeyFlags)throw Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");return!t.keyFlags||!!(t.keyFlags[0]&Q.keyFlags.signData);default:return!1}}function Mc(e,t,r){switch(e.algorithm){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.elgamal:case Q.publicKey.ecdh:case Q.publicKey.x25519:case Q.publicKey.x448:case Q.publicKey.aead:case Q.publicKey.pqc_mlkem_x25519:if(!t.keyFlags&&!r.allowMissingKeyFlags)throw Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");return!t.keyFlags||!!(t.keyFlags[0]&Q.keyFlags.encryptCommunication)||!!(t.keyFlags[0]&Q.keyFlags.encryptStorage);default:return!1}}function Lc(e,t,r){if(!t.keyFlags&&!r.allowMissingKeyFlags)throw Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");switch(e.algorithm){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.elgamal:case Q.publicKey.ecdh:case Q.publicKey.x25519:case Q.publicKey.x448:case Q.publicKey.pqc_mlkem_x25519:return!(!(!t.keyFlags||!!(t.keyFlags[0]&Q.keyFlags.signData))||!r.allowInsecureDecryptionWithSigningKeys)||(!t.keyFlags||!!(t.keyFlags[0]&Q.keyFlags.encryptCommunication)||!!(t.keyFlags[0]&Q.keyFlags.encryptStorage)||r.allowForwardedMessages&&!!(t.keyFlags[0]&Q.keyFlags.forwardedCommunication));default:return!1}}function Fc(e,t){const r=Q.write(Q.publicKey,e.algorithm),n=e.getAlgorithmInfo();if(t.rejectPublicKeyAlgorithms.has(r))throw Error(n.algorithm+" keys are considered too weak.");switch(r){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:case Q.publicKey.rsaEncrypt:if(n.bits<t.minRSABits)throw Error(`RSA keys shorter than ${t.minRSABits} bits are considered too weak.`);break;case Q.publicKey.ecdsa:case Q.publicKey.eddsaLegacy:case Q.publicKey.ecdh:if(t.rejectCurves.has(n.curve))throw Error(`Support for ${n.algorithm} keys using curve ${n.curve} is disabled.`)}}class Nc{constructor(e,t){this.userID=e.constructor.tag===Q.packet.userID?e:null,this.userAttribute=e.constructor.tag===Q.packet.userAttribute?e:null,this.selfCertifications=[],this.otherCertifications=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){const e=new jo;return e.push(this.userID||this.userAttribute),e.push(...this.revocationSignatures),e.push(...this.selfCertifications),e.push(...this.otherCertifications),e}clone(){const e=new Nc(this.userID||this.userAttribute,this.mainKey);return e.selfCertifications=[...this.selfCertifications],e.otherCertifications=[...this.otherCertifications],e.revocationSignatures=[...this.revocationSignatures],e}async certify(e,t,r){const n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n},s=new Nc(i.userID||i.userAttribute,this.mainKey);return s.otherCertifications=await Promise.all(e.map((async function(e){if(!e.isPrivate())throw Error("Need private key for signing");if(e.hasSameFingerprintAs(n))throw Error("The user's own key can only be used for self-certifications");const s=await e.getSigningKey(void 0,t,void 0,r);return Pc(i,[e],s.keyPacket,{signatureType:Q.signature.certGeneric,keyFlags:[Q.keyFlags.certifyKeys|Q.keyFlags.signData]},t,void 0,void 0,void 0,r)}))),await s.update(this,t,r),s}async isRevoked(e,t,r=new Date,n=R){const i=this.mainKey.keyPacket;return xc(i,Q.signature.certRevocation,{key:i,userID:this.userID,userAttribute:this.userAttribute},this.revocationSignatures,e,t,r,n)}async verifyCertificate(e,t,r=new Date,n){const i=this,s=this.mainKey.keyPacket,a={userID:this.userID,userAttribute:this.userAttribute,key:s},{issuerKeyID:o}=e,c=t.filter((e=>e.getKeys(o).length>0));return 0===c.length?null:(await Promise.all(c.map((async t=>{const s=await t.getSigningKey(o,e.created,void 0,n);if(e.revoked||await i.isRevoked(e,s.keyPacket,r,n))throw Error("User certificate is revoked");try{await e.verify(s.keyPacket,Q.signature.certGeneric,a,r,void 0,n)}catch(e){throw M.wrapError("User certificate is invalid",e)}}))),!0)}async verifyAllCertifications(e,t=new Date,r){const n=this,i=this.selfCertifications.concat(this.otherCertifications);return Promise.all(i.map((async i=>({keyID:i.issuerKeyID,valid:await n.verifyCertificate(i,e,t,r).catch((()=>!1))}))))}async verify(e=new Date,t){if(!this.selfCertifications.length)throw Error("No self-certifications found");const r=this,n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n};let s;for(let a=this.selfCertifications.length-1;a>=0;a--)try{const s=this.selfCertifications[a];if(s.revoked||await r.isRevoked(s,void 0,e,t))throw Error("Self-certification is revoked");try{await s.verify(n,Q.signature.certGeneric,i,e,void 0,t)}catch(e){throw M.wrapError("Self-certification is invalid",e)}return!0}catch(e){s=e}throw s}async update(e,t,r){const n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n};await Dc(e,this,"selfCertifications",t,(async function(e){try{return await e.verify(n,Q.signature.certGeneric,i,t,!1,r),!0}catch(e){return!1}})),await Dc(e,this,"otherCertifications",t),await Dc(e,this,"revocationSignatures",t,(function(e){return xc(n,Q.signature.certRevocation,i,[e],void 0,void 0,t,r)}))}async revoke(e,{flag:t=Q.reasonForRevocation.noReason,string:r=""}={},n=new Date,i=R){const s={userID:this.userID,userAttribute:this.userAttribute,key:e},a=new Nc(s.userID||s.userAttribute,this.mainKey);return a.revocationSignatures.push(await Pc(s,[],e,{signatureType:Q.signature.certRevocation,reasonForRevocationFlag:Q.write(Q.reasonForRevocation,t),reasonForRevocationString:r},n,void 0,void 0,!1,i)),await a.update(this),a}}class Oc{constructor(e,t){this.keyPacket=e,this.bindingSignatures=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){const e=new jo;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.bindingSignatures),e}clone(){const e=new Oc(this.keyPacket,this.mainKey);return e.bindingSignatures=[...this.bindingSignatures],e.revocationSignatures=[...this.revocationSignatures],e}async isRevoked(e,t,r=new Date,n=R){const i=this.mainKey.keyPacket;return xc(i,Q.signature.subkeyRevocation,{key:i,bind:this.keyPacket},this.revocationSignatures,e,t,r,n)}async verify(e=new Date,t=R){const r=this.mainKey.keyPacket,n={key:r,bind:this.keyPacket},i=await Ic(this.bindingSignatures,r,Q.signature.subkeyBinding,n,e,t);if(i.revoked||await this.isRevoked(i,null,e,t))throw Error("Subkey is revoked");if(Kc(this.keyPacket,i,e))throw Error("Subkey is expired");return i}async getExpirationTime(e=new Date,t=R){const r=this.mainKey.keyPacket,n={key:r,bind:this.keyPacket};let i;try{i=await Ic(this.bindingSignatures,r,Q.signature.subkeyBinding,n,e,t)}catch(e){return null}const s=Qc(this.keyPacket,i),a=i.getExpirationTime();return s<a?s:a}async update(e,t=new Date,r=R){const n=this.mainKey.keyPacket;if(!this.hasSameFingerprintAs(e))throw Error("Subkey update method: fingerprints of subkeys not equal");this.keyPacket.constructor.tag===Q.packet.publicSubkey&&e.keyPacket.constructor.tag===Q.packet.secretSubkey&&(this.keyPacket=e.keyPacket);const i=this,s={key:n,bind:i.keyPacket};await Dc(e,this,"bindingSignatures",t,(async function(e){for(let t=0;t<i.bindingSignatures.length;t++)if(i.bindingSignatures[t].issuerKeyID.equals(e.issuerKeyID))return e.created>i.bindingSignatures[t].created&&(i.bindingSignatures[t]=e),!1;try{return await e.verify(n,Q.signature.subkeyBinding,s,t,void 0,r),!0}catch(e){return!1}})),await Dc(e,this,"revocationSignatures",t,(function(e){return xc(n,Q.signature.subkeyRevocation,s,[e],void 0,void 0,t,r)}))}async revoke(e,{flag:t=Q.reasonForRevocation.noReason,string:r=""}={},n=new Date,i=R){const s={key:e,bind:this.keyPacket},a=new Oc(this.keyPacket,this.mainKey);return a.revocationSignatures.push(await Pc(s,[],e,{signatureType:Q.signature.subkeyRevocation,reasonForRevocationFlag:Q.write(Q.reasonForRevocation,t),reasonForRevocationString:r},n,void 0,void 0,!1,i)),await a.update(this),a}hasSameFingerprintAs(e){return this.keyPacket.hasSameFingerprintAs(e.keyPacket||e)}}["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","isDecrypted"].forEach((e=>{Oc.prototype[e]=function(){return this.keyPacket[e]()}}));const _c=/*#__PURE__*/M.constructAllowedPackets([Fo]),Hc=new Set([Q.packet.publicKey,Q.packet.privateKey]),zc=new Set([Q.packet.publicKey,Q.packet.privateKey,Q.packet.publicSubkey,Q.packet.privateSubkey]);class Gc{packetListToStructure(e,t=new Set){let r,n,i,s;for(const a of e){if(a instanceof Wt){zc.has(a.tag)&&!s&&(s=Hc.has(a.tag)?Hc:zc);continue}const e=a.constructor.tag;if(s){if(!s.has(e))continue;s=null}if(t.has(e))throw Error("Unexpected packet type: "+e);switch(e){case Q.packet.publicKey:case Q.packet.secretKey:if(this.keyPacket)throw Error("Key block contains multiple keys");if(this.keyPacket=a,n=this.getKeyID(),!n)throw Error("Missing Key ID");break;case Q.packet.userID:case Q.packet.userAttribute:r=new Nc(a,this),this.users.push(r);break;case Q.packet.publicSubkey:case Q.packet.secretSubkey:r=null,i=new Oc(a,this),this.subkeys.push(i);break;case Q.packet.signature:switch(a.signatureType){case Q.signature.certGeneric:case Q.signature.certPersona:case Q.signature.certCasual:case Q.signature.certPositive:if(!r){M.printDebug("Dropping certification signatures without preceding user packet");continue}a.issuerKeyID.equals(n)?r.selfCertifications.push(a):r.otherCertifications.push(a);break;case Q.signature.certRevocation:r?r.revocationSignatures.push(a):this.directSignatures.push(a);break;case Q.signature.key:this.directSignatures.push(a);break;case Q.signature.subkeyBinding:if(!i){M.printDebug("Dropping subkey binding signature without preceding subkey packet");continue}i.bindingSignatures.push(a);break;case Q.signature.keyRevocation:this.revocationSignatures.push(a);break;case Q.signature.subkeyRevocation:if(!i){M.printDebug("Dropping subkey revocation signature without preceding subkey packet");continue}i.revocationSignatures.push(a)}}}}toPacketList(){const e=new jo;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.directSignatures),this.users.map((t=>e.push(...t.toPacketList()))),this.subkeys.map((t=>e.push(...t.toPacketList()))),e}clone(e=!1){const t=new this.constructor(this.toPacketList());return e&&t.getKeys().forEach((e=>{if(e.keyPacket=Object.create(Object.getPrototypeOf(e.keyPacket),Object.getOwnPropertyDescriptors(e.keyPacket)),!e.keyPacket.isDecrypted())return;const t={};Object.keys(e.keyPacket.privateParams).forEach((r=>{t[r]=new Uint8Array(e.keyPacket.privateParams[r])})),e.keyPacket.privateParams=t})),t}getSubkeys(e=null){return this.subkeys.filter((t=>!e||t.getKeyID().equals(e,!0)))}getKeys(e=null){const t=[];return e&&!this.getKeyID().equals(e,!0)||t.push(this),t.concat(this.getSubkeys(e))}getKeyIDs(){return this.getKeys().map((e=>e.getKeyID()))}getUserIDs(){return this.users.map((e=>e.userID?e.userID.userID:null)).filter((e=>null!==e))}write(){return this.toPacketList().write()}async getSigningKey(e=null,t=new Date,r={},n=R){await this.verifyPrimaryKey(t,r,n);const i=this.keyPacket;try{Fc(i,n)}catch(e){throw M.wrapError("Could not verify primary key",e)}const s=this.subkeys.slice().sort(((e,t)=>t.keyPacket.created-e.keyPacket.created));let a;for(const r of s)if(!e||r.getKeyID().equals(e))try{await r.verify(t,n);const e={key:i,bind:r.keyPacket},s=await Ic(r.bindingSignatures,i,Q.signature.subkeyBinding,e,t,n);if(!Tc(r.keyPacket,s,n))continue;if(!s.embeddedSignature)throw Error("Missing embedded signature");return await Ic([s.embeddedSignature],r.keyPacket,Q.signature.keyBinding,e,t,n),Fc(r.keyPacket,n),r}catch(e){a=e}try{const s=await this.getPrimarySelfSignature(t,r,n);if((!e||i.getKeyID().equals(e))&&Tc(i,s,n))return Fc(i,n),this}catch(e){a=e}throw M.wrapError("Could not find valid signing key packet in key "+this.getKeyID().toHex(),a)}async getEncryptionKey(e,t=new Date,r={},n=R){await this.verifyPrimaryKey(t,r,n);const i=this.keyPacket;try{Fc(i,n)}catch(e){throw M.wrapError("Could not verify primary key",e)}const s=this.subkeys.slice().sort(((e,t)=>t.keyPacket.created-e.keyPacket.created));let a;for(const r of s)if(!e||r.getKeyID().equals(e))try{await r.verify(t,n);const e={key:i,bind:r.keyPacket},s=await Ic(r.bindingSignatures,i,Q.signature.subkeyBinding,e,t,n);if(Mc(r.keyPacket,s,n))return Fc(r.keyPacket,n),r}catch(e){a=e}try{const s=await this.getPrimarySelfSignature(t,r,n);if((!e||i.getKeyID().equals(e))&&Mc(i,s,n))return Fc(i,n),this}catch(e){a=e}throw M.wrapError("Could not find valid encryption key packet in key "+this.getKeyID().toHex(),a)}async isRevoked(e,t,r=new Date,n=R){return xc(this.keyPacket,Q.signature.keyRevocation,{key:this.keyPacket},this.revocationSignatures,e,t,r,n)}async verifyPrimaryKey(e=new Date,t={},r=R){const n=this.keyPacket;if(await this.isRevoked(null,null,e,r))throw Error("Primary key is revoked");if(Kc(n,await this.getPrimarySelfSignature(e,t,r),e))throw Error("Primary key is expired");if(6!==n.version){const t=await Ic(this.directSignatures,n,Q.signature.key,{key:n},e,r).catch((()=>{}));if(t&&Kc(n,t,e))throw Error("Primary key is expired")}}async getExpirationTime(e,t=R){let r;try{const n=await this.getPrimarySelfSignature(null,e,t),i=Qc(this.keyPacket,n),s=n.getExpirationTime(),a=6!==this.keyPacket.version&&await Ic(this.directSignatures,this.keyPacket,Q.signature.key,{key:this.keyPacket},null,t).catch((()=>{}));if(a){const e=Qc(this.keyPacket,a);r=Math.min(i,s,e)}else r=i<s?i:s}catch(e){r=null}return M.normalizeDate(r)}async getPrimarySelfSignature(e=new Date,t={},r=R){const n=this.keyPacket;if(6===n.version)return Ic(this.directSignatures,n,Q.signature.key,{key:n},e,r);const{selfCertification:i}=await this.getPrimaryUser(e,t,r);return i}async getPrimaryUser(e=new Date,t={},r=R){const n=this.keyPacket,i=[];let s;for(let a=0;a<this.users.length;a++)try{const s=this.users[a];if(!s.userID)continue;if(void 0!==t.name&&s.userID.name!==t.name||void 0!==t.email&&s.userID.email!==t.email||void 0!==t.comment&&s.userID.comment!==t.comment)throw Error("Could not find user that matches that user ID");const o={userID:s.userID,key:n},c=await Ic(s.selfCertifications,n,Q.signature.certGeneric,o,e,r);i.push({index:a,user:s,selfCertification:c})}catch(e){s=e}if(!i.length)throw s||Error("Could not find primary user");await Promise.all(i.map((async function(t){return t.selfCertification.revoked||t.user.isRevoked(t.selfCertification,null,e,r)})));const a=i.sort((function(e,t){const r=e.selfCertification,n=t.selfCertification;return n.revoked-r.revoked||r.isPrimaryUserID-n.isPrimaryUserID||r.created-n.created})).pop(),{user:o,selfCertification:c}=a;if(c.revoked||await o.isRevoked(c,null,e,r))throw Error("Primary user is revoked");return a}async update(e,t=new Date,r=R){if(!this.hasSameFingerprintAs(e))throw Error("Primary key fingerprints must be equal to update the key");if(!this.isPrivate()&&e.isPrivate()){if(!(this.subkeys.length===e.subkeys.length&&this.subkeys.every((t=>e.subkeys.some((e=>t.hasSameFingerprintAs(e)))))))throw Error("Cannot update public key with private key if subkeys mismatch");return e.update(this,r)}const n=this.clone();return await Dc(e,n,"revocationSignatures",t,(i=>xc(n.keyPacket,Q.signature.keyRevocation,n,[i],null,e.keyPacket,t,r))),await Dc(e,n,"directSignatures",t),await Promise.all(e.users.map((async e=>{const i=n.users.filter((t=>e.userID&&e.userID.equals(t.userID)||e.userAttribute&&e.userAttribute.equals(t.userAttribute)));if(i.length>0)await Promise.all(i.map((n=>n.update(e,t,r))));else{const t=e.clone();t.mainKey=n,n.users.push(t)}}))),await Promise.all(e.subkeys.map((async e=>{const i=n.subkeys.filter((t=>t.hasSameFingerprintAs(e)));if(i.length>0)await Promise.all(i.map((n=>n.update(e,t,r))));else{const t=e.clone();t.mainKey=n,n.subkeys.push(t)}}))),n}async getRevocationCertificate(e=new Date,t=R){const r={key:this.keyPacket},n=await Ic(this.revocationSignatures,this.keyPacket,Q.signature.keyRevocation,r,e,t),i=new jo;i.push(n);const s=6!==this.keyPacket.version;return X(Q.armor.publicKey,i.write(),null,null,"This is a revocation certificate",s,t)}async applyRevocationCertificate(e,t=new Date,r=R){const n=await J(e),i=(await jo.fromBinary(n.data,_c,r)).findPacket(Q.packet.signature);if(!i||i.signatureType!==Q.signature.keyRevocation)throw Error("Could not find revocation signature packet");if(!i.issuerKeyID.equals(this.getKeyID()))throw Error("Revocation signature does not match key");try{await i.verify(this.keyPacket,Q.signature.keyRevocation,{key:this.keyPacket},t,void 0,r)}catch(e){throw M.wrapError("Could not verify revocation signature",e)}const s=this.clone();return s.revocationSignatures.push(i),s}async signPrimaryUser(e,t,r,n=R){const{index:i,user:s}=await this.getPrimaryUser(t,r,n),a=await s.certify(e,t,n),o=this.clone();return o.users[i]=a,o}async signAllUsers(e,t=new Date,r=R){const n=this.clone();return n.users=await Promise.all(this.users.map((function(n){return n.certify(e,t,r)}))),n}async verifyPrimaryUser(e,t=new Date,r,n=R){const i=this.keyPacket,{user:s}=await this.getPrimaryUser(t,r,n);return e?await s.verifyAllCertifications(e,t,n):[{keyID:i.getKeyID(),valid:await s.verify(t,n).catch((()=>!1))}]}async verifyAllUsers(e,t=new Date,r=R){const n=this.keyPacket,i=[];return await Promise.all(this.users.map((async s=>{const a=e?await s.verifyAllCertifications(e,t,r):[{keyID:n.getKeyID(),valid:await s.verify(t,r).catch((()=>!1))}];i.push(...a.map((e=>({userID:s.userID?s.userID.userID:null,userAttribute:s.userAttribute,keyID:e.keyID,valid:e.valid}))))}))),i}}["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","hasSameFingerprintAs"].forEach((e=>{Gc.prototype[e]=Oc.prototype[e]}));class qc extends Gc{constructor(e){if(super(),this.keyPacket=null,this.revocationSignatures=[],this.directSignatures=[],this.users=[],this.subkeys=[],e&&(this.packetListToStructure(e,new Set([Q.packet.secretKey,Q.packet.secretSubkey])),!this.keyPacket))throw Error("Invalid key: missing public-key packet")}isPrivate(){return!1}toPublic(){return this}armor(e=R){const t=6!==this.keyPacket.version;return X(Q.armor.publicKey,this.toPacketList().write(),void 0,void 0,void 0,t,e)}}class jc extends qc{constructor(e){if(super(),this.packetListToStructure(e,new Set([Q.packet.publicKey,Q.packet.publicSubkey])),!this.keyPacket)throw Error("Invalid key: missing private-key packet")}isPrivate(){return!0}toPublic(){const e=new jo,t=this.toPacketList();let r=!1;for(const n of t)if(!r||n.constructor.tag!==Q.packet.Signature)switch(r&&(r=!1),n.constructor.tag){case Q.packet.secretKey:{if(n.algorithm===Q.publicKey.aead||n.algorithm===Q.publicKey.hmac)throw Error("Cannot create public key from symmetric private");const t=uc.fromSecretKeyPacket(n);e.push(t);break}case Q.packet.secretSubkey:{if(n.algorithm===Q.publicKey.aead||n.algorithm===Q.publicKey.hmac){r=!0;break}const t=fc.fromSecretSubkeyPacket(n);e.push(t);break}default:e.push(n)}return new qc(e)}armor(e=R){const t=6!==this.keyPacket.version;return X(Q.armor.privateKey,this.toPacketList().write(),void 0,void 0,void 0,t,e)}async getDecryptionKeys(e,t=new Date,r={},n=R){const i=this.keyPacket,s=[];let a=null;for(let r=0;r<this.subkeys.length;r++)if(!e||this.subkeys[r].getKeyID().equals(e,!0)){if(this.subkeys[r].keyPacket.isDummy()){a=a||Error("Gnu-dummy key packets cannot be used for decryption");continue}try{const e={key:i,bind:this.subkeys[r].keyPacket},a=await Ic(this.subkeys[r].bindingSignatures,i,Q.signature.subkeyBinding,e,t,n);Lc(this.subkeys[r].keyPacket,a,n)&&s.push(this.subkeys[r])}catch(e){a=e}}const o=await this.getPrimarySelfSignature(t,r,n);if(e&&!i.getKeyID().equals(e,!0)||!Lc(i,o,n)||(i.isDummy()?a=a||Error("Gnu-dummy key packets cannot be used for decryption"):s.push(this)),0===s.length)throw a||Error("No decryption key packets found");return s}isDecrypted(){return this.getKeys().some((({keyPacket:e})=>e.isDecrypted()))}async validate(e=R){if(!this.isPrivate())throw Error("Cannot validate a public key");let t;if(this.keyPacket.isDummy()){const r=await this.getSigningKey(null,null,void 0,{...e,rejectPublicKeyAlgorithms:new Set,minRSABits:0});r&&!r.keyPacket.isDummy()&&(t=r.keyPacket)}else t=this.keyPacket;if(t)return t.validate();{const e=this.getKeys();if(e.map((e=>e.keyPacket.isDummy())).every(Boolean))throw Error("Cannot validate an all-gnu-dummy key");return Promise.all(e.map((async e=>e.keyPacket.validate())))}}clearPrivateParams(){this.getKeys().forEach((({keyPacket:e})=>{e.isDecrypted()&&e.clearPrivateParams()}))}async revoke({flag:e=Q.reasonForRevocation.noReason,string:t=""}={},r=new Date,n=R){if(!this.isPrivate())throw Error("Need private key for revoking");const i={key:this.keyPacket},s=this.clone();return s.revocationSignatures.push(await Pc(i,[],this.keyPacket,{signatureType:Q.signature.keyRevocation,reasonForRevocationFlag:Q.write(Q.reasonForRevocation,e),reasonForRevocationString:t},r,void 0,void 0,void 0,n)),s}async addSubkey(e={}){const t={...R,...e.config};if(e.passphrase)throw Error("Subkey could not be encrypted here, please encrypt whole key");if(e.rsaBits<t.minRSABits)throw Error(`rsaBits should be at least ${t.minRSABits}, got: ${e.rsaBits}`);const r=this.keyPacket;if(r.isDummy())throw Error("Cannot add subkey to gnu-dummy primary key");if(!r.isDecrypted())throw Error("Key is not decrypted");const n=r.getAlgorithmInfo();n.type=function(e){switch(Q.write(Q.publicKey,e)){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:case Q.publicKey.dsa:return"rsa";case Q.publicKey.ecdsa:case Q.publicKey.eddsaLegacy:return"ecc";case Q.publicKey.ed25519:return"curve25519";case Q.publicKey.ed448:return"curve448";default:throw Error("Unsupported algorithm")}}(n.algorithm),n.rsaBits=n.bits||4096,n.curve=n.curve||"curve25519Legacy",e=Rc(e,n);const i=await Bc(e,{...t,v6Keys:6===this.keyPacket.version});Fc(i,t);const s=await Cc(i,r,e,t),a=this.toPacketList();return a.push(i,s),new jc(a)}}const Vc=/*#__PURE__*/M.constructAllowedPackets([uc,fc,pc,wc,Ac,gc,Fo]);function Yc(e){for(const t of e)switch(t.constructor.tag){case Q.packet.secretKey:return new jc(e);case Q.packet.publicKey:return new qc(e)}throw Error("No key packet found")}async function Zc(e,t,r,n){r.passphrase&&await e.encrypt(r.passphrase,n),await Promise.all(t.map((async function(e,t){const i=r.subkeys[t].passphrase;i&&await e.encrypt(i,n)})));const i=new jo;function s(e,t){return[t,...e.filter((e=>e!==t))]}function a(){const t={};t.keyFlags=[Q.keyFlags.certifyKeys|Q.keyFlags.signData];const i=s([Q.symmetric.aes256,Q.symmetric.aes128],n.preferredSymmetricAlgorithm);if(t.preferredSymmetricAlgorithms=i,n.aeadProtect){const e=s([Q.aead.gcm,Q.aead.eax,Q.aead.ocb],n.preferredAEADAlgorithm);t.preferredCipherSuites=e.flatMap((e=>i.map((t=>[t,e]))))}return t.preferredHashAlgorithms=s([Q.hash.sha512,Q.hash.sha256,...6===e.version?[Q.hash.sha3_512,Q.hash.sha3_256]:[]],n.preferredHashAlgorithm),t.preferredCompressionAlgorithms=s([Q.compression.uncompressed,Q.compression.zlib,Q.compression.zip],n.preferredCompressionAlgorithm),t.features=[0],t.features[0]|=Q.features.modificationDetection,n.aeadProtect&&(t.features[0]|=Q.features.seipdv2),r.keyExpirationTime>0&&(t.keyExpirationTime=r.keyExpirationTime,t.keyNeverExpires=!1),t}if(i.push(e),6===e.version){const t={key:e},s=a();s.signatureType=Q.signature.key;const o=await Pc(t,[],e,s,r.date,void 0,void 0,void 0,n);i.push(o)}await Promise.all(r.userIDs.map((async function(t,i){const s=Ac.fromObject(t),o={userID:s,key:e},c=6!==e.version?a():{};c.signatureType=Q.signature.certPositive,0===i&&(c.isPrimaryUserID=!0);return{userIDPacket:s,signaturePacket:await Pc(o,[],e,c,r.date,void 0,void 0,void 0,n)}}))).then((e=>{e.forEach((({userIDPacket:e,signaturePacket:t})=>{i.push(e),i.push(t)}))})),await Promise.all(t.map((async function(t,i){const s=r.subkeys[i];return{secretSubkeyPacket:t,subkeySignaturePacket:await Cc(t,e,s,n)}}))).then((e=>{e.forEach((({secretSubkeyPacket:e,subkeySignaturePacket:t})=>{i.push(e),i.push(t)}))}));const o={key:e};return i.push(await Pc(o,[],e,{signatureType:Q.signature.keyRevocation,reasonForRevocationFlag:Q.reasonForRevocation.noReason,reasonForRevocationString:""},r.date,void 0,void 0,void 0,n)),r.passphrase&&e.clearPrivateParams(),await Promise.all(t.map((async function(e,t){r.subkeys[t].passphrase&&e.clearPrivateParams()}))),new jc(i)}async function Wc({armoredKey:e,binaryKey:t,config:r,...n}){if(r={...R,...r},!e&&!t)throw Error("readKey: must pass options object containing `armoredKey` or `binaryKey`");if(e&&!M.isString(e))throw Error("readKey: options.armoredKey must be a string");if(t&&!M.isUint8Array(t))throw Error("readKey: options.binaryKey must be a Uint8Array");const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));let s;if(e){const{type:t,data:r}=await J(e);if(t!==Q.armor.publicKey&&t!==Q.armor.privateKey)throw Error("Armored text not of type key");s=r}else s=t;const a=await jo.fromBinary(s,Vc,r),o=a.indexOfTag(Q.packet.publicKey,Q.packet.secretKey);if(0===o.length)throw Error("No key packet found");return Yc(a.slice(o[0],o[1]))}async function Jc({armoredKey:e,binaryKey:t,config:r,...n}){if(r={...R,...r},!e&&!t)throw Error("readPrivateKey: must pass options object containing `armoredKey` or `binaryKey`");if(e&&!M.isString(e))throw Error("readPrivateKey: options.armoredKey must be a string");if(t&&!M.isUint8Array(t))throw Error("readPrivateKey: options.binaryKey must be a Uint8Array");const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));let s;if(e){const{type:t,data:r}=await J(e);if(t!==Q.armor.privateKey)throw Error("Armored text not of type private key");s=r}else s=t;const a=await jo.fromBinary(s,Vc,r),o=a.indexOfTag(Q.packet.publicKey,Q.packet.secretKey);for(let e=0;e<o.length;e++){if(a[o[e]].constructor.tag===Q.packet.publicKey)continue;const t=a.slice(o[e],o[e+1]);return new jc(t)}throw Error("No secret key packet found")}async function Xc({armoredKeys:e,binaryKeys:t,config:r,...n}){r={...R,...r};let i=e||t;if(!i)throw Error("readKeys: must pass options object containing `armoredKeys` or `binaryKeys`");if(e&&!M.isString(e))throw Error("readKeys: options.armoredKeys must be a string");if(t&&!M.isUint8Array(t))throw Error("readKeys: options.binaryKeys must be a Uint8Array");const s=Object.keys(n);if(s.length>0)throw Error("Unknown option: "+s.join(", "));if(e){const{type:t,data:r}=await J(e);if(t!==Q.armor.publicKey&&t!==Q.armor.privateKey)throw Error("Armored text not of type key");i=r}const a=[],o=await jo.fromBinary(i,Vc,r),c=o.indexOfTag(Q.packet.publicKey,Q.packet.secretKey);if(0===c.length)throw Error("No key packet found");for(let e=0;e<c.length;e++){const t=Yc(o.slice(c[e],c[e+1]));a.push(t)}return a}async function $c({armoredKeys:e,binaryKeys:t,config:r}){r={...R,...r};let n=e||t;if(!n)throw Error("readPrivateKeys: must pass options object containing `armoredKeys` or `binaryKeys`");if(e&&!M.isString(e))throw Error("readPrivateKeys: options.armoredKeys must be a string");if(t&&!M.isUint8Array(t))throw Error("readPrivateKeys: options.binaryKeys must be a Uint8Array");if(e){const{type:t,data:r}=await J(e);if(t!==Q.armor.privateKey)throw Error("Armored text not of type private key");n=r}const i=[],s=await jo.fromBinary(n,Vc,r),a=s.indexOfTag(Q.packet.publicKey,Q.packet.secretKey);for(let e=0;e<a.length;e++){if(s[a[e]].constructor.tag===Q.packet.publicKey)continue;const t=s.slice(a[e],a[e+1]),r=new jc(t);i.push(r)}if(0===i.length)throw Error("No secret key packet found");return i}const eu=/*#__PURE__*/M.constructAllowedPackets([Qo,Yo,ic,tc,lc,ac,cc,_o,Fo]),tu=/*#__PURE__*/M.constructAllowedPackets([cc]),ru=/*#__PURE__*/M.constructAllowedPackets([Fo]);class nu{constructor(e){this.packets=e||new jo}getEncryptionKeyIDs(){const e=[];return this.packets.filterByTag(Q.packet.publicKeyEncryptedSessionKey).forEach((function(t){e.push(t.publicKeyID)})),e}getSigningKeyIDs(){const e=this.unwrapCompressed(),t=e.packets.filterByTag(Q.packet.onePassSignature);if(t.length>0)return t.map((e=>e.issuerKeyID));return e.packets.filterByTag(Q.packet.signature).map((e=>e.issuerKeyID))}async decrypt(e,t,r,n=new Date,i=R){const s=this.packets.filterByTag(Q.packet.symmetricallyEncryptedData,Q.packet.symEncryptedIntegrityProtectedData,Q.packet.aeadEncryptedData);if(0===s.length)throw Error("No encrypted data found");const a=s[0],o=a.cipherAlgorithm,c=r||await this.decryptSessionKeys(e,t,o,n,i);let u=null;const h=Promise.all(c.map((async({algorithm:e,data:t})=>{if(!M.isUint8Array(t)||!a.cipherAlgorithm&&!M.isString(e))throw Error("Invalid session key for decryption.");try{const r=a.cipherAlgorithm||Q.write(Q.symmetric,e);await a.decrypt(r,t,i)}catch(e){M.printDebugError(e),u=e}})));if(C(a.encrypted),a.encrypted=null,await h,!a.packets||!a.packets.length)throw u||Error("Decryption failed.");const l=new nu(a.packets);return a.packets=new jo,l}async decryptSessionKeys(e,t,r,n=new Date,i=R){let s,a=[];if(t){const e=this.packets.filterByTag(Q.packet.symEncryptedSessionKey);if(0===e.length)throw Error("No symmetrically encrypted session key packet found.");await Promise.all(t.map((async function(t,r){let n;n=r?await jo.fromBinary(e.write(),tu,i):e,await Promise.all(n.map((async function(e){try{await e.decrypt(t),a.push(e)}catch(e){M.printDebugError(e),e instanceof Da&&(s=e)}})))})))}else{if(!e)throw Error("No key or password specified.");{const t=this.packets.filterByTag(Q.packet.publicKeyEncryptedSessionKey);if(0===t.length)throw Error("No public key encrypted session key packet found.");await Promise.all(t.map((async function(t){await Promise.all(e.map((async function(e){let o;try{o=(await e.getDecryptionKeys(t.publicKeyID,null,void 0,i)).map((e=>e.keyPacket))}catch(e){return void(s=e)}let c=[Q.symmetric.aes256,Q.symmetric.aes128,Q.symmetric.tripledes,Q.symmetric.cast5];try{const t=await e.getPrimarySelfSignature(n,void 0,i);t.preferredSymmetricAlgorithms&&(c=c.concat(t.preferredSymmetricAlgorithms))}catch(e){}await Promise.all(o.map((async function(e){if(!e.isDecrypted())throw Error("Decryption key is not decrypted.");if(i.constantTimePKCS1Decryption&&(t.publicKeyAlgorithm===Q.publicKey.rsaEncrypt||t.publicKeyAlgorithm===Q.publicKey.rsaEncryptSign||t.publicKeyAlgorithm===Q.publicKey.rsaSign||t.publicKeyAlgorithm===Q.publicKey.elgamal)){const n=t.write();await Promise.all((r?[r]:Array.from(i.constantTimePKCS1DecryptionSupportedSymmetricAlgorithms)).map((async t=>{const r=new ac;r.read(n);const i={sessionKeyAlgorithm:t,sessionKey:Ia(t)};try{await r.decrypt(e,i),a.push(r)}catch(e){M.printDebugError(e),s=e}})))}else try{await t.decrypt(e);const n=r||t.sessionKeyAlgorithm;if(n&&!c.includes(Q.write(Q.symmetric,n)))throw Error("A non-preferred symmetric algorithm was used.");a.push(t)}catch(e){M.printDebugError(e),s=e}})))}))),C(t.encrypted),t.encrypted=null})))}}if(a.length>0){if(a.length>1){const e=new Set;a=a.filter((t=>{const r=t.sessionKeyAlgorithm+M.uint8ArrayToString(t.sessionKey);return!e.has(r)&&(e.add(r),!0)}))}return a.map((e=>({data:e.sessionKey,algorithm:e.sessionKeyAlgorithm&&Q.read(Q.symmetric,e.sessionKeyAlgorithm)})))}throw s||Error("Session key decryption failed.")}getLiteralData(){const e=this.unwrapCompressed().packets.findPacket(Q.packet.literalData);return e&&e.getBytes()||null}getFilename(){const e=this.unwrapCompressed().packets.findPacket(Q.packet.literalData);return e&&e.getFilename()||null}getText(){const e=this.unwrapCompressed().packets.findPacket(Q.packet.literalData);return e?e.getText():null}static async generateSessionKey(e=[],t=new Date,r=[],n=R){const{symmetricAlgo:i,aeadAlgo:s}=await async function(e=[],t=new Date,r=[],n=R){const i=await Promise.all(e.map(((e,i)=>e.getPrimarySelfSignature(t,r[i],n))));if(e.length?!n.ignoreSEIPDv2FeatureFlag&&i.every((e=>e.features&&e.features[0]&Q.features.seipdv2)):n.aeadProtect){const e={symmetricAlgo:Q.symmetric.aes128,aeadAlgo:Q.aead.ocb},t=[{symmetricAlgo:n.preferredSymmetricAlgorithm,aeadAlgo:n.preferredAEADAlgorithm},{symmetricAlgo:n.preferredSymmetricAlgorithm,aeadAlgo:Q.aead.ocb},{symmetricAlgo:Q.symmetric.aes128,aeadAlgo:n.preferredAEADAlgorithm}];for(const e of t)if(i.every((t=>t.preferredCipherSuites&&t.preferredCipherSuites.some((t=>t[0]===e.symmetricAlgo&&t[1]===e.aeadAlgo)))))return e;return e}const s=Q.symmetric.aes128,a=n.preferredSymmetricAlgorithm;return{symmetricAlgo:i.every((e=>e.preferredSymmetricAlgorithms&&e.preferredSymmetricAlgorithms.includes(a)))?a:s,aeadAlgo:void 0}}(e,t,r,n),a=Q.read(Q.symmetric,i),o=s?Q.read(Q.aead,s):void 0;await Promise.all(e.map((e=>e.getEncryptionKey().catch((()=>null)).then((e=>{if(e&&(e.keyPacket.algorithm===Q.publicKey.x25519||e.keyPacket.algorithm===Q.publicKey.x448)&&!o&&!M.isAES(i))throw Error("Could not generate a session key compatible with the given `encryptionKeys`: X22519 and X448 keys can only be used to encrypt AES session keys; change `config.preferredSymmetricAlgorithm` accordingly.")})))));return{data:Ia(i),algorithm:a,aeadAlgorithm:o}}async encrypt(e,t,r,n=!1,i=[],s=new Date,a=[],o=R){if(r){if(!M.isUint8Array(r.data)||!M.isString(r.algorithm))throw Error("Invalid session key for encryption.")}else if(e&&e.length)r=await nu.generateSessionKey(e,s,a,o);else{if(!t||!t.length)throw Error("No keys, passwords, or session key provided.");r=await nu.generateSessionKey(void 0,void 0,void 0,o)}const{data:c,algorithm:u,aeadAlgorithm:h}=r,l=await nu.encryptSessionKey(c,u,h,e,t,n,i,s,a,o),y=tc.fromObject({version:h?2:1,aeadAlgorithm:h?Q.write(Q.aead,h):null});y.packets=this.packets;const f=Q.write(Q.symmetric,u);return await y.encrypt(f,c,o),l.packets.push(y),y.packets=new jo,l}static async encryptSessionKey(e,t,r,n,i,s=!1,a=[],o=new Date,c=[],u=R){const h=new jo,l=Q.write(Q.symmetric,t),y=r&&Q.write(Q.aead,r);if(n){const t=await Promise.all(n.map((async function(t,r){const n=await t.getEncryptionKey(a[r],o,c,u),i=ac.fromObject({version:y?6:3,encryptionKeyPacket:n.keyPacket,anonymousRecipient:s,sessionKey:e,sessionKeyAlgorithm:l});return await i.encrypt(n.keyPacket),delete i.sessionKey,i})));h.push(...t)}if(i){const t=async function(e,t){try{return await e.decrypt(t),1}catch(e){return 0}},r=(e,t)=>e+t,n=async function(e,s,a,o){const c=new cc(u);if(c.sessionKey=e,c.sessionKeyAlgorithm=s,a&&(c.aeadAlgorithm=a),await c.encrypt(o,u),u.passwordCollisionCheck){if(1!==(await Promise.all(i.map((e=>t(c,e))))).reduce(r))return n(e,s,o)}return delete c.sessionKey,c},s=await Promise.all(i.map((t=>n(e,l,y,t))));h.push(...s)}return new nu(h)}async sign(e=[],t=[],r=null,n=[],i=new Date,s=[],a=[],o=[],c=R){const u=new jo,h=this.packets.findPacket(Q.packet.literalData);if(!h)throw Error("No literal data packet to sign.");const l=await iu(h,e,t,r,n,i,s,a,o,!1,c),y=l.map(((e,t)=>_o.fromSignaturePacket(e,0===t))).reverse();return u.push(...y),u.push(h),u.push(...l),new nu(u)}compress(e,t=R){if(e===Q.compression.uncompressed)return this;const r=new Yo(t);r.algorithm=e,r.packets=this.packets;const n=new jo;return n.push(r),new nu(n)}async signDetached(e=[],t=[],r=null,n=[],i=[],s=new Date,a=[],o=[],c=R){const u=this.packets.findPacket(Q.packet.literalData);if(!u)throw Error("No literal data packet to sign.");return new Ec(await iu(u,e,t,r,n,i,s,a,o,!0,c))}async verify(e,t=new Date,r=R){const n=this.unwrapCompressed(),i=n.packets.filterByTag(Q.packet.literalData);if(1!==i.length)throw Error("Can only verify message with one literal data packet.");a(n.packets.stream)&&n.packets.push(...await K(n.packets.stream,(e=>e||[])));const s=n.packets.filterByTag(Q.packet.onePassSignature).reverse(),o=n.packets.filterByTag(Q.packet.signature);return s.length&&!o.length&&M.isStream(n.packets.stream)&&!a(n.packets.stream)?(await Promise.all(s.map((async e=>{e.correspondingSig=new Promise(((t,r)=>{e.correspondingSigResolve=t,e.correspondingSigReject=r})),e.signatureData=U((async()=>(await e.correspondingSig).signatureData)),e.hashed=K(await e.hash(e.signatureType,i[0],void 0,!1)),e.hashed.catch((()=>{}))}))),n.packets.stream=k(n.packets.stream,(async(e,t)=>{const r=P(e),n=D(t);try{for(let e=0;e<s.length;e++){const{value:t}=await r.read();s[e].correspondingSigResolve(t)}await r.readToEnd(),await n.ready,await n.close()}catch(e){s.forEach((t=>{t.correspondingSigReject(e)})),await n.abort(e)}})),su(s,i,e,t,!1,r)):su(o,i,e,t,!1,r)}verifyDetached(e,t,r=new Date,n=R){const i=this.unwrapCompressed().packets.filterByTag(Q.packet.literalData);if(1!==i.length)throw Error("Can only verify message with one literal data packet.");return su(e.packets.filterByTag(Q.packet.signature),i,t,r,!0,n)}unwrapCompressed(){const e=this.packets.filterByTag(Q.packet.compressedData);return e.length?new nu(e[0].packets):this}async appendSignature(e,t=R){await this.packets.read(M.isUint8Array(e)?e:(await J(e)).data,ru,t)}write(){return this.packets.write()}armor(e=R){const t=this.packets[this.packets.length-1],r=t.constructor.tag===tc.tag?2!==t.version:this.packets.some((e=>e.constructor.tag===Fo.tag&&6!==e.version));return X(Q.armor.message,this.write(),null,null,null,r,e)}}async function iu(e,t,r=[],n=null,i=[],s=new Date,a=[],o=[],c=[],u=!1,h=R){const l=new jo,y=null===e.text?Q.signature.binary:Q.signature.text;if(await Promise.all(t.map((async(t,n)=>{const l=a[n];if(!t.isPrivate())throw Error("Need private key for signing");const f=await t.getSigningKey(i[n],s,l,h);return Pc(e,r.length?r:[t],f.keyPacket,{signatureType:y},s,o,c,u,h)}))).then((e=>{l.push(...e)})),n){const e=n.packets.filterByTag(Q.packet.signature);l.push(...e)}return l}async function su(e,t,r,n=new Date,i=!1,s=R){return Promise.all(e.filter((function(e){return["text","binary"].includes(Q.read(Q.signature,e.signatureType))})).map((async function(e){return async function(e,t,r,n=new Date,i=!1,s=R){let a,o;for(const t of r){const r=t.getKeys(e.issuerKeyID);if(r.length>0){a=t,o=r[0];break}}const c=e instanceof _o?e.correspondingSig:e,u={keyID:e.issuerKeyID,verified:(async()=>{if(!o)throw Error("Could not find signing key with key ID "+e.issuerKeyID.toHex());await e.verify(o.keyPacket,e.signatureType,t[0],n,i,s);const r=await c;if(o.getCreationTime()>r.created)throw Error("Key is newer than the signature");try{await a.getSigningKey(o.getKeyID(),r.created,void 0,s)}catch(e){if(!s.allowInsecureVerificationWithReformattedKeys||!e.message.match(/Signature creation time is in the future/))throw e;await a.getSigningKey(o.getKeyID(),n,void 0,s)}return!0})(),signature:(async()=>{const e=await c,t=new jo;return e&&t.push(e),new Ec(t)})()};return u.signature.catch((()=>{})),u.verified.catch((()=>{})),u}(e,t,r,n,i,s)})))}async function au({armoredMessage:e,binaryMessage:t,config:r,...n}){r={...R,...r};let i=e||t;if(!i)throw Error("readMessage: must pass options object containing `armoredMessage` or `binaryMessage`");if(e&&!M.isString(e)&&!M.isStream(e))throw Error("readMessage: options.armoredMessage must be a string or stream");if(t&&!M.isUint8Array(t)&&!M.isStream(t))throw Error("readMessage: options.binaryMessage must be a Uint8Array or stream");const s=Object.keys(n);if(s.length>0)throw Error("Unknown option: "+s.join(", "));const a=M.isStream(i);if(e){const{type:e,data:t}=await J(i);if(e!==Q.armor.message)throw Error("Armored text not of type message");i=t}const o=await jo.fromBinary(i,eu,r,Go({delayReporting:!1})),c=new nu(o);return c.fromStream=a,c}async function ou({text:e,binary:t,filename:r,date:n=new Date,format:i=(void 0!==e?"utf8":"binary"),...s}){const a=void 0!==e?e:t;if(void 0===a)throw Error("createMessage: must pass options object containing `text` or `binary`");if(e&&!M.isString(e)&&!M.isStream(e))throw Error("createMessage: options.text must be a string or stream");if(t&&!M.isUint8Array(t)&&!M.isStream(t))throw Error("createMessage: options.binary must be a Uint8Array or stream");const o=Object.keys(s);if(o.length>0)throw Error("Unknown option: "+o.join(", "));const c=M.isStream(a),u=new Qo(n);void 0!==e?u.setText(a,Q.write(Q.literal,i)):u.setBytes(a,Q.write(Q.literal,i)),void 0!==r&&u.setFilename(r);const h=new jo;h.push(u);const l=new nu(h);return l.fromStream=c,l}const cu=/*#__PURE__*/M.constructAllowedPackets([Fo]);class uu{constructor(e,t){if(this.text=M.removeTrailingSpaces(e).replace(/\r?\n/g,"\r\n"),t&&!(t instanceof Ec))throw Error("Invalid signature input");this.signature=t||new Ec(new jo)}getSigningKeyIDs(){const e=[];return this.signature.packets.forEach((function(t){e.push(t.issuerKeyID)})),e}async sign(e,t=[],r=null,n=[],i=new Date,s=[],a=[],o=[],c=R){const u=new Qo;u.setText(this.text);const h=new Ec(await iu(u,e,t,r,n,i,s,a,o,!0,c));return new uu(this.text,h)}verify(e,t=new Date,r=R){const n=this.signature.packets.filterByTag(Q.packet.signature),i=new Qo;return i.setText(this.text),su(n,[i],e,t,!0,r)}getText(){return this.text.replace(/\r\n/g,"\n")}armor(e=R){const t=this.signature.packets.some((e=>6!==e.version)),r={hash:t?Array.from(new Set(this.signature.packets.map((e=>Q.read(Q.hash,e.hashAlgorithm).toUpperCase())))).join():null,text:this.text,data:this.signature.packets.write()};return X(Q.armor.signed,r,void 0,void 0,void 0,t,e)}}async function hu({cleartextMessage:e,config:t,...r}){if(t={...R,...t},!e)throw Error("readCleartextMessage: must pass options object containing `cleartextMessage`");if(!M.isString(e))throw Error("readCleartextMessage: options.cleartextMessage must be a string");const n=Object.keys(r);if(n.length>0)throw Error("Unknown option: "+n.join(", "));const i=await J(e);if(i.type!==Q.armor.signed)throw Error("No cleartext signed message.");const s=await jo.fromBinary(i.data,cu,t);!function(e,t){const r=function(e){const r=e=>t=>e.hashAlgorithm===t;for(let n=0;n<t.length;n++)if(t[n].constructor.tag===Q.packet.signature&&!e.some(r(t[n])))return!1;return!0},n=[];if(e.forEach((e=>{const t=e.match(/^Hash: (.+)$/);if(!t)throw Error('Only "Hash" header allowed in cleartext signed message');{const e=t[1].replace(/\s/g,"").split(",").map((e=>{try{return Q.write(Q.hash,e.toLowerCase())}catch(t){throw Error("Unknown hash algorithm in armor header: "+e.toLowerCase())}}));n.push(...e)}})),n.length&&!r(n))throw Error("Hash algorithm mismatch in armor header and signature")}(i.headers,s);const a=new Ec(s);return new uu(i.text,a)}async function lu({text:e,...t}){if(!e)throw Error("createCleartextMessage: must pass options object containing `text`");if(!M.isString(e))throw Error("createCleartextMessage: options.text must be a string");const r=Object.keys(t);if(r.length>0)throw Error("Unknown option: "+r.join(", "));return new uu(e)}async function yu({userIDs:e=[],passphrase:t,type:r,curve:n,rsaBits:i=4096,symmetricHash:s="sha256",symmetricCipher:a="aes256",keyExpirationTime:o=0,date:c=new Date,subkeys:u=[{}],format:h="armored",config:l,...y}){Cu(l={...R,...l}),r||n?(r=r||"ecc",n=n||"curve25519Legacy"):(r=l.v6Keys?"curve25519":"ecc",n="curve25519Legacy"),e=Uu(e);const f=Object.keys(y);if(f.length>0)throw Error("Unknown option: "+f.join(", "));if(0===e.length&&!l.v6Keys)throw Error("UserIDs are required for V4 keys");if("rsa"===r&&i<l.minRSABits)throw Error(`rsaBits should be at least ${l.minRSABits}, got: ${i}`);const g={userIDs:e,passphrase:t,type:r,rsaBits:i,curve:n,keyExpirationTime:o,date:c,subkeys:u,symmetricHash:s,symmetricCipher:a};try{const{key:e,revocationCertificate:t}=await async function(e,t){e.sign=!0,(e=Rc(e)).subkeys=e.subkeys.map(((t,r)=>Rc(e.subkeys[r],e)));let r=[Sc(e,t)];r=r.concat(e.subkeys.map((e=>Bc(e,t))));const n=await Promise.all(r),i=await Zc(n[0],n.slice(1),e,t),s=await i.getRevocationCertificate(e.date,t);return i.revocationSignatures=[],{key:i,revocationCertificate:s}}(g,l);return e.getKeys().forEach((({keyPacket:e})=>Fc(e,l))),{privateKey:xu(e,h,l),publicKey:"symmetric"!==r?xu(e.toPublic(),h,l):null,revocationCertificate:t}}catch(e){throw M.wrapError("Error generating keypair",e)}}async function fu({privateKey:e,userIDs:t=[],passphrase:r,keyExpirationTime:n=0,date:i,format:s="armored",config:a,...o}){Cu(a={...R,...a}),t=Uu(t);const c=Object.keys(o);if(c.length>0)throw Error("Unknown option: "+c.join(", "));if(0===t.length&&6!==e.keyPacket.version)throw Error("UserIDs are required for V4 keys");const u={privateKey:e,userIDs:t,passphrase:r,keyExpirationTime:n,date:i};try{const{key:e,revocationCertificate:t}=await async function(e,t){e=o(e);const{privateKey:r}=e;if(!r.isPrivate())throw Error("Cannot reformat a public key");if(r.keyPacket.isDummy())throw Error("Cannot reformat a gnu-dummy primary key");if(!r.getKeys().every((({keyPacket:e})=>e.isDecrypted())))throw Error("Key is not decrypted");const n=r.keyPacket;e.subkeys||(e.subkeys=await Promise.all(r.subkeys.map((async e=>{const r=e.keyPacket,i={key:n,bind:r},s=await Ic(e.bindingSignatures,n,Q.signature.subkeyBinding,i,null,t).catch((()=>({})));return{sign:s.keyFlags&&s.keyFlags[0]&Q.keyFlags.signData,forwarding:s.keyFlags&&s.keyFlags[0]&Q.keyFlags.forwardedCommunication}}))));const i=r.subkeys.map((e=>e.keyPacket));if(e.subkeys.length!==i.length)throw Error("Number of subkey options does not match number of subkeys");e.subkeys=e.subkeys.map((t=>o(t,e)));const s=await Zc(n,i,e,t),a=await s.getRevocationCertificate(e.date,t);return s.revocationSignatures=[],{key:s,revocationCertificate:a};function o(e,t={}){return e.keyExpirationTime=e.keyExpirationTime||t.keyExpirationTime,e.passphrase=M.isString(e.passphrase)?e.passphrase:t.passphrase,e.date=e.date||t.date,e}}(u,a);return{privateKey:xu(e,s,a),publicKey:xu(e.toPublic(),s,a),revocationCertificate:t}}catch(e){throw M.wrapError("Error reformatting keypair",e)}}async function gu({key:e,revocationCertificate:t,reasonForRevocation:r,date:n=new Date,format:i="armored",config:s,...a}){Cu(s={...R,...s});const o=Object.keys(a);if(o.length>0)throw Error("Unknown option: "+o.join(", "));try{const a=t?await e.applyRevocationCertificate(t,n,s):await e.revoke(r,n,s);return a.isPrivate()?{privateKey:xu(a,i,s),publicKey:xu(a.toPublic(),i,s)}:{privateKey:null,publicKey:xu(a,i,s)}}catch(e){throw M.wrapError("Error revoking key",e)}}async function pu({privateKey:e,passphrase:t,config:r,...n}){Cu(r={...R,...r});const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));if(!e.isPrivate())throw Error("Cannot decrypt a public key");const s=e.clone(!0),a=M.isArray(t)?t:[t];try{return await Promise.all(s.getKeys().map((e=>M.anyPromise(a.map((t=>e.keyPacket.decrypt(t))))))),await s.validate(r),s}catch(e){throw s.clearPrivateParams(),M.wrapError("Error decrypting private key",e)}}async function du({privateKey:e,passphrase:t,config:r,...n}){Cu(r={...R,...r});const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));if(!e.isPrivate())throw Error("Cannot encrypt a public key");const s=e.clone(!0),a=s.getKeys(),o=M.isArray(t)?t:Array(a.length).fill(t);if(o.length!==a.length)throw Error("Invalid number of passphrases given for key encryption");try{return await Promise.all(a.map((async(e,t)=>{const{keyPacket:n}=e;await n.encrypt(o[t],r),n.clearPrivateParams()}))),s}catch(e){throw s.clearPrivateParams(),M.wrapError("Error encrypting private key",e)}}async function Au({message:e,encryptionKeys:t,signingKeys:r,passwords:n,sessionKey:i,format:s="armored",signature:a=null,wildcard:o=!1,signingKeyIDs:c=[],encryptionKeyIDs:u=[],date:h=new Date,signingUserIDs:l=[],encryptionUserIDs:y=[],signatureNotations:f=[],config:g,...p}){if(Cu(g={...R,...g}),Bu(e),Iu(s),t=Uu(t),r=Uu(r),n=Uu(n),c=Uu(c),u=Uu(u),l=Uu(l),y=Uu(y),f=Uu(f),p.detached)throw Error("The `detached` option has been removed from openpgp.encrypt, separately call openpgp.sign instead. Don't forget to remove the `privateKeys` option as well.");if(p.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.encrypt, pass `encryptionKeys` instead");if(p.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.encrypt, pass `signingKeys` instead");if(void 0!==p.armor)throw Error("The `armor` option has been removed from openpgp.encrypt, pass `format` instead.");const d=Object.keys(p);if(d.length>0)throw Error("Unknown option: "+d.join(", "));r||(r=[]);try{if((r.length||a)&&(e=await e.sign(r,t,a,c,h,l,u,f,g)),e=e.compress(await async function(e=[],t=new Date,r=[],n=R){const i=Q.compression.uncompressed,s=n.preferredCompressionAlgorithm,a=await Promise.all(e.map((async function(e,i){const a=(await e.getPrimarySelfSignature(t,r[i],n)).preferredCompressionAlgorithms;return!!a&&a.indexOf(s)>=0})));return a.every(Boolean)?s:i}(t,h,y,g),g),e=await e.encrypt(t,n,i,o,u,h,y,g),"object"===s)return e;const p="armored"===s?e.armor(g):e.write();return await Pu(p)}catch(e){throw M.wrapError("Error encrypting message",e)}}async function wu({message:e,decryptionKeys:t,passwords:r,sessionKeys:n,verificationKeys:i,expectSigned:s=!1,format:a="utf8",signature:o=null,date:c=new Date,config:u,...h}){if(Cu(u={...R,...u}),Bu(e),i=Uu(i),t=Uu(t),r=Uu(r),n=Uu(n),h.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.decrypt, pass `decryptionKeys` instead");if(h.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.decrypt, pass `verificationKeys` instead");const l=Object.keys(h);if(l.length>0)throw Error("Unknown option: "+l.join(", "));try{const h=await e.decrypt(t,r,n,c,u);i||(i=[]);const l={};if(l.signatures=o?await h.verifyDetached(o,i,c,u):await h.verify(i,c,u),l.data="binary"===a?h.getLiteralData():h.getText(),l.filename=h.getFilename(),Du(l,e,...new Set([h,h.unwrapCompressed()])),s){if(0===i.length)throw Error("Verification keys are required to verify message signatures");if(0===l.signatures.length)throw Error("Message is not signed");l.data=d([l.data,U((async()=>(await M.anyPromise(l.signatures.map((e=>e.verified))),"binary"===a?new Uint8Array:"")))])}return l.data=await Pu(l.data),l}catch(e){throw M.wrapError("Error decrypting message",e)}}async function mu({message:e,signingKeys:t,recipientKeys:r=[],format:n="armored",detached:i=!1,signingKeyIDs:s=[],date:a=new Date,signingUserIDs:o=[],recipientUserIDs:c=[],signatureNotations:u=[],config:h,...l}){if(Cu(h={...R,...h}),Su(e),Iu(n),t=Uu(t),s=Uu(s),o=Uu(o),r=Uu(r),c=Uu(c),u=Uu(u),l.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.sign, pass `signingKeys` instead");if(void 0!==l.armor)throw Error("The `armor` option has been removed from openpgp.sign, pass `format` instead.");const y=Object.keys(l);if(y.length>0)throw Error("Unknown option: "+y.join(", "));if(e instanceof uu&&"binary"===n)throw Error("Cannot return signed cleartext message in binary format");if(e instanceof uu&&i)throw Error("Cannot detach-sign a cleartext message");if(!t||0===t.length)throw Error("No signing keys provided");try{let l;if(l=i?await e.signDetached(t,r,void 0,s,a,o,c,u,h):await e.sign(t,r,void 0,s,a,o,c,u,h),"object"===n)return l;return l="armored"===n?l.armor(h):l.write(),i&&(l=k(e.packets.write(),(async(e,t)=>{await Promise.all([A(l,t),K(e).catch((()=>{}))])}))),await Pu(l)}catch(e){throw M.wrapError("Error signing message",e)}}async function bu({message:e,verificationKeys:t,expectSigned:r=!1,format:n="utf8",signature:i=null,date:s=new Date,config:a,...o}){if(Cu(a={...R,...a}),Su(e),t=Uu(t),o.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.verify, pass `verificationKeys` instead");const c=Object.keys(o);if(c.length>0)throw Error("Unknown option: "+c.join(", "));if(e instanceof uu&&"binary"===n)throw Error("Can't return cleartext message data as binary");if(e instanceof uu&&i)throw Error("Can't verify detached cleartext signature");try{const o={};if(o.signatures=i?await e.verifyDetached(i,t,s,a):await e.verify(t,s,a),o.data="binary"===n?e.getLiteralData():e.getText(),e.fromStream&&!i&&Du(o,...new Set([e,e.unwrapCompressed()])),r){if(0===o.signatures.length)throw Error("Message is not signed");o.data=d([o.data,U((async()=>(await M.anyPromise(o.signatures.map((e=>e.verified))),"binary"===n?new Uint8Array:"")))])}return o.data=await Pu(o.data),o}catch(e){throw M.wrapError("Error verifying signed message",e)}}async function ku({encryptionKeys:e,date:t=new Date,encryptionUserIDs:r=[],config:n,...i}){if(Cu(n={...R,...n}),e=Uu(e),r=Uu(r),i.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.generateSessionKey, pass `encryptionKeys` instead");const s=Object.keys(i);if(s.length>0)throw Error("Unknown option: "+s.join(", "));try{return await nu.generateSessionKey(e,t,r,n)}catch(e){throw M.wrapError("Error generating session key",e)}}async function Eu({data:e,algorithm:t,aeadAlgorithm:r,encryptionKeys:n,passwords:i,format:s="armored",wildcard:a=!1,encryptionKeyIDs:o=[],date:c=new Date,encryptionUserIDs:u=[],config:h,...l}){if(Cu(h={...R,...h}),function(e){if(!M.isUint8Array(e))throw Error("Parameter [data] must be of type Uint8Array")}(e),function(e,t){if(!M.isString(e))throw Error("Parameter ["+t+"] must be of type String")}(t,"algorithm"),Iu(s),n=Uu(n),i=Uu(i),o=Uu(o),u=Uu(u),l.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.encryptSessionKey, pass `encryptionKeys` instead");const y=Object.keys(l);if(y.length>0)throw Error("Unknown option: "+y.join(", "));if(!(n&&0!==n.length||i&&0!==i.length))throw Error("No encryption keys or passwords provided.");try{return xu(await nu.encryptSessionKey(e,t,r,n,i,a,o,c,u,h),s,h)}catch(e){throw M.wrapError("Error encrypting session key",e)}}async function vu({message:e,decryptionKeys:t,passwords:r,date:n=new Date,config:i,...s}){if(Cu(i={...R,...i}),Bu(e),t=Uu(t),r=Uu(r),s.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.decryptSessionKeys, pass `decryptionKeys` instead");const a=Object.keys(s);if(a.length>0)throw Error("Unknown option: "+a.join(", "));try{return await e.decryptSessionKeys(t,r,void 0,n,i)}catch(e){throw M.wrapError("Error decrypting session keys",e)}}function Bu(e){if(!(e instanceof nu))throw Error("Parameter [message] needs to be of type Message")}function Su(e){if(!(e instanceof uu||e instanceof nu))throw Error("Parameter [message] needs to be of type Message or CleartextMessage")}function Iu(e){if("armored"!==e&&"binary"!==e&&"object"!==e)throw Error("Unsupported format "+e)}const Ku=Object.keys(R).length;function Cu(e){const t=Object.keys(e);if(t.length!==Ku)for(const e of t)if(void 0===R[e])throw Error("Unknown config property: "+e)}function Uu(e){return e&&!M.isArray(e)&&(e=[e]),e}async function Pu(e){return"array"===M.isStream(e)?K(e):e}function Du(e,t,...r){e.data=k(t.packets.stream,(async(t,n)=>{await A(e.data,n,{preventClose:!0});const i=D(n);try{await K(t,(e=>e)),await Promise.all(r.map((e=>K(e.packets.stream,(e=>e))))),await i.close()}catch(e){await i.abort(e)}}))}function xu(e,t,r){switch(t){case"object":return e;case"armored":return e.armor(r);case"binary":return e.write();default:throw Error("Unsupported format "+t)}}function Qu(e){if(!Number.isSafeInteger(e)||e<0)throw Error("positive integer expected, got "+e)}function Ru(e,...t){if(!((r=e)instanceof Uint8Array||ArrayBuffer.isView(r)&&"Uint8Array"===r.constructor.name))throw Error("Uint8Array expected");var r;if(t.length>0&&!t.includes(e.length))throw Error("Uint8Array expected of length "+t+", got length="+e.length)}function Tu(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function Mu(e,t){Ru(e);const r=t.outputLen;if(e.length<r)throw Error("digestInto() expects output buffer of length at least "+r)}const Lu="object"==typeof e&&"crypto"in e?e.crypto:void 0,Fu=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),Nu=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Ou=(e,t)=>e<<32-t|e>>>t,_u=(e,t)=>e<<t|e>>>32-t>>>0,Hu=/* @__PURE__ */(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();
5
- /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function zu(e){for(let r=0;r<e.length;r++)e[r]=(t=e[r])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function Gu(e){if("string"!=typeof e)throw Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}function qu(e){return"string"==typeof e&&(e=Gu(e)),Ru(e),e}function ju(...e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];Ru(n),t+=n.length}const r=new Uint8Array(t);for(let t=0,n=0;t<e.length;t++){const i=e[t];r.set(i,n),n+=i.length}return r}class Vu{clone(){return this._cloneInto()}}function Yu(e){const t=t=>e().update(qu(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Zu(e=32){if(Lu&&"function"==typeof Lu.getRandomValues)return Lu.getRandomValues(new Uint8Array(e));if(Lu&&"function"==typeof Lu.randomBytes)return Lu.randomBytes(e);throw Error("crypto.getRandomValues must be defined")}const Wu=(e,t,r)=>e&t^~e&r,Ju=(e,t,r)=>e&t^e&r^t&r;class Xu extends Vu{constructor(e,t,r,n){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Nu(this.buffer)}update(e){Tu(this);const{view:t,buffer:r,blockLen:n}=this,i=(e=qu(e)).length;for(let s=0;s<i;){const a=Math.min(n-this.pos,i-s);if(a!==n)r.set(e.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===n&&(this.process(t,0),this.pos=0);else{const t=Nu(e);for(;n<=i-s;s+=n)this.process(t,s)}}return this.length+=e.length,this.roundClean(),this}digestInto(e){Tu(this),Mu(e,this),this.finished=!0;const{buffer:t,view:r,blockLen:n,isLE:i}=this;let{pos:s}=this;t[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>n-s&&(this.process(r,0),s=0);for(let e=s;e<n;e++)t[e]=0;!function(e,t,r,n){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,r,n);const i=BigInt(32),s=BigInt(4294967295),a=Number(r>>i&s),o=Number(r&s),c=n?4:0,u=n?0:4;e.setUint32(t+c,a,n),e.setUint32(t+u,o,n)}(r,n-8,BigInt(8*this.length),i),this.process(r,0);const a=Nu(e),o=this.outputLen;if(o%4)throw Error("_sha2: outputLen should be aligned to 32bit");const c=o/4,u=this.get();if(c>u.length)throw Error("_sha2: outputLen bigger than state");for(let e=0;e<c;e++)a.setUint32(4*e,u[e],i)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:r,length:n,finished:i,destroyed:s,pos:a}=this;return e.length=n,e.pos=a,e.finished=i,e.destroyed=s,n%t&&e.buffer.set(r),e}}const $u=/* @__PURE__ */new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),eh=/* @__PURE__ */new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),th=/* @__PURE__ */new Uint32Array(64);class rh extends Xu{constructor(){super(64,32,8,!1),this.A=0|eh[0],this.B=0|eh[1],this.C=0|eh[2],this.D=0|eh[3],this.E=0|eh[4],this.F=0|eh[5],this.G=0|eh[6],this.H=0|eh[7]}get(){const{A:e,B:t,C:r,D:n,E:i,F:s,G:a,H:o}=this;return[e,t,r,n,i,s,a,o]}set(e,t,r,n,i,s,a,o){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n,this.E=0|i,this.F=0|s,this.G=0|a,this.H=0|o}process(e,t){for(let r=0;r<16;r++,t+=4)th[r]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=th[e-15],r=th[e-2],n=Ou(t,7)^Ou(t,18)^t>>>3,i=Ou(r,17)^Ou(r,19)^r>>>10;th[e]=i+th[e-7]+n+th[e-16]|0}let{A:r,B:n,C:i,D:s,E:a,F:o,G:c,H:u}=this;for(let e=0;e<64;e++){const t=u+(Ou(a,6)^Ou(a,11)^Ou(a,25))+Wu(a,o,c)+$u[e]+th[e]|0,h=(Ou(r,2)^Ou(r,13)^Ou(r,22))+Ju(r,n,i)|0;u=c,c=o,o=a,a=s+t|0,s=i,i=n,n=r,r=t+h|0}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,o=o+this.F|0,c=c+this.G|0,u=u+this.H|0,this.set(r,n,i,s,a,o,c,u)}roundClean(){th.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}class nh extends rh{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}const ih=/* @__PURE__ */Yu((()=>new rh)),sh=/* @__PURE__ */Yu((()=>new nh));class ah extends Vu{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,function(e){if("function"!=typeof e||"function"!=typeof e.create)throw Error("Hash should be wrapped by utils.wrapConstructor");Qu(e.outputLen),Qu(e.blockLen)}(e);const r=qu(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;const n=this.blockLen,i=new Uint8Array(n);i.set(r.length>n?e.create().update(r).digest():r);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),i.fill(0)}update(e){return Tu(this),this.iHash.update(e),this}digestInto(e){Tu(this),Ru(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:r,finished:n,destroyed:i,blockLen:s,outputLen:a}=this;return e.finished=n,e.destroyed=i,e.blockLen=s,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const oh=(e,t,r)=>new ah(e,t).update(r).digest();oh.create=(e,t)=>new ah(e,t)
6
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */;const ch=/* @__PURE__ */BigInt(0),uh=/* @__PURE__ */BigInt(1),hh=/* @__PURE__ */BigInt(2);function lh(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function yh(e){if(!lh(e))throw Error("Uint8Array expected")}function fh(e,t){if("boolean"!=typeof t)throw Error(e+" boolean expected, got "+t)}const gh=/* @__PURE__ */Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function ph(e){yh(e);let t="";for(let r=0;r<e.length;r++)t+=gh[e[r]];return t}function dh(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function Ah(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);return""===e?ch:BigInt("0x"+e)}const wh={_0:48,_9:57,A:65,F:70,a:97,f:102};function mh(e){return e>=wh._0&&e<=wh._9?e-wh._0:e>=wh.A&&e<=wh.F?e-(wh.A-10):e>=wh.a&&e<=wh.f?e-(wh.a-10):void 0}function bh(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);const t=e.length,r=t/2;if(t%2)throw Error("hex string expected, got unpadded hex of length "+t);const n=new Uint8Array(r);for(let t=0,i=0;t<r;t++,i+=2){const r=mh(e.charCodeAt(i)),s=mh(e.charCodeAt(i+1));if(void 0===r||void 0===s){const t=e[i]+e[i+1];throw Error('hex string expected, got non-hex character "'+t+'" at index '+i)}n[t]=16*r+s}return n}function kh(e){return Ah(ph(e))}function Eh(e){return yh(e),Ah(ph(Uint8Array.from(e).reverse()))}function vh(e,t){return bh(e.toString(16).padStart(2*t,"0"))}function Bh(e,t){return vh(e,t).reverse()}function Sh(e,t,r){let n;if("string"==typeof t)try{n=bh(t)}catch(t){throw Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!lh(t))throw Error(e+" must be hex string or Uint8Array");n=Uint8Array.from(t)}const i=n.length;if("number"==typeof r&&i!==r)throw Error(e+" of length "+r+" expected, got "+i);return n}function Ih(...e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];yh(n),t+=n.length}const r=new Uint8Array(t);for(let t=0,n=0;t<e.length;t++){const i=e[t];r.set(i,n),n+=i.length}return r}const Kh=e=>"bigint"==typeof e&&ch<=e;function Ch(e,t,r){return Kh(e)&&Kh(t)&&Kh(r)&&t<=e&&e<r}function Uh(e,t,r,n){if(!Ch(t,r,n))throw Error("expected valid "+e+": "+r+" <= n < "+n+", got "+t)}function Ph(e){let t;for(t=0;e>ch;e>>=uh,t+=1);return t}const Dh=e=>(hh<<BigInt(e-1))-uh,xh=e=>new Uint8Array(e),Qh=e=>Uint8Array.from(e);function Rh(e,t,r){if("number"!=typeof e||e<2)throw Error("hashLen must be a number");if("number"!=typeof t||t<2)throw Error("qByteLen must be a number");if("function"!=typeof r)throw Error("hmacFn must be a function");let n=xh(e),i=xh(e),s=0;const a=()=>{n.fill(1),i.fill(0),s=0},o=(...e)=>r(i,n,...e),c=(e=xh())=>{i=o(Qh([0]),e),n=o(),0!==e.length&&(i=o(Qh([1]),e),n=o())},u=()=>{if(s++>=1e3)throw Error("drbg: tried 1000 values");let e=0;const r=[];for(;e<t;){n=o();const t=n.slice();r.push(t),e+=n.length}return Ih(...r)};return(e,t)=>{let r;for(a(),c(e);!(r=t(u()));)c();return a(),r}}const Th={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||lh(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function Mh(e,t,r={}){const n=(t,r,n)=>{const i=Th[r];if("function"!=typeof i)throw Error("invalid validator function");const s=e[t];if(!(n&&void 0===s||i(s,e)))throw Error("param "+t+" is invalid. Expected "+r+", got "+s)};for(const[e,r]of Object.entries(t))n(e,r,!1);for(const[e,t]of Object.entries(r))n(e,t,!0);return e}function Lh(e){const t=new WeakMap;return(r,...n)=>{const i=t.get(r);if(void 0!==i)return i;const s=e(r,...n);return t.set(r,s),s}}var Fh=/*#__PURE__*/Object.freeze({__proto__:null,aInRange:Uh,abool:fh,abytes:yh,bitGet:function(e,t){return e>>BigInt(t)&uh},bitLen:Ph,bitMask:Dh,bitSet:function(e,t,r){return e|(r?uh:ch)<<BigInt(t)},bytesToHex:ph,bytesToNumberBE:kh,bytesToNumberLE:Eh,concatBytes:Ih,createHmacDrbg:Rh,ensureBytes:Sh,equalBytes:function(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return 0===r},hexToBytes:bh,hexToNumber:Ah,inRange:Ch,isBytes:lh,memoized:Lh,notImplemented:()=>{throw Error("not implemented")},numberToBytesBE:vh,numberToBytesLE:Bh,numberToHexUnpadded:dh,numberToVarBytesBE:function(e){return bh(dh(e))},utf8ToBytes:function(e){if("string"!=typeof e)throw Error("string expected");return new Uint8Array((new TextEncoder).encode(e))},validateObject:Mh});
7
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Nh=BigInt(0),Oh=BigInt(1),_h=/* @__PURE__ */BigInt(2),Hh=/* @__PURE__ */BigInt(3),zh=/* @__PURE__ */BigInt(4),Gh=/* @__PURE__ */BigInt(5),qh=/* @__PURE__ */BigInt(8);function jh(e,t){const r=e%t;return r>=Nh?r:t+r}function Vh(e,t,r){if(t<Nh)throw Error("invalid exponent, negatives unsupported");if(r<=Nh)throw Error("invalid modulus");if(r===Oh)return Nh;let n=Oh;for(;t>Nh;)t&Oh&&(n=n*e%r),e=e*e%r,t>>=Oh;return n}function Yh(e,t,r){let n=e;for(;t-- >Nh;)n*=n,n%=r;return n}function Zh(e,t){if(e===Nh)throw Error("invert: expected non-zero number");if(t<=Nh)throw Error("invert: expected positive modulus, got "+t);let r=jh(e,t),n=t,i=Nh,s=Oh;for(;r!==Nh;){const e=n%r,t=i-s*(n/r);n=r,r=e,i=s,s=t}if(n!==Oh)throw Error("invert: does not exist");return jh(i,t)}function Wh(e){if(e%zh===Hh){const t=(e+Oh)/zh;return function(e,r){const n=e.pow(r,t);if(!e.eql(e.sqr(n),r))throw Error("Cannot find square root");return n}}if(e%qh===Gh){const t=(e-Gh)/qh;return function(e,r){const n=e.mul(r,_h),i=e.pow(n,t),s=e.mul(r,i),a=e.mul(e.mul(s,_h),i),o=e.mul(s,e.sub(a,e.ONE));if(!e.eql(e.sqr(o),r))throw Error("Cannot find square root");return o}}return function(e){const t=(e-Oh)/_h;let r,n,i;for(r=e-Oh,n=0;r%_h===Nh;r/=_h,n++);for(i=_h;i<e&&Vh(i,t,e)!==e-Oh;i++)if(i>1e3)throw Error("Cannot find square root: likely non-prime P");if(1===n){const t=(e+Oh)/zh;return function(e,r){const n=e.pow(r,t);if(!e.eql(e.sqr(n),r))throw Error("Cannot find square root");return n}}const s=(r+Oh)/_h;return function(e,a){if(e.pow(a,t)===e.neg(e.ONE))throw Error("Cannot find square root");let o=n,c=e.pow(e.mul(e.ONE,i),r),u=e.pow(a,s),h=e.pow(a,r);for(;!e.eql(h,e.ONE);){if(e.eql(h,e.ZERO))return e.ZERO;let t=1;for(let r=e.sqr(h);t<o&&!e.eql(r,e.ONE);t++)r=e.sqr(r);const r=e.pow(c,Oh<<BigInt(o-t-1));c=e.sqr(r),u=e.mul(u,r),h=e.mul(h,c),o=t}return u}}(e)}const Jh=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Xh(e,t){const r=void 0!==t?t:e.toString(2).length;return{nBitLength:r,nByteLength:Math.ceil(r/8)}}function $h(e,t,r=!1,n={}){if(e<=Nh)throw Error("invalid field: expected ORDER > 0, got "+e);const{nBitLength:i,nByteLength:s}=Xh(e,t);if(s>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let a;const o=Object.freeze({ORDER:e,BITS:i,BYTES:s,MASK:Dh(i),ZERO:Nh,ONE:Oh,create:t=>jh(t,e),isValid:t=>{if("bigint"!=typeof t)throw Error("invalid field element: expected bigint, got "+typeof t);return Nh<=t&&t<e},is0:e=>e===Nh,isOdd:e=>(e&Oh)===Oh,neg:t=>jh(-t,e),eql:(e,t)=>e===t,sqr:t=>jh(t*t,e),add:(t,r)=>jh(t+r,e),sub:(t,r)=>jh(t-r,e),mul:(t,r)=>jh(t*r,e),pow:(e,t)=>function(e,t,r){if(r<Nh)throw Error("invalid exponent, negatives unsupported");if(r===Nh)return e.ONE;if(r===Oh)return t;let n=e.ONE,i=t;for(;r>Nh;)r&Oh&&(n=e.mul(n,i)),i=e.sqr(i),r>>=Oh;return n}(o,e,t),div:(t,r)=>jh(t*Zh(r,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>Zh(t,e),sqrt:n.sqrt||(t=>(a||(a=Wh(e)),a(o,t))),invertBatch:e=>function(e,t){const r=Array(t.length),n=t.reduce(((t,n,i)=>e.is0(n)?t:(r[i]=t,e.mul(t,n))),e.ONE),i=e.inv(n);return t.reduceRight(((t,n,i)=>e.is0(n)?t:(r[i]=e.mul(t,r[i]),e.mul(t,n))),i),r}(o,e),cmov:(e,t,r)=>r?t:e,toBytes:e=>r?Bh(e,s):vh(e,s),fromBytes:e=>{if(e.length!==s)throw Error("Field.fromBytes: expected "+s+" bytes, got "+e.length);return r?Eh(e):kh(e)}});return Object.freeze(o)}function el(e){if("bigint"!=typeof e)throw Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function tl(e){const t=el(e);return t+Math.ceil(t/2)}
1
+ /*! OpenPGP.js v6.1.1-patch.4 - 2025-07-14 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
2
+ const e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e,t){return t.forEach((function(t){t&&"string"!=typeof t&&!Array.isArray(t)&&Object.keys(t).forEach((function(r){if("default"!==r&&!(r in e)){var n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:function(){return t[r]}})}}))})),Object.freeze(e)}const r=Symbol("doneWritingPromise"),n=Symbol("doneWritingResolve"),i=Symbol("doneWritingReject"),s=Symbol("readingIndex");class ArrayStream extends Array{constructor(){super(),Object.setPrototypeOf(this,ArrayStream.prototype),this[r]=new Promise(((e,t)=>{this[n]=e,this[i]=t})),this[r].catch((()=>{}))}}function a(e){return e&&e.getReader&&Array.isArray(e)}function o(e){if(!a(e)){const t=e.getWriter(),r=t.releaseLock;return t.releaseLock=()=>{t.closed.catch((function(){})),r.call(t)},t}this.stream=e}function c(t){if(a(t))return"array";if(e.ReadableStream&&e.ReadableStream.prototype.isPrototypeOf(t))return"web";if(t&&!(e.ReadableStream&&t instanceof e.ReadableStream)&&"function"==typeof t._read&&"object"==typeof t._readableState)throw Error("Native Node streams are no longer supported: please manually convert the stream to a WebStream, using e.g. `stream.Readable.toWeb`");return!(!t||!t.getReader)&&"web-like"}function u(e){return Uint8Array.prototype.isPrototypeOf(e)}function h(e){if(1===e.length)return e[0];let t=0;for(let r=0;r<e.length;r++){if(!u(e[r]))throw Error("concatUint8Array: Data must be in the form of a Uint8Array");t+=e[r].length}const r=new Uint8Array(t);let n=0;return e.forEach((function(e){r.set(e,n),n+=e.length})),r}ArrayStream.prototype.getReader=function(){return void 0===this[s]&&(this[s]=0),{read:async()=>(await this[r],this[s]===this.length?{value:void 0,done:!0}:{value:this[this[s]++],done:!1})}},ArrayStream.prototype.readToEnd=async function(e){await this[r];const t=e(this.slice(this[s]));return this.length=0,t},ArrayStream.prototype.clone=function(){const e=new ArrayStream;return e[r]=this[r].then((()=>{e.push(...this)})),e},o.prototype.write=async function(e){this.stream.push(e)},o.prototype.close=async function(){this.stream[n]()},o.prototype.abort=async function(e){return this.stream[i](e),e},o.prototype.releaseLock=function(){},"object"==typeof e.process&&e.process.versions;const l=new WeakSet,y=Symbol("externalBuffer");function f(e){if(this.stream=e,e[y]&&(this[y]=e[y].slice()),a(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{},void(this._cancel=()=>{})}if(c(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{t.closed.catch((function(){})),t.releaseLock()},void(this._cancel=t.cancel.bind(t))}let t=!1;this._read=async()=>t||l.has(e)?{value:void 0,done:!0}:(t=!0,{value:e,done:!1}),this._releaseLock=()=>{if(t)try{l.add(e)}catch(e){}}}function p(e){return c(e)?e:new ReadableStream({start(t){t.enqueue(e),t.close()}})}function g(e){if(c(e))return e;const t=new ArrayStream;return(async()=>{const r=D(t);await r.write(e),await r.close()})(),t}function d(e){return e.some((e=>c(e)&&!a(e)))?function(e){e=e.map(p);const t=m((async function(e){await Promise.all(n.map((t=>C(t,e))))}));let r=Promise.resolve();const n=e.map(((n,i)=>k(n,((n,s)=>(r=r.then((()=>A(n,t.writable,{preventClose:i!==e.length-1}))),r)))));return t.readable}(e):e.some((e=>a(e)))?function(e){const t=new ArrayStream;let r=Promise.resolve();return e.forEach(((n,i)=>(r=r.then((()=>A(n,t,{preventClose:i!==e.length-1}))),r))),t}(e):"string"==typeof e[0]?e.join(""):h(e)}async function A(e,t,{preventClose:r=!1,preventAbort:n=!1,preventCancel:i=!1}={}){if(c(e)&&!a(e)){e=p(e);try{if(e[y]){const r=D(t);for(let t=0;t<e[y].length;t++)await r.ready,await r.write(e[y][t]);r.releaseLock()}await e.pipeTo(t,{preventClose:r,preventAbort:n,preventCancel:i})}catch(e){}return}const s=P(e=g(e)),o=D(t);try{for(;;){await o.ready;const{done:e,value:t}=await s.read();if(e){r||await o.close();break}await o.write(t)}}catch(e){n||await o.abort(e)}finally{s.releaseLock(),o.releaseLock()}}function w(e,t){const r=new TransformStream(t);return A(e,r.writable),r.readable}function m(e){let t,r,n,i=!1,s=!1;return{readable:new ReadableStream({start(e){n=e},pull(){t?t():i=!0},async cancel(t){s=!0,e&&await e(t),r&&r(t)}},{highWaterMark:0}),writable:new WritableStream({write:async function(e){if(s)throw Error("Stream is cancelled");n.enqueue(e),i?i=!1:(await new Promise(((e,n)=>{t=e,r=n})),t=null,r=null)},close:n.close.bind(n),abort:n.error.bind(n)})}}function b(e,t=()=>{},r=()=>{}){if(a(e)){const n=new ArrayStream;return(async()=>{const i=D(n);try{const n=await K(e),s=t(n),a=r();let o;o=void 0!==s&&void 0!==a?d([s,a]):void 0!==s?s:a,await i.write(o),await i.close()}catch(e){await i.abort(e)}})(),n}if(c(e))return w(e,{async transform(e,r){try{const n=await t(e);void 0!==n&&r.enqueue(n)}catch(e){r.error(e)}},async flush(e){try{const t=await r();void 0!==t&&e.enqueue(t)}catch(t){e.error(t)}}});const n=t(e),i=r();return void 0!==n&&void 0!==i?d([n,i]):void 0!==n?n:i}function k(e,t){if(c(e)&&!a(e)){let r;const n=new TransformStream({start(e){r=e}}),i=A(e,n.writable),s=m((async function(e){r.error(e),await i,await new Promise(setTimeout)}));return t(n.readable,s.writable),s.readable}e=g(e);const r=new ArrayStream;return t(e,r),r}function E(e,t){let r;const n=k(e,((e,i)=>{const s=P(e);s.remainder=()=>(s.releaseLock(),A(e,i),n),r=t(s)}));return r}function v(e){if(a(e))return e.clone();if(c(e)){const t=function(e){if(a(e))throw Error("ArrayStream cannot be tee()d, use clone() instead");if(c(e)){const t=p(e).tee();return t[0][y]=t[1][y]=e[y],t}return[I(e),I(e)]}(e);return S(e,t[0]),t[1]}return I(e)}function B(e){return a(e)?v(e):c(e)?new ReadableStream({start(t){const r=k(e,(async(e,r)=>{const n=P(e),i=D(r);try{for(;;){await i.ready;const{done:e,value:r}=await n.read();if(e){try{t.close()}catch(e){}return void await i.close()}try{t.enqueue(r)}catch(e){}await i.write(r)}}catch(e){t.error(e),await i.abort(e)}}));S(e,r)}}):I(e)}function S(e,t){Object.entries(Object.getOwnPropertyDescriptors(e.constructor.prototype)).forEach((([r,n])=>{"constructor"!==r&&(n.value?n.value=n.value.bind(t):n.get=n.get.bind(t),Object.defineProperty(e,r,n))}))}function I(e,t=0,r=1/0){if(a(e))throw Error("Not implemented");if(c(e)){if(t>=0&&r>=0){let n=0;return w(e,{transform(e,i){n<r?(n+e.length>=t&&i.enqueue(I(e,Math.max(t-n,0),r-n)),n+=e.length):i.terminate()}})}if(t<0&&(r<0||r===1/0)){let n=[];return b(e,(e=>{e.length>=-t?n=[e]:n.push(e)}),(()=>I(d(n),t,r)))}if(0===t&&r<0){let n;return b(e,(e=>{const i=n?d([n,e]):e;if(i.length>=-r)return n=I(i,r),I(i,t,r);n=i}))}return console.warn(`stream.slice(input, ${t}, ${r}) not implemented efficiently.`),U((async()=>I(await K(e),t,r)))}return e[y]&&(e=d(e[y].concat([e]))),u(e)?e.subarray(t,r===1/0?e.length:r):e.slice(t,r)}async function K(e,t=d){return a(e)?e.readToEnd(t):c(e)?P(e).readToEnd(t):e}async function C(e,t){if(c(e)){if(e.cancel){const r=await e.cancel(t);return await new Promise(setTimeout),r}if(e.destroy)return e.destroy(t),await new Promise(setTimeout),t}}function U(e){const t=new ArrayStream;return(async()=>{const r=D(t);try{await r.write(await e()),await r.close()}catch(e){await r.abort(e)}})(),t}function P(e){return new f(e)}function D(e){return new o(e)}f.prototype.read=async function(){if(this[y]&&this[y].length){return{done:!1,value:this[y].shift()}}return this._read()},f.prototype.releaseLock=function(){this[y]&&(this.stream[y]=this[y]),this._releaseLock()},f.prototype.cancel=function(e){return this._cancel(e)},f.prototype.readLine=async function(){let e,t=[];for(;!e;){let{done:r,value:n}=await this.read();if(n+="",r)return t.length?d(t):void 0;const i=n.indexOf("\n")+1;i&&(e=d(t.concat(n.substr(0,i))),t=[]),i!==n.length&&t.push(n.substr(i))}return this.unshift(...t),e},f.prototype.readByte=async function(){const{done:e,value:t}=await this.read();if(e)return;const r=t[0];return this.unshift(I(t,1)),r},f.prototype.readBytes=async function(e){const t=[];let r=0;for(;;){const{done:n,value:i}=await this.read();if(n)return t.length?d(t):void 0;if(t.push(i),r+=i.length,r>=e){const r=d(t);return this.unshift(I(r,e)),I(r,0,e)}}},f.prototype.peekBytes=async function(e){const t=await this.readBytes(e);return this.unshift(t),t},f.prototype.unshift=function(...e){this[y]||(this[y]=[]),1===e.length&&u(e[0])&&this[y].length&&e[0].length&&this[y][0].byteOffset>=e[0].length?this[y][0]=new Uint8Array(this[y][0].buffer,this[y][0].byteOffset-e[0].length,this[y][0].byteLength+e[0].length):this[y].unshift(...e.filter((e=>e&&e.length)))},f.prototype.readToEnd=async function(e=d){const t=[];for(;;){const{done:e,value:r}=await this.read();if(e)break;t.push(r)}return e(t)};const x=Symbol("byValue");var Q={curve:{nistP256:"nistP256",p256:"nistP256",nistP384:"nistP384",p384:"nistP384",nistP521:"nistP521",p521:"nistP521",secp256k1:"secp256k1",ed25519Legacy:"ed25519Legacy",ed25519:"ed25519Legacy",curve25519Legacy:"curve25519Legacy",curve25519:"curve25519Legacy",brainpoolP256r1:"brainpoolP256r1",brainpoolP384r1:"brainpoolP384r1",brainpoolP512r1:"brainpoolP512r1"},kdfFlags:{replace_fingerprint:1,replace_kdf_params:2},s2k:{simple:0,salted:1,iterated:3,argon2:4,gnu:101},publicKey:{rsaEncryptSign:1,rsaEncrypt:2,rsaSign:3,elgamal:16,dsa:17,ecdh:18,ecdsa:19,eddsaLegacy:22,aedh:23,aedsa:24,x25519:25,x448:26,ed25519:27,ed448:28,pqc_mldsa_ed25519:30,pqc_mlkem_x25519:35,aead:100,hmac:101},symmetric:{idea:1,tripledes:2,cast5:3,blowfish:4,aes128:7,aes192:8,aes256:9,twofish:10},compression:{uncompressed:0,zip:1,zlib:2,bzip2:3},hash:{md5:1,sha1:2,ripemd:3,sha256:8,sha384:9,sha512:10,sha224:11,sha3_256:12,sha3_512:14},webHash:{"SHA-1":2,"SHA-256":8,"SHA-384":9,"SHA-512":10},aead:{eax:1,ocb:2,gcm:3,experimentalGCM:100},packet:{publicKeyEncryptedSessionKey:1,signature:2,symEncryptedSessionKey:3,onePassSignature:4,secretKey:5,publicKey:6,secretSubkey:7,compressedData:8,symmetricallyEncryptedData:9,marker:10,literalData:11,trust:12,userID:13,publicSubkey:14,userAttribute:17,symEncryptedIntegrityProtectedData:18,modificationDetectionCode:19,aeadEncryptedData:20,padding:21},literal:{binary:98,text:116,utf8:117,mime:109},signature:{binary:0,text:1,standalone:2,certGeneric:16,certPersona:17,certCasual:18,certPositive:19,certRevocation:48,subkeyBinding:24,keyBinding:25,key:31,keyRevocation:32,subkeyRevocation:40,timestamp:64,thirdParty:80},signatureSubpacket:{signatureCreationTime:2,signatureExpirationTime:3,exportableCertification:4,trustSignature:5,regularExpression:6,revocable:7,keyExpirationTime:9,placeholderBackwardsCompatibility:10,preferredSymmetricAlgorithms:11,revocationKey:12,issuerKeyID:16,notationData:20,preferredHashAlgorithms:21,preferredCompressionAlgorithms:22,keyServerPreferences:23,preferredKeyServer:24,primaryUserID:25,policyURI:26,keyFlags:27,signersUserID:28,reasonForRevocation:29,features:30,signatureTarget:31,embeddedSignature:32,issuerFingerprint:33,preferredAEADAlgorithms:34,preferredCipherSuites:39},keyFlags:{certifyKeys:1,signData:2,encryptCommunication:4,encryptStorage:8,splitPrivateKey:16,authentication:32,forwardedCommunication:64,sharedPrivateKey:128},armor:{multipartSection:0,multipartLast:1,signed:2,message:3,publicKey:4,privateKey:5,signature:6},reasonForRevocation:{noReason:0,keySuperseded:1,keyCompromised:2,keyRetired:3,userIDInvalid:32},features:{modificationDetection:1,aead:2,v5Keys:4,seipdv2:8},write:function(e,t){if("number"==typeof t&&(t=this.read(e,t)),void 0!==e[t])return e[t];throw Error("Invalid enum value.")},read:function(e,t){if(e[x]||(e[x]=[],Object.entries(e).forEach((([t,r])=>{e[x][r]=t}))),void 0!==e[x][t])return e[x][t];throw Error("Invalid enum value.")}},R={preferredHashAlgorithm:Q.hash.sha512,preferredSymmetricAlgorithm:Q.symmetric.aes256,preferredCompressionAlgorithm:Q.compression.uncompressed,aeadProtect:!1,ignoreSEIPDv2FeatureFlag:!1,parseAEADEncryptedV4KeysAsLegacy:!1,preferredAEADAlgorithm:Q.aead.gcm,aeadChunkSizeByte:12,v6Keys:!1,enableParsingV5Entities:!1,s2kType:Q.s2k.iterated,s2kIterationCountByte:224,s2kArgon2Params:{passes:3,parallelism:4,memoryExponent:16},allowUnauthenticatedMessages:!1,allowUnauthenticatedStream:!1,allowForwardedMessages:!1,minRSABits:2047,passwordCollisionCheck:!1,allowInsecureDecryptionWithSigningKeys:!1,allowInsecureVerificationWithReformattedKeys:!1,allowMissingKeyFlags:!1,constantTimePKCS1Decryption:!1,constantTimePKCS1DecryptionSupportedSymmetricAlgorithms:new Set([Q.symmetric.aes128,Q.symmetric.aes192,Q.symmetric.aes256]),ignoreUnsupportedPackets:!0,ignoreMalformedPackets:!1,enforceGrammar:!0,pluggableGrammarErrorReporter:null,additionalAllowedPackets:[],showVersion:!1,showComment:!1,versionString:"OpenPGP.js 6.1.1-patch.4",commentString:"https://openpgpjs.org",maxUserIDLength:5120,knownNotations:[],nonDeterministicSignaturesViaNotation:!0,useEllipticFallback:!0,rejectHashAlgorithms:new Set([Q.hash.md5,Q.hash.ripemd]),rejectMessageHashAlgorithms:new Set([Q.hash.md5,Q.hash.ripemd,Q.hash.sha1]),rejectPublicKeyAlgorithms:new Set([Q.publicKey.elgamal,Q.publicKey.dsa]),rejectCurves:new Set([Q.curve.secp256k1])};const T=(()=>{try{return"development"===process.env.NODE_ENV}catch(e){}return!1})(),M={isString:function(e){return"string"==typeof e||e instanceof String},nodeRequire:()=>{},isArray:function(e){return e instanceof Array},isUint8Array:u,isStream:c,getNobleCurve:async(e,t)=>{if(!R.useEllipticFallback)throw Error("This curve is only supported in the full build of OpenPGP.js");const{nobleCurves:r}=await Promise.resolve().then((function(){return ef}));switch(e){case Q.publicKey.ecdh:case Q.publicKey.ecdsa:{const e=r.get(t);if(!e)throw Error("Unsupported curve");return e}case Q.publicKey.x448:return r.get("x448");case Q.publicKey.ed448:return r.get("ed448");default:throw Error("Unsupported curve")}},readNumber:function(e){let t=0;for(let r=0;r<e.length;r++)t+=256**r*e[e.length-1-r];return t},writeNumber:function(e,t){const r=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e>>8*(t-n-1)&255;return r},readDate:function(e){const t=M.readNumber(e);return new Date(1e3*t)},writeDate:function(e){const t=Math.floor(e.getTime()/1e3);return M.writeNumber(t,4)},normalizeDate:function(e=Date.now()){return null===e||e===1/0?e:new Date(1e3*Math.floor(+e/1e3))},readMPI:function(e){const t=(e[0]<<8|e[1])+7>>>3;return M.readExactSubarray(e,2,2+t)},readExactSubarray:function(e,t,r){if(e.length<r-t)throw Error("Input array too short");return e.subarray(t,r)},leftPad(e,t){if(e.length>t)throw Error("Input array too long");const r=new Uint8Array(t),n=t-e.length;return r.set(e,n),r},uint8ArrayToMPI:function(e){const t=M.uint8ArrayBitLength(e);if(0===t)throw Error("Zero MPI");const r=e.subarray(e.length-Math.ceil(t/8)),n=new Uint8Array([(65280&t)>>8,255&t]);return M.concatUint8Array([n,r])},uint8ArrayBitLength:function(e){let t;for(t=0;t<e.length&&0===e[t];t++);if(t===e.length)return 0;const r=e.subarray(t);return 8*(r.length-1)+M.nbits(r[0])},hexToUint8Array:function(e){const t=new Uint8Array(e.length>>1);for(let r=0;r<e.length>>1;r++)t[r]=parseInt(e.substr(r<<1,2),16);return t},uint8ArrayToHex:function(e){const t="0123456789abcdef";let r="";return e.forEach((e=>{r+=t[e>>4]+t[15&e]})),r},stringToUint8Array:function(e){return b(e,(e=>{if(!M.isString(e))throw Error("stringToUint8Array: Data must be in the form of a string");const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}))},uint8ArrayToString:function(e){const t=[],r=16384,n=(e=new Uint8Array(e)).length;for(let i=0;i<n;i+=r)t.push(String.fromCharCode.apply(String,e.subarray(i,i+r<n?i+r:n)));return t.join("")},encodeUTF8:function(e){const t=new TextEncoder("utf-8");function r(e,r=!1){return t.encode(e,{stream:!r})}return b(e,r,(()=>r("",!0)))},decodeUTF8:function(e){const t=new TextDecoder("utf-8");function r(e,r=!1){return t.decode(e,{stream:!r})}return b(e,r,(()=>r(new Uint8Array,!0)))},concat:d,concatUint8Array:h,equalsUint8Array:function(e,t){if(!M.isUint8Array(e)||!M.isUint8Array(t))throw Error("Data must be in the form of a Uint8Array");if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0},findLastIndex:function(e,t){for(let r=e.length;r>=0;r--)if(t(e[r],r,e))return r;return-1},writeChecksum:function(e){let t=0;for(let r=0;r<e.length;r++)t=t+e[r]&65535;return M.writeNumber(t,2)},printDebug:function(e){T&&console.log("[OpenPGP.js debug]",e)},printDebugError:function(e){T&&console.error("[OpenPGP.js debug]",e)},nbits:function(e){let t=1,r=e>>>16;return 0!==r&&(e=r,t+=16),r=e>>8,0!==r&&(e=r,t+=8),r=e>>4,0!==r&&(e=r,t+=4),r=e>>2,0!==r&&(e=r,t+=2),r=e>>1,0!==r&&(e=r,t+=1),t},double:function(e){const t=new Uint8Array(e.length),r=e.length-1;for(let n=0;n<r;n++)t[n]=e[n]<<1^e[n+1]>>7;return t[r]=e[r]<<1^135*(e[0]>>7),t},shiftRight:function(e,t){if(t)for(let r=e.length-1;r>=0;r--)e[r]>>=t,r>0&&(e[r]|=e[r-1]<<8-t);return e},getWebCrypto:function(){const t=void 0!==e&&e.crypto&&e.crypto.subtle||this.getNodeCrypto()?.webcrypto.subtle;if(!t)throw Error("The WebCrypto API is not available");return t},getNodeCrypto:function(){return this.nodeRequire("crypto")},getNodeZlib:function(){return this.nodeRequire("zlib")},getNodeBuffer:function(){return(this.nodeRequire("buffer")||{}).Buffer},getHardwareConcurrency:function(){if("undefined"!=typeof navigator)return navigator.hardwareConcurrency||1;return this.nodeRequire("os").cpus().length},isEmailAddress:function(e){if(!M.isString(e))return!1;return/^[^\p{C}\p{Z}@<>\\]+@[^\p{C}\p{Z}@<>\\]+[^\p{C}\p{Z}\p{P}]$/u.test(e)},canonicalizeEOL:function(e){let t=!1;return b(e,(e=>{let r;t&&(e=M.concatUint8Array([new Uint8Array([13]),e])),13===e[e.length-1]?(t=!0,e=e.subarray(0,-1)):t=!1;const n=[];for(let t=0;r=e.indexOf(10,t)+1,r;t=r)13!==e[r-2]&&n.push(r);if(!n.length)return e;const i=new Uint8Array(e.length+n.length);let s=0;for(let t=0;t<n.length;t++){const r=e.subarray(n[t-1]||0,n[t]);i.set(r,s),s+=r.length,i[s-1]=13,i[s]=10,s++}return i.set(e.subarray(n[n.length-1]||0),s),i}),(()=>t?new Uint8Array([13]):void 0))},nativeEOL:function(e){let t=!1;return b(e,(e=>{let r;13===(e=t&&10!==e[0]?M.concatUint8Array([new Uint8Array([13]),e]):new Uint8Array(e))[e.length-1]?(t=!0,e=e.subarray(0,-1)):t=!1;let n=0;for(let t=0;t!==e.length;t=r){r=e.indexOf(13,t)+1,r||(r=e.length);const i=r-(10===e[r]?1:0);t&&e.copyWithin(n,t,i),n+=i-t}return e.subarray(0,n)}),(()=>t?new Uint8Array([13]):void 0))},removeTrailingSpaces:function(e){return e.split("\n").map((e=>{let t=e.length-1;for(;t>=0&&(" "===e[t]||"\t"===e[t]||"\r"===e[t]);t--);return e.substr(0,t+1)})).join("\n")},wrapError:function(e,t){if(!t)return Error(e);try{t.message=e+": "+t.message}catch(e){}return t},constructAllowedPackets:function(e){const t={};return e.forEach((e=>{if(!e.tag)throw Error("Invalid input: expected a packet class");t[e.tag]=e})),t},anyPromise:function(e){return new Promise((async(t,r)=>{let n;await Promise.all(e.map((async e=>{try{t(await e)}catch(e){n=e}}))),r(n)}))},selectUint8Array:function(e,t,r){const n=Math.max(t.length,r.length),i=new Uint8Array(n);let s=0;for(let n=0;n<i.length;n++)i[n]=t[n]&256-e|r[n]&255+e,s+=e&n<t.length|1-e&n<r.length;return i.subarray(0,s)},selectUint8:function(e,t,r){return t&256-e|r&255+e},isAES:function(e){return e===Q.symmetric.aes128||e===Q.symmetric.aes192||e===Q.symmetric.aes256}},L=M.getNodeBuffer();let N,F;function O(e){let t=new Uint8Array;return b(e,(e=>{t=M.concatUint8Array([t,e]);const r=[],n=Math.floor(t.length/45),i=45*n,s=N(t.subarray(0,i));for(let e=0;e<n;e++)r.push(s.substr(60*e,60)),r.push("\n");return t=t.subarray(i),r.join("")}),(()=>t.length?N(t)+"\n":""))}function H(e){let t="";return b(e,(e=>{t+=e;let r=0;const n=[" ","\t","\r","\n"];for(let e=0;e<n.length;e++){const i=n[e];for(let e=t.indexOf(i);-1!==e;e=t.indexOf(i,e+1))r++}let i=t.length;for(;i>0&&(i-r)%4!=0;i--)n.includes(t[i])&&r--;const s=F(t.substr(0,i));return t=t.substr(i),s}),(()=>F(t)))}function _(e){return H(e.replace(/-/g,"+").replace(/_/g,"/"))}function z(e,t){let r=O(e).replace(/[\r\n]/g,"");return r=r.replace(/[+]/g,"-").replace(/[/]/g,"_").replace(/[=]/g,""),r}function G(e){const t=e.match(/^-----BEGIN PGP (MESSAGE, PART \d+\/\d+|MESSAGE, PART \d+|SIGNED MESSAGE|MESSAGE|PUBLIC KEY BLOCK|PRIVATE KEY BLOCK|SIGNATURE)-----$/m);if(!t)throw Error("Unknown ASCII armor type");return/MESSAGE, PART \d+\/\d+/.test(t[1])?Q.armor.multipartSection:/MESSAGE, PART \d+/.test(t[1])?Q.armor.multipartLast:/SIGNED MESSAGE/.test(t[1])?Q.armor.signed:/MESSAGE/.test(t[1])?Q.armor.message:/PUBLIC KEY BLOCK/.test(t[1])?Q.armor.publicKey:/PRIVATE KEY BLOCK/.test(t[1])?Q.armor.privateKey:/SIGNATURE/.test(t[1])?Q.armor.signature:void 0}function q(e,t){let r="";return t.showVersion&&(r+="Version: "+t.versionString+"\n"),t.showComment&&(r+="Comment: "+t.commentString+"\n"),e&&(r+="Comment: "+e+"\n"),r+="\n",r}function j(e){const t=function(e){let t=13501623;return b(e,(e=>{const r=Y?Math.floor(e.length/4):0,n=new Uint32Array(e.buffer,e.byteOffset,r);for(let e=0;e<r;e++)t^=n[e],t=V[0][t>>24&255]^V[1][t>>16&255]^V[2][t>>8&255]^V[3][255&t];for(let n=4*r;n<e.length;n++)t=t>>8^V[0][255&t^e[n]]}),(()=>new Uint8Array([t,t>>8,t>>16])))}(e);return O(t)}L?(N=e=>L.from(e).toString("base64"),F=e=>{const t=L.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}):(N=e=>btoa(M.uint8ArrayToString(e)),F=e=>M.stringToUint8Array(atob(e)));const V=[Array(255),Array(255),Array(255),Array(255)];for(let e=0;e<=255;e++){let t=e<<16;for(let e=0;e<8;e++)t=t<<1^(8388608&t?8801531:0);V[0][e]=(16711680&t)>>16|65280&t|(255&t)<<16}for(let e=0;e<=255;e++)V[1][e]=V[0][e]>>8^V[0][255&V[0][e]];for(let e=0;e<=255;e++)V[2][e]=V[1][e]>>8^V[0][255&V[1][e]];for(let e=0;e<=255;e++)V[3][e]=V[2][e]>>8^V[0][255&V[2][e]];const Y=function(){const e=new ArrayBuffer(2);return new DataView(e).setInt16(0,255,!0),255===new Int16Array(e)[0]}();function Z(e){for(let t=0;t<e.length;t++)/^([^\s:]|[^\s:][^:]*[^\s:]): .+$/.test(e[t])||M.printDebugError(Error("Improperly formatted armor header: "+e[t])),/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(e[t])||M.printDebugError(Error("Unknown header: "+e[t]))}function W(e){let t=e;const r=e.lastIndexOf("=");return r>=0&&r!==e.length-1&&(t=e.slice(0,r)),t}function J(e){return new Promise((async(t,r)=>{try{const n=/^-----[^-]+-----$/m,i=/^[ \f\r\t\u00a0\u2000-\u200a\u202f\u205f\u3000]*$/;let s;const a=[];let o,c,u=a,h=[];const l=H(k(e,(async(e,y)=>{const f=P(e);try{for(;;){let e=await f.readLine();if(void 0===e)throw Error("Misformed armored text");if(e=M.removeTrailingSpaces(e.replace(/[\r\n]/g,"")),s)if(o)c||s!==Q.armor.signed||(n.test(e)?(h=h.join("\r\n"),c=!0,Z(u),u=[],o=!1):h.push(e.replace(/^- /,"")));else if(n.test(e)&&r(Error("Mandatory blank line missing between armor headers and armor data")),i.test(e)){if(Z(u),o=!0,c||s!==Q.armor.signed){t({text:h,data:l,headers:a,type:s});break}}else u.push(e);else n.test(e)&&(s=G(e))}}catch(e){return void r(e)}const p=D(y);try{for(;;){await p.ready;const{done:e,value:t}=await f.read();if(e)throw Error("Misformed armored text");const r=t+"";if(-1!==r.indexOf("=")||-1!==r.indexOf("-")){let e=await f.readToEnd();e.length||(e=""),e=r+e,e=M.removeTrailingSpaces(e.replace(/\r/g,""));const t=e.split(n);if(1===t.length)throw Error("Misformed armored text");const i=W(t[0].slice(0,-1));await p.write(i);break}await p.write(r)}await p.ready,await p.close()}catch(e){await p.abort(e)}})))}catch(e){r(e)}})).then((async e=>(a(e.data)&&(e.data=await K(e.data)),e)))}function X(e,t,r,n,i,s=!1,a=R){let o,c;e===Q.armor.signed&&(o=t.text,c=t.hash,t=t.data);const u=s&&B(t),h=[];switch(e){case Q.armor.multipartSection:h.push("-----BEGIN PGP MESSAGE, PART "+r+"/"+n+"-----\n"),h.push(q(i,a)),h.push(O(t)),u&&h.push("=",j(u)),h.push("-----END PGP MESSAGE, PART "+r+"/"+n+"-----\n");break;case Q.armor.multipartLast:h.push("-----BEGIN PGP MESSAGE, PART "+r+"-----\n"),h.push(q(i,a)),h.push(O(t)),u&&h.push("=",j(u)),h.push("-----END PGP MESSAGE, PART "+r+"-----\n");break;case Q.armor.signed:h.push("-----BEGIN PGP SIGNED MESSAGE-----\n"),h.push(c?`Hash: ${c}\n\n`:"\n"),h.push(o.replace(/^-/gm,"- -")),h.push("\n-----BEGIN PGP SIGNATURE-----\n"),h.push(q(i,a)),h.push(O(t)),u&&h.push("=",j(u)),h.push("-----END PGP SIGNATURE-----\n");break;case Q.armor.message:h.push("-----BEGIN PGP MESSAGE-----\n"),h.push(q(i,a)),h.push(O(t)),u&&h.push("=",j(u)),h.push("-----END PGP MESSAGE-----\n");break;case Q.armor.publicKey:h.push("-----BEGIN PGP PUBLIC KEY BLOCK-----\n"),h.push(q(i,a)),h.push(O(t)),u&&h.push("=",j(u)),h.push("-----END PGP PUBLIC KEY BLOCK-----\n");break;case Q.armor.privateKey:h.push("-----BEGIN PGP PRIVATE KEY BLOCK-----\n"),h.push(q(i,a)),h.push(O(t)),u&&h.push("=",j(u)),h.push("-----END PGP PRIVATE KEY BLOCK-----\n");break;case Q.armor.signature:h.push("-----BEGIN PGP SIGNATURE-----\n"),h.push(q(i,a)),h.push(O(t)),u&&h.push("=",j(u)),h.push("-----END PGP SIGNATURE-----\n")}return M.concat(h)}const $=BigInt(0),ee=BigInt(1);function te(e){const t="0123456789ABCDEF";let r="";return e.forEach((e=>{r+=t[e>>4]+t[15&e]})),BigInt("0x0"+r)}function re(e,t){const r=e%t;return r<$?r+t:r}function ne(e,t,r){if(r===$)throw Error("Modulo cannot be zero");if(r===ee)return BigInt(0);if(t<$)throw Error("Unsopported negative exponent");let n=t,i=e;i%=r;let s=BigInt(1);for(;n>$;){const e=n&ee;n>>=ee;s=e?s*i%r:s,i=i*i%r}return s}function ie(e){return e>=$?e:-e}function se(e,t){const{gcd:r,x:n}=function(e,t){let r=BigInt(0),n=BigInt(1),i=BigInt(1),s=BigInt(0),a=ie(e),o=ie(t);const c=e<$,u=t<$;for(;o!==$;){const e=a/o;let t=r;r=i-e*r,i=t,t=n,n=s-e*n,s=t,t=o,o=a%o,a=t}return{x:c?-i:i,y:u?-s:s,gcd:a}}(e,t);if(r!==ee)throw Error("Inverse does not exist");return re(n+t,t)}function ae(e){const t=Number(e);if(t>Number.MAX_SAFE_INTEGER)throw Error("Number can only safely store up to 53 bits");return t}function oe(e,t){return(e>>BigInt(t)&ee)===$?0:1}function ce(e){const t=e<$?BigInt(-1):$;let r=1,n=e;for(;(n>>=ee)!==t;)r++;return r}function ue(e){const t=e<$?BigInt(-1):$,r=BigInt(8);let n=1,i=e;for(;(i>>=r)!==t;)n++;return n}function he(e,t="be",r){let n=e.toString(16);n.length%2==1&&(n="0"+n);const i=n.length/2,s=new Uint8Array(r||i),a=r?r-i:0;let o=0;for(;o<i;)s[o+a]=parseInt(n.slice(2*o,2*o+2),16),o++;return"be"!==t&&s.reverse(),s}const le=M.getNodeCrypto();function ye(e){const t="undefined"!=typeof crypto?crypto:le?.webcrypto;if(t?.getRandomValues){const r=new Uint8Array(e);return t.getRandomValues(r)}throw Error("No secure random number generator available.")}function fe(e,t){if(t<e)throw Error("Illegal parameter value: max <= min");const r=t-e;return re(te(ye(ue(r)+8)),r)+e}const pe=BigInt(1);function ge(e,t,r){const n=BigInt(30),i=pe<<BigInt(e-1),s=[1,6,5,4,3,2,1,4,3,2,1,2,1,4,3,2,1,2,1,4,3,2,1,6,5,4,3,2,1,2];let a=fe(i,i<<pe),o=ae(re(a,n));do{a+=BigInt(s[o]),o=(o+s[o])%s.length,ce(a)>e&&(a=re(a,i<<pe),a+=i,o=ae(re(a,n)))}while(!de(a,t,r));return a}function de(e,t,r){return(!t||function(e,t){let r=e,n=t;for(;n!==$;){const e=n;n=r%n,r=e}return r}(e-pe,t)===pe)&&(!!function(e){const t=BigInt(0);return Ae.every((r=>re(e,r)!==t))}(e)&&(!!function(e,t=BigInt(2)){return ne(t,e-pe,e)===pe}(e)&&!!function(e,t){const r=ce(e);t||(t=Math.max(1,r/48|0));const n=e-pe;let i=0;for(;!oe(n,i);)i++;const s=e>>BigInt(i);for(;t>0;t--){let t,r=ne(fe(BigInt(2),n),s,e);if(r!==pe&&r!==n){for(t=1;t<i;t++){if(r=re(r*r,e),r===pe)return!1;if(r===n)break}if(t===i)return!1}}return!0}(e,r)))}const Ae=[7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999].map((e=>BigInt(e)));const we=M.getWebCrypto(),me=M.getNodeCrypto(),be=me&&me.getHashes();function ke(e){if(me&&be.includes(e))return async function(t){const r=me.createHash(e);return b(t,(e=>{r.update(e)}),(()=>new Uint8Array(r.digest())))}}function Ee(e,t){const r=async()=>{const{nobleHashes:t}=await Promise.resolve().then((function(){return If})),r=t.get(e);if(!r)throw Error("Unsupported hash");return r};return async function(e){if(a(e)&&(e=await K(e)),M.isStream(e)){const t=(await r()).create();return b(e,(e=>{t.update(e)}),(()=>t.digest()))}if(we&&t)return new Uint8Array(await we.digest(t,e));return(await r())(e)}}const ve=ke("md5")||Ee("md5"),Be=ke("sha1")||Ee("sha1","SHA-1"),Se=ke("sha224")||Ee("sha224"),Ie=ke("sha256")||Ee("sha256","SHA-256"),Ke=ke("sha384")||Ee("sha384","SHA-384"),Ce=ke("sha512")||Ee("sha512","SHA-512"),Ue=ke("ripemd160")||Ee("ripemd160"),Pe=ke("sha3-256")||Ee("sha3_256"),De=ke("sha3-512")||Ee("sha3_512");function xe(e,t){switch(e){case Q.hash.md5:return ve(t);case Q.hash.sha1:return Be(t);case Q.hash.ripemd:return Ue(t);case Q.hash.sha256:return Ie(t);case Q.hash.sha384:return Ke(t);case Q.hash.sha512:return Ce(t);case Q.hash.sha224:return Se(t);case Q.hash.sha3_256:return Pe(t);case Q.hash.sha3_512:return De(t);default:throw Error("Unsupported hash function")}}function Qe(e){switch(e){case Q.hash.md5:return 16;case Q.hash.sha1:case Q.hash.ripemd:return 20;case Q.hash.sha256:return 32;case Q.hash.sha384:return 48;case Q.hash.sha512:return 64;case Q.hash.sha224:return 28;case Q.hash.sha3_256:return 32;case Q.hash.sha3_512:return 64;default:throw Error("Invalid hash algorithm.")}}const Re=[];function Te(e,t){const r=e.length;if(r>t-11)throw Error("Message too long");const n=function(e){const t=new Uint8Array(e);let r=0;for(;r<e;){const n=ye(e-r);for(let e=0;e<n.length;e++)0!==n[e]&&(t[r++]=n[e])}return t}(t-r-3),i=new Uint8Array(t);return i[1]=2,i.set(n,2),i.set(e,t-r),i}function Me(e,t){let r=2,n=1;for(let t=r;t<e.length;t++)n&=0!==e[t],r+=n;const i=r-2,s=e.subarray(r+1),a=0===e[0]&2===e[1]&i>=8&!n;if(t)return M.selectUint8Array(a,s,t);if(a)return s;throw Error("Decryption error")}function Le(e,t,r){let n;if(t.length!==Qe(e))throw Error("Invalid hash length");const i=new Uint8Array(Re[e].length);for(n=0;n<Re[e].length;n++)i[n]=Re[e][n];const s=i.length+t.length;if(r<s+11)throw Error("Intended encoded message length too short");const a=new Uint8Array(r-s-3).fill(255),o=new Uint8Array(r);return o[1]=1,o.set(a,2),o.set(i,r-s),o.set(t,r-t.length),o}Re[1]=[48,32,48,12,6,8,42,134,72,134,247,13,2,5,5,0,4,16],Re[2]=[48,33,48,9,6,5,43,14,3,2,26,5,0,4,20],Re[3]=[48,33,48,9,6,5,43,36,3,2,1,5,0,4,20],Re[8]=[48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32],Re[9]=[48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48],Re[10]=[48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64],Re[11]=[48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28];const Ne=M.getWebCrypto(),Fe=M.getNodeCrypto(),Oe=BigInt(1);async function He(e,t,r,n,i,s,a,o,c){if(Qe(e)>=r.length)throw Error("Digest size cannot exceed key modulus size");if(t&&!M.isStream(t))if(M.getWebCrypto())try{return await async function(e,t,r,n,i,s,a,o){const c=await qe(r,n,i,s,a,o),u={name:"RSASSA-PKCS1-v1_5",hash:{name:e}},h=await Ne.importKey("jwk",c,u,!1,["sign"]);return new Uint8Array(await Ne.sign("RSASSA-PKCS1-v1_5",h,t))}(Q.read(Q.webHash,e),t,r,n,i,s,a,o)}catch(e){M.printDebugError(e)}else if(M.getNodeCrypto())return async function(e,t,r,n,i,s,a,o){const c=Fe.createSign(Q.read(Q.hash,e));c.write(t),c.end();const u=await qe(r,n,i,s,a,o);return new Uint8Array(c.sign({key:u,format:"jwk",type:"pkcs1"}))}(e,t,r,n,i,s,a,o);return async function(e,t,r,n){t=te(t);const i=te(Le(e,n,ue(t)));return r=te(r),he(ne(i,r,t),"be",ue(t))}(e,r,i,c)}async function _e(e,t,r,n,i,s){if(t&&!M.isStream(t))if(M.getWebCrypto())try{return await async function(e,t,r,n,i){const s=je(n,i),a=await Ne.importKey("jwk",s,{name:"RSASSA-PKCS1-v1_5",hash:{name:e}},!1,["verify"]);return Ne.verify("RSASSA-PKCS1-v1_5",a,r,t)}(Q.read(Q.webHash,e),t,r,n,i)}catch(e){M.printDebugError(e)}else if(M.getNodeCrypto())return async function(e,t,r,n,i){const s=je(n,i),a={key:s,format:"jwk",type:"pkcs1"},o=Fe.createVerify(Q.read(Q.hash,e));o.write(t),o.end();try{return o.verify(a,r)}catch(e){return!1}}(e,t,r,n,i);return async function(e,t,r,n,i){if(r=te(r),t=te(t),n=te(n),t>=r)throw Error("Signature size cannot exceed modulus size");const s=he(ne(t,n,r),"be",ue(r)),a=Le(e,i,ue(r));return M.equalsUint8Array(s,a)}(e,r,n,i,s)}async function ze(e,t,r){return M.getNodeCrypto()?async function(e,t,r){const n=je(t,r),i={key:n,format:"jwk",type:"pkcs1",padding:Fe.constants.RSA_PKCS1_PADDING};return new Uint8Array(Fe.publicEncrypt(i,e))}(e,t,r):async function(e,t,r){if(t=te(t),e=te(Te(e,ue(t))),r=te(r),e>=t)throw Error("Message size cannot exceed modulus size");return he(ne(e,r,t),"be",ue(t))}(e,t,r)}async function Ge(e,t,r,n,i,s,a,o){if(M.getNodeCrypto()&&!o)try{return await async function(e,t,r,n,i,s,a){const o=await qe(t,r,n,i,s,a),c={key:o,format:"jwk",type:"pkcs1",padding:Fe.constants.RSA_PKCS1_PADDING};try{return new Uint8Array(Fe.privateDecrypt(c,e))}catch(e){throw Error("Decryption error")}}(e,t,r,n,i,s,a)}catch(e){M.printDebugError(e)}return async function(e,t,r,n,i,s,a,o){if(e=te(e),t=te(t),r=te(r),n=te(n),i=te(i),s=te(s),a=te(a),e>=t)throw Error("Data too large.");const c=re(n,s-Oe),u=re(n,i-Oe),h=fe(BigInt(2),t),l=ne(se(h,t),r,t);e=re(e*l,t);const y=ne(e,u,i),f=ne(e,c,s),p=re(a*(f-y),s);let g=p*i+y;return g=re(g*h,t),Me(he(g,"be",ue(t)),o)}(e,t,r,n,i,s,a,o)}async function qe(e,t,r,n,i,s){const a=te(n),o=te(i),c=te(r);let u=re(c,o-Oe),h=re(c,a-Oe);return h=he(h),u=he(u),{kty:"RSA",n:z(e),e:z(t),d:z(r),p:z(i),q:z(n),dp:z(u),dq:z(h),qi:z(s),ext:!0}}function je(e,t){return{kty:"RSA",n:z(e),e:z(t),ext:!0}}function Ve(e,t){return{n:_(e.n),e:he(t),d:_(e.d),p:_(e.q),q:_(e.p),u:_(e.qi)}}const Ye=BigInt(1);const Ze="object"==typeof e&&"crypto"in e?e.crypto:void 0,We={};var Je=function(e){var t,r=new Float64Array(16);if(e)for(t=0;t<e.length;t++)r[t]=e[t];return r},Xe=function(){throw Error("no PRNG")},$e=new Uint8Array(32);$e[0]=9;var et=Je(),tt=Je([1]),rt=Je([56129,1]),nt=Je([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),it=Je([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),st=Je([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),at=Je([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),ot=Je([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function ct(e,t,r,n){e[t]=r>>24&255,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r,e[t+4]=n>>24&255,e[t+5]=n>>16&255,e[t+6]=n>>8&255,e[t+7]=255&n}function ut(e,t,r,n){return function(e,t,r,n,i){var s,a=0;for(s=0;s<i;s++)a|=e[t+s]^r[n+s];return(1&a-1>>>8)-1}(e,t,r,n,32)}function ht(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function lt(e){var t,r,n=1;for(t=0;t<16;t++)r=e[t]+n+65535,n=Math.floor(r/65536),e[t]=r-65536*n;e[0]+=n-1+37*(n-1)}function yt(e,t,r){for(var n,i=~(r-1),s=0;s<16;s++)n=i&(e[s]^t[s]),e[s]^=n,t[s]^=n}function ft(e,t){var r,n,i,s=Je(),a=Je();for(r=0;r<16;r++)a[r]=t[r];for(lt(a),lt(a),lt(a),n=0;n<2;n++){for(s[0]=a[0]-65517,r=1;r<15;r++)s[r]=a[r]-65535-(s[r-1]>>16&1),s[r-1]&=65535;s[15]=a[15]-32767-(s[14]>>16&1),i=s[15]>>16&1,s[14]&=65535,yt(a,s,1-i)}for(r=0;r<16;r++)e[2*r]=255&a[r],e[2*r+1]=a[r]>>8}function pt(e,t){var r=new Uint8Array(32),n=new Uint8Array(32);return ft(r,e),ft(n,t),ut(r,0,n,0)}function gt(e){var t=new Uint8Array(32);return ft(t,e),1&t[0]}function dt(e,t){var r;for(r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}function At(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]+r[n]}function wt(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]-r[n]}function mt(e,t,r){var n,i,s=0,a=0,o=0,c=0,u=0,h=0,l=0,y=0,f=0,p=0,g=0,d=0,A=0,w=0,m=0,b=0,k=0,E=0,v=0,B=0,S=0,I=0,K=0,C=0,U=0,P=0,D=0,x=0,Q=0,R=0,T=0,M=r[0],L=r[1],N=r[2],F=r[3],O=r[4],H=r[5],_=r[6],z=r[7],G=r[8],q=r[9],j=r[10],V=r[11],Y=r[12],Z=r[13],W=r[14],J=r[15];s+=(n=t[0])*M,a+=n*L,o+=n*N,c+=n*F,u+=n*O,h+=n*H,l+=n*_,y+=n*z,f+=n*G,p+=n*q,g+=n*j,d+=n*V,A+=n*Y,w+=n*Z,m+=n*W,b+=n*J,a+=(n=t[1])*M,o+=n*L,c+=n*N,u+=n*F,h+=n*O,l+=n*H,y+=n*_,f+=n*z,p+=n*G,g+=n*q,d+=n*j,A+=n*V,w+=n*Y,m+=n*Z,b+=n*W,k+=n*J,o+=(n=t[2])*M,c+=n*L,u+=n*N,h+=n*F,l+=n*O,y+=n*H,f+=n*_,p+=n*z,g+=n*G,d+=n*q,A+=n*j,w+=n*V,m+=n*Y,b+=n*Z,k+=n*W,E+=n*J,c+=(n=t[3])*M,u+=n*L,h+=n*N,l+=n*F,y+=n*O,f+=n*H,p+=n*_,g+=n*z,d+=n*G,A+=n*q,w+=n*j,m+=n*V,b+=n*Y,k+=n*Z,E+=n*W,v+=n*J,u+=(n=t[4])*M,h+=n*L,l+=n*N,y+=n*F,f+=n*O,p+=n*H,g+=n*_,d+=n*z,A+=n*G,w+=n*q,m+=n*j,b+=n*V,k+=n*Y,E+=n*Z,v+=n*W,B+=n*J,h+=(n=t[5])*M,l+=n*L,y+=n*N,f+=n*F,p+=n*O,g+=n*H,d+=n*_,A+=n*z,w+=n*G,m+=n*q,b+=n*j,k+=n*V,E+=n*Y,v+=n*Z,B+=n*W,S+=n*J,l+=(n=t[6])*M,y+=n*L,f+=n*N,p+=n*F,g+=n*O,d+=n*H,A+=n*_,w+=n*z,m+=n*G,b+=n*q,k+=n*j,E+=n*V,v+=n*Y,B+=n*Z,S+=n*W,I+=n*J,y+=(n=t[7])*M,f+=n*L,p+=n*N,g+=n*F,d+=n*O,A+=n*H,w+=n*_,m+=n*z,b+=n*G,k+=n*q,E+=n*j,v+=n*V,B+=n*Y,S+=n*Z,I+=n*W,K+=n*J,f+=(n=t[8])*M,p+=n*L,g+=n*N,d+=n*F,A+=n*O,w+=n*H,m+=n*_,b+=n*z,k+=n*G,E+=n*q,v+=n*j,B+=n*V,S+=n*Y,I+=n*Z,K+=n*W,C+=n*J,p+=(n=t[9])*M,g+=n*L,d+=n*N,A+=n*F,w+=n*O,m+=n*H,b+=n*_,k+=n*z,E+=n*G,v+=n*q,B+=n*j,S+=n*V,I+=n*Y,K+=n*Z,C+=n*W,U+=n*J,g+=(n=t[10])*M,d+=n*L,A+=n*N,w+=n*F,m+=n*O,b+=n*H,k+=n*_,E+=n*z,v+=n*G,B+=n*q,S+=n*j,I+=n*V,K+=n*Y,C+=n*Z,U+=n*W,P+=n*J,d+=(n=t[11])*M,A+=n*L,w+=n*N,m+=n*F,b+=n*O,k+=n*H,E+=n*_,v+=n*z,B+=n*G,S+=n*q,I+=n*j,K+=n*V,C+=n*Y,U+=n*Z,P+=n*W,D+=n*J,A+=(n=t[12])*M,w+=n*L,m+=n*N,b+=n*F,k+=n*O,E+=n*H,v+=n*_,B+=n*z,S+=n*G,I+=n*q,K+=n*j,C+=n*V,U+=n*Y,P+=n*Z,D+=n*W,x+=n*J,w+=(n=t[13])*M,m+=n*L,b+=n*N,k+=n*F,E+=n*O,v+=n*H,B+=n*_,S+=n*z,I+=n*G,K+=n*q,C+=n*j,U+=n*V,P+=n*Y,D+=n*Z,x+=n*W,Q+=n*J,m+=(n=t[14])*M,b+=n*L,k+=n*N,E+=n*F,v+=n*O,B+=n*H,S+=n*_,I+=n*z,K+=n*G,C+=n*q,U+=n*j,P+=n*V,D+=n*Y,x+=n*Z,Q+=n*W,R+=n*J,b+=(n=t[15])*M,a+=38*(E+=n*N),o+=38*(v+=n*F),c+=38*(B+=n*O),u+=38*(S+=n*H),h+=38*(I+=n*_),l+=38*(K+=n*z),y+=38*(C+=n*G),f+=38*(U+=n*q),p+=38*(P+=n*j),g+=38*(D+=n*V),d+=38*(x+=n*Y),A+=38*(Q+=n*Z),w+=38*(R+=n*W),m+=38*(T+=n*J),s=(n=(s+=38*(k+=n*L))+(i=1)+65535)-65536*(i=Math.floor(n/65536)),a=(n=a+i+65535)-65536*(i=Math.floor(n/65536)),o=(n=o+i+65535)-65536*(i=Math.floor(n/65536)),c=(n=c+i+65535)-65536*(i=Math.floor(n/65536)),u=(n=u+i+65535)-65536*(i=Math.floor(n/65536)),h=(n=h+i+65535)-65536*(i=Math.floor(n/65536)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),f=(n=f+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),A=(n=A+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+i+65535)-65536*(i=Math.floor(n/65536)),b=(n=b+i+65535)-65536*(i=Math.floor(n/65536)),s=(n=(s+=i-1+37*(i-1))+(i=1)+65535)-65536*(i=Math.floor(n/65536)),a=(n=a+i+65535)-65536*(i=Math.floor(n/65536)),o=(n=o+i+65535)-65536*(i=Math.floor(n/65536)),c=(n=c+i+65535)-65536*(i=Math.floor(n/65536)),u=(n=u+i+65535)-65536*(i=Math.floor(n/65536)),h=(n=h+i+65535)-65536*(i=Math.floor(n/65536)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),f=(n=f+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),A=(n=A+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+i+65535)-65536*(i=Math.floor(n/65536)),b=(n=b+i+65535)-65536*(i=Math.floor(n/65536)),s+=i-1+37*(i-1),e[0]=s,e[1]=a,e[2]=o,e[3]=c,e[4]=u,e[5]=h,e[6]=l,e[7]=y,e[8]=f,e[9]=p,e[10]=g,e[11]=d,e[12]=A,e[13]=w,e[14]=m,e[15]=b}function bt(e,t){mt(e,t,t)}function kt(e,t){var r,n=Je();for(r=0;r<16;r++)n[r]=t[r];for(r=253;r>=0;r--)bt(n,n),2!==r&&4!==r&&mt(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}function Et(e,t,r){var n,i,s=new Uint8Array(32),a=new Float64Array(80),o=Je(),c=Je(),u=Je(),h=Je(),l=Je(),y=Je();for(i=0;i<31;i++)s[i]=t[i];for(s[31]=127&t[31]|64,s[0]&=248,dt(a,r),i=0;i<16;i++)c[i]=a[i],h[i]=o[i]=u[i]=0;for(o[0]=h[0]=1,i=254;i>=0;--i)yt(o,c,n=s[i>>>3]>>>(7&i)&1),yt(u,h,n),At(l,o,u),wt(o,o,u),At(u,c,h),wt(c,c,h),bt(h,l),bt(y,o),mt(o,u,o),mt(u,c,l),At(l,o,u),wt(o,o,u),bt(c,o),wt(u,h,y),mt(o,u,rt),At(o,o,h),mt(u,u,o),mt(o,h,y),mt(h,c,a),bt(c,l),yt(o,c,n),yt(u,h,n);for(i=0;i<16;i++)a[i+16]=o[i],a[i+32]=u[i],a[i+48]=c[i],a[i+64]=h[i];var f=a.subarray(32),p=a.subarray(16);return kt(f,f),mt(p,p,f),ft(e,p),0}function vt(e,t){return Et(e,t,$e)}var Bt=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function St(e,t,r,n){for(var i,s,a,o,c,u,h,l,y,f,p,g,d,A,w,m,b,k,E,v,B,S,I,K,C,U,P=new Int32Array(16),D=new Int32Array(16),x=e[0],Q=e[1],R=e[2],T=e[3],M=e[4],L=e[5],N=e[6],F=e[7],O=t[0],H=t[1],_=t[2],z=t[3],G=t[4],q=t[5],j=t[6],V=t[7],Y=0;n>=128;){for(E=0;E<16;E++)v=8*E+Y,P[E]=r[v+0]<<24|r[v+1]<<16|r[v+2]<<8|r[v+3],D[E]=r[v+4]<<24|r[v+5]<<16|r[v+6]<<8|r[v+7];for(E=0;E<80;E++)if(i=x,s=Q,a=R,o=T,c=M,u=L,h=N,F,y=O,f=H,p=_,g=z,d=G,A=q,w=j,V,I=65535&(S=V),K=S>>>16,C=65535&(B=F),U=B>>>16,I+=65535&(S=(G>>>14|M<<18)^(G>>>18|M<<14)^(M>>>9|G<<23)),K+=S>>>16,C+=65535&(B=(M>>>14|G<<18)^(M>>>18|G<<14)^(G>>>9|M<<23)),U+=B>>>16,I+=65535&(S=G&q^~G&j),K+=S>>>16,C+=65535&(B=M&L^~M&N),U+=B>>>16,B=Bt[2*E],I+=65535&(S=Bt[2*E+1]),K+=S>>>16,C+=65535&B,U+=B>>>16,B=P[E%16],K+=(S=D[E%16])>>>16,C+=65535&B,U+=B>>>16,C+=(K+=(I+=65535&S)>>>16)>>>16,I=65535&(S=k=65535&I|K<<16),K=S>>>16,C=65535&(B=b=65535&C|(U+=C>>>16)<<16),U=B>>>16,I+=65535&(S=(O>>>28|x<<4)^(x>>>2|O<<30)^(x>>>7|O<<25)),K+=S>>>16,C+=65535&(B=(x>>>28|O<<4)^(O>>>2|x<<30)^(O>>>7|x<<25)),U+=B>>>16,K+=(S=O&H^O&_^H&_)>>>16,C+=65535&(B=x&Q^x&R^Q&R),U+=B>>>16,l=65535&(C+=(K+=(I+=65535&S)>>>16)>>>16)|(U+=C>>>16)<<16,m=65535&I|K<<16,I=65535&(S=g),K=S>>>16,C=65535&(B=o),U=B>>>16,K+=(S=k)>>>16,C+=65535&(B=b),U+=B>>>16,Q=i,R=s,T=a,M=o=65535&(C+=(K+=(I+=65535&S)>>>16)>>>16)|(U+=C>>>16)<<16,L=c,N=u,F=h,x=l,H=y,_=f,z=p,G=g=65535&I|K<<16,q=d,j=A,V=w,O=m,E%16==15)for(v=0;v<16;v++)B=P[v],I=65535&(S=D[v]),K=S>>>16,C=65535&B,U=B>>>16,B=P[(v+9)%16],I+=65535&(S=D[(v+9)%16]),K+=S>>>16,C+=65535&B,U+=B>>>16,b=P[(v+1)%16],I+=65535&(S=((k=D[(v+1)%16])>>>1|b<<31)^(k>>>8|b<<24)^(k>>>7|b<<25)),K+=S>>>16,C+=65535&(B=(b>>>1|k<<31)^(b>>>8|k<<24)^b>>>7),U+=B>>>16,b=P[(v+14)%16],K+=(S=((k=D[(v+14)%16])>>>19|b<<13)^(b>>>29|k<<3)^(k>>>6|b<<26))>>>16,C+=65535&(B=(b>>>19|k<<13)^(k>>>29|b<<3)^b>>>6),U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,P[v]=65535&C|U<<16,D[v]=65535&I|K<<16;I=65535&(S=O),K=S>>>16,C=65535&(B=x),U=B>>>16,B=e[0],K+=(S=t[0])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[0]=x=65535&C|U<<16,t[0]=O=65535&I|K<<16,I=65535&(S=H),K=S>>>16,C=65535&(B=Q),U=B>>>16,B=e[1],K+=(S=t[1])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[1]=Q=65535&C|U<<16,t[1]=H=65535&I|K<<16,I=65535&(S=_),K=S>>>16,C=65535&(B=R),U=B>>>16,B=e[2],K+=(S=t[2])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[2]=R=65535&C|U<<16,t[2]=_=65535&I|K<<16,I=65535&(S=z),K=S>>>16,C=65535&(B=T),U=B>>>16,B=e[3],K+=(S=t[3])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[3]=T=65535&C|U<<16,t[3]=z=65535&I|K<<16,I=65535&(S=G),K=S>>>16,C=65535&(B=M),U=B>>>16,B=e[4],K+=(S=t[4])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[4]=M=65535&C|U<<16,t[4]=G=65535&I|K<<16,I=65535&(S=q),K=S>>>16,C=65535&(B=L),U=B>>>16,B=e[5],K+=(S=t[5])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[5]=L=65535&C|U<<16,t[5]=q=65535&I|K<<16,I=65535&(S=j),K=S>>>16,C=65535&(B=N),U=B>>>16,B=e[6],K+=(S=t[6])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[6]=N=65535&C|U<<16,t[6]=j=65535&I|K<<16,I=65535&(S=V),K=S>>>16,C=65535&(B=F),U=B>>>16,B=e[7],K+=(S=t[7])>>>16,C+=65535&B,U+=B>>>16,U+=(C+=(K+=(I+=65535&S)>>>16)>>>16)>>>16,e[7]=F=65535&C|U<<16,t[7]=V=65535&I|K<<16,Y+=128,n-=128}return n}function It(e,t,r){var n,i=new Int32Array(8),s=new Int32Array(8),a=new Uint8Array(256),o=r;for(i[0]=1779033703,i[1]=3144134277,i[2]=1013904242,i[3]=2773480762,i[4]=1359893119,i[5]=2600822924,i[6]=528734635,i[7]=1541459225,s[0]=4089235720,s[1]=2227873595,s[2]=4271175723,s[3]=1595750129,s[4]=2917565137,s[5]=725511199,s[6]=4215389547,s[7]=327033209,St(i,s,t,r),r%=128,n=0;n<r;n++)a[n]=t[o-r+n];for(a[r]=128,a[(r=256-128*(r<112?1:0))-9]=0,ct(a,r-8,o/536870912|0,o<<3),St(i,s,a,r),n=0;n<8;n++)ct(e,8*n,i[n],s[n]);return 0}function Kt(e,t){var r=Je(),n=Je(),i=Je(),s=Je(),a=Je(),o=Je(),c=Je(),u=Je(),h=Je();wt(r,e[1],e[0]),wt(h,t[1],t[0]),mt(r,r,h),At(n,e[0],e[1]),At(h,t[0],t[1]),mt(n,n,h),mt(i,e[3],t[3]),mt(i,i,it),mt(s,e[2],t[2]),At(s,s,s),wt(a,n,r),wt(o,s,i),At(c,s,i),At(u,n,r),mt(e[0],a,o),mt(e[1],u,c),mt(e[2],c,o),mt(e[3],a,u)}function Ct(e,t,r){var n;for(n=0;n<4;n++)yt(e[n],t[n],r)}function Ut(e,t){var r=Je(),n=Je(),i=Je();kt(i,t[2]),mt(r,t[0],i),mt(n,t[1],i),ft(e,n),e[31]^=gt(r)<<7}function Pt(e,t,r){var n,i;for(ht(e[0],et),ht(e[1],tt),ht(e[2],tt),ht(e[3],et),i=255;i>=0;--i)Ct(e,t,n=r[i/8|0]>>(7&i)&1),Kt(t,e),Kt(e,e),Ct(e,t,n)}function Dt(e,t){var r=[Je(),Je(),Je(),Je()];ht(r[0],st),ht(r[1],at),ht(r[2],tt),mt(r[3],st,at),Pt(e,r,t)}function xt(e,t,r){var n,i=new Uint8Array(64),s=[Je(),Je(),Je(),Je()];for(r||Xe(t,32),It(i,t,32),i[0]&=248,i[31]&=127,i[31]|=64,Dt(s,i),Ut(e,s),n=0;n<32;n++)t[n+32]=e[n];return 0}var Qt=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function Rt(e,t){var r,n,i,s;for(n=63;n>=32;--n){for(r=0,i=n-32,s=n-12;i<s;++i)t[i]+=r-16*t[n]*Qt[i-(n-32)],r=Math.floor((t[i]+128)/256),t[i]-=256*r;t[i]+=r,t[n]=0}for(r=0,i=0;i<32;i++)t[i]+=r-(t[31]>>4)*Qt[i],r=t[i]>>8,t[i]&=255;for(i=0;i<32;i++)t[i]-=r*Qt[i];for(n=0;n<32;n++)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function Tt(e){var t,r=new Float64Array(64);for(t=0;t<64;t++)r[t]=e[t];for(t=0;t<64;t++)e[t]=0;Rt(e,r)}function Mt(e,t){var r=Je(),n=Je(),i=Je(),s=Je(),a=Je(),o=Je(),c=Je();return ht(e[2],tt),dt(e[1],t),bt(i,e[1]),mt(s,i,nt),wt(i,i,e[2]),At(s,e[2],s),bt(a,s),bt(o,a),mt(c,o,a),mt(r,c,i),mt(r,r,s),function(e,t){var r,n=Je();for(r=0;r<16;r++)n[r]=t[r];for(r=250;r>=0;r--)bt(n,n),1!==r&&mt(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}(r,r),mt(r,r,i),mt(r,r,s),mt(r,r,s),mt(e[0],r,s),bt(n,e[0]),mt(n,n,s),pt(n,i)&&mt(e[0],e[0],ot),bt(n,e[0]),mt(n,n,s),pt(n,i)?-1:(gt(e[0])===t[31]>>7&&wt(e[0],et,e[0]),mt(e[3],e[0],e[1]),0)}var Lt=64;function Nt(){for(var e=0;e<arguments.length;e++)if(!(arguments[e]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}We.scalarMult=function(e,t){if(Nt(e,t),32!==e.length)throw Error("bad n size");if(32!==t.length)throw Error("bad p size");var r=new Uint8Array(32);return Et(r,e,t),r},We.box={},We.box.keyPair=function(){var e=new Uint8Array(32),t=new Uint8Array(32);return function(e,t){Xe(t,32),vt(e,t)}(e,t),{publicKey:e,secretKey:t}},We.box.keyPair.fromSecretKey=function(e){if(Nt(e),32!==e.length)throw Error("bad secret key size");var t=new Uint8Array(32);return vt(t,e),{publicKey:t,secretKey:new Uint8Array(e)}},We.sign=function(e,t){if(Nt(e,t),64!==t.length)throw Error("bad secret key size");var r=new Uint8Array(Lt+e.length);return function(e,t,r,n){var i,s,a=new Uint8Array(64),o=new Uint8Array(64),c=new Uint8Array(64),u=new Float64Array(64),h=[Je(),Je(),Je(),Je()];It(a,n,32),a[0]&=248,a[31]&=127,a[31]|=64;var l=r+64;for(i=0;i<r;i++)e[64+i]=t[i];for(i=0;i<32;i++)e[32+i]=a[32+i];for(It(c,e.subarray(32),r+32),Tt(c),Dt(h,c),Ut(e,h),i=32;i<64;i++)e[i]=n[i];for(It(o,e,r+64),Tt(o),i=0;i<64;i++)u[i]=0;for(i=0;i<32;i++)u[i]=c[i];for(i=0;i<32;i++)for(s=0;s<32;s++)u[i+s]+=o[i]*a[s];Rt(e.subarray(32),u)}(r,e,e.length,t),r},We.sign.detached=function(e,t){for(var r=We.sign(e,t),n=new Uint8Array(Lt),i=0;i<n.length;i++)n[i]=r[i];return n},We.sign.detached.verify=function(e,t,r){if(Nt(e,t,r),t.length!==Lt)throw Error("bad signature size");if(32!==r.length)throw Error("bad public key size");var n,i=new Uint8Array(Lt+e.length),s=new Uint8Array(Lt+e.length);for(n=0;n<Lt;n++)i[n]=t[n];for(n=0;n<e.length;n++)i[n+Lt]=e[n];return function(e,t,r,n){var i,s=new Uint8Array(32),a=new Uint8Array(64),o=[Je(),Je(),Je(),Je()],c=[Je(),Je(),Je(),Je()];if(r<64)return-1;if(Mt(c,n))return-1;for(i=0;i<r;i++)e[i]=t[i];for(i=0;i<32;i++)e[i+32]=n[i];if(It(a,e,r),Tt(a),Pt(o,c,a),Dt(c,t.subarray(32)),Kt(o,c),Ut(s,o),r-=64,ut(t,0,s,0)){for(i=0;i<r;i++)e[i]=0;return-1}for(i=0;i<r;i++)e[i]=t[i+64];return r}(s,i,i.length,r)>=0},We.sign.keyPair=function(){var e=new Uint8Array(32),t=new Uint8Array(64);return xt(e,t),{publicKey:e,secretKey:t}},We.sign.keyPair.fromSecretKey=function(e){if(Nt(e),64!==e.length)throw Error("bad secret key size");for(var t=new Uint8Array(32),r=0;r<t.length;r++)t[r]=e[32+r];return{publicKey:t,secretKey:new Uint8Array(e)}},We.sign.keyPair.fromSeed=function(e){if(Nt(e),32!==e.length)throw Error("bad seed size");for(var t=new Uint8Array(32),r=new Uint8Array(64),n=0;n<32;n++)r[n]=e[n];return xt(t,r,!0),{publicKey:t,secretKey:r}},We.setPRNG=function(e){Xe=e},function(){if(Ze&&Ze.getRandomValues){We.setPRNG((function(e,t){var r,n=new Uint8Array(t);for(r=0;r<t;r+=65536)Ze.getRandomValues(n.subarray(r,r+Math.min(t-r,65536)));for(r=0;r<t;r++)e[r]=n[r];!function(e){for(var t=0;t<e.length;t++)e[t]=0}(n)}))}}();const Ft={"2a8648ce3d030107":Q.curve.nistP256,"2b81040022":Q.curve.nistP384,"2b81040023":Q.curve.nistP521,"2b8104000a":Q.curve.secp256k1,"2b06010401da470f01":Q.curve.ed25519Legacy,"2b060104019755010501":Q.curve.curve25519Legacy,"2b2403030208010107":Q.curve.brainpoolP256r1,"2b240303020801010b":Q.curve.brainpoolP384r1,"2b240303020801010d":Q.curve.brainpoolP512r1};class Ot{constructor(e){if(e instanceof Ot)this.oid=e.oid;else if(M.isArray(e)||M.isUint8Array(e)){if(6===(e=new Uint8Array(e))[0]){if(e[1]!==e.length-2)throw Error("Length mismatch in DER encoded oid");e=e.subarray(2)}this.oid=e}else this.oid=""}read(e){if(e.length>=1){const t=e[0];if(e.length>=1+t)return this.oid=e.subarray(1,1+t),1+this.oid.length}throw Error("Invalid oid")}write(){return M.concatUint8Array([new Uint8Array([this.oid.length]),this.oid])}toHex(){return M.uint8ArrayToHex(this.oid)}getName(){const e=Ft[this.toHex()];if(!e)throw Error("Unknown curve object identifier.");return e}}function Ht(e){let t,r=0;const n=e[0];return n<192?([r]=e,t=1):n<255?(r=(e[0]-192<<8)+e[1]+192,t=2):255===n&&(r=M.readNumber(e.subarray(1,5)),t=5),{len:r,offset:t}}function _t(e){return e<192?new Uint8Array([e]):e>191&&e<8384?new Uint8Array([192+(e-192>>8),e-192&255]):M.concatUint8Array([new Uint8Array([255]),M.writeNumber(e,4)])}function zt(e){if(e<0||e>30)throw Error("Partial Length power must be between 1 and 30");return new Uint8Array([224+e])}function Gt(e){return new Uint8Array([192|e])}function qt(e,t){return M.concatUint8Array([Gt(e),_t(t)])}function jt(e){return[Q.packet.literalData,Q.packet.compressedData,Q.packet.symmetricallyEncryptedData,Q.packet.symEncryptedIntegrityProtectedData,Q.packet.aeadEncryptedData].includes(e)}async function Vt(e,t){const r=P(e);let n,i;try{const s=await r.peekBytes(2);if(!s||s.length<2||!(128&s[0]))throw Error("Error during parsing. This message / key probably does not conform to a valid OpenPGP format.");const a=await r.readByte();let o,c,u=-1,h=-1;h=0,64&a&&(h=1),h?u=63&a:(u=(63&a)>>2,c=3&a);const l=jt(u);let y,f=null;if(l){if("array"===M.isStream(e)){const e=new ArrayStream;n=D(e),f=e}else{const e=new TransformStream;n=D(e.writable),f=e.readable}i=t({tag:u,packet:f})}else f=[];do{if(h){const e=await r.readByte();if(y=!1,e<192)o=e;else if(e>=192&&e<224)o=(e-192<<8)+await r.readByte()+192;else if(e>223&&e<255){if(o=1<<(31&e),y=!0,!l)throw new TypeError("This packet type does not support partial lengths.")}else o=await r.readByte()<<24|await r.readByte()<<16|await r.readByte()<<8|await r.readByte()}else switch(c){case 0:o=await r.readByte();break;case 1:o=await r.readByte()<<8|await r.readByte();break;case 2:o=await r.readByte()<<24|await r.readByte()<<16|await r.readByte()<<8|await r.readByte();break;default:o=1/0}if(o>0){let e=0;for(;;){n&&await n.ready;const{done:t,value:i}=await r.read();if(t){if(o===1/0)break;throw Error("Unexpected end of packet")}const s=o===1/0?i:i.subarray(0,o-e);if(n?await n.write(s):f.push(s),e+=i.length,e>=o){r.unshift(i.subarray(o-e+i.length));break}}}}while(y);const p=await r.peekBytes(l?1/0:2);return n?(await n.ready,await n.close()):(f=M.concatUint8Array(f),await t({tag:u,packet:f})),!p||!p.length}catch(e){if(n)return await n.abort(e),!0;throw e}finally{n&&await i,r.releaseLock()}}class Yt extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,Yt),this.name="UnsupportedError"}}class Zt extends Yt{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,Yt),this.name="UnknownPacketError"}}class Wt{constructor(e,t){this.tag=e,this.rawContent=t}write(){return this.rawContent}}
3
+ /*! noble-ed25519 - MIT License (c) 2019 Paul Miller (paulmillr.com) */const Jt=BigInt(0),Xt=BigInt(1),$t=BigInt(2),er=BigInt(8),tr=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),rr=Object.freeze({a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),l:tr,n:tr,h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")}),nr=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),ir=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742");const sr=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),ar=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),or=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),cr=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");class ur{constructor(e,t,r,n){this.x=e,this.y=t,this.z=r,this.t=n}static fromAffine(e){if(!(e instanceof dr))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return e.equals(dr.ZERO)?ur.ZERO:new ur(e.x,e.y,Xt,Cr(e.x*e.y))}static toAffineBatch(e){const t=function(e,t=rr.P){const r=Array(e.length),n=e.reduce(((e,n,i)=>n===Jt?e:(r[i]=e,Cr(e*n,t))),Xt),i=Ur(n,t);return e.reduceRight(((e,n,i)=>n===Jt?e:(r[i]=Cr(e*r[i],t),Cr(e*n,t))),i),r}(e.map((e=>e.z)));return e.map(((e,r)=>e.toAffine(t[r])))}static normalizeZ(e){return this.toAffineBatch(e).map(this.fromAffine)}equals(e){lr(e);const{x:t,y:r,z:n}=this,{x:i,y:s,z:a}=e,o=Cr(t*a),c=Cr(i*n),u=Cr(r*a),h=Cr(s*n);return o===c&&u===h}negate(){return new ur(Cr(-this.x),this.y,this.z,Cr(-this.t))}double(){const{x:e,y:t,z:r}=this,{a:n}=rr,i=Cr(e*e),s=Cr(t*t),a=Cr($t*Cr(r*r)),o=Cr(n*i),c=e+t,u=Cr(Cr(c*c)-i-s),h=o+s,l=h-a,y=o-s,f=Cr(u*l),p=Cr(h*y),g=Cr(u*y),d=Cr(l*h);return new ur(f,p,d,g)}add(e){lr(e);const{x:t,y:r,z:n,t:i}=this,{x:s,y:a,z:o,t:c}=e,u=Cr((r-t)*(a+s)),h=Cr((r+t)*(a-s)),l=Cr(h-u);if(l===Jt)return this.double();const y=Cr(n*$t*c),f=Cr(i*$t*o),p=f+y,g=h+u,d=f-y,A=Cr(p*l),w=Cr(g*d),m=Cr(p*d),b=Cr(l*g);return new ur(A,w,b,m)}subtract(e){return this.add(e.negate())}precomputeWindow(e){const t=1+256/e,r=[];let n=this,i=n;for(let s=0;s<t;s++){i=n,r.push(i);for(let t=1;t<2**(e-1);t++)i=i.add(n),r.push(i);n=i.double()}return r}wNAF(e,t){!t&&this.equals(ur.BASE)&&(t=dr.BASE);const r=t&&t._WINDOW_SIZE||1;if(256%r)throw Error("Point#wNAF: Invalid precomputation window, must be power of 2");let n=t&&gr.get(t);n||(n=this.precomputeWindow(r),t&&1!==r&&(n=ur.normalizeZ(n),gr.set(t,n)));let i=ur.ZERO,s=ur.BASE;const a=1+256/r,o=2**(r-1),c=BigInt(2**r-1),u=2**r,h=BigInt(r);for(let t=0;t<a;t++){const r=t*o;let a=Number(e&c);e>>=h,a>o&&(a-=u,e+=Xt);const l=r,y=r+Math.abs(a)-1,f=t%2!=0,p=a<0;0===a?s=s.add(hr(f,n[l])):i=i.add(hr(p,n[y]))}return ur.normalizeZ([i,s])[0]}multiply(e,t){return this.wNAF(Tr(e,rr.l),t)}multiplyUnsafe(e){let t=Tr(e,rr.l,!1);const r=ur.BASE,n=ur.ZERO;if(t===Jt)return n;if(this.equals(n)||t===Xt)return this;if(this.equals(r))return this.wNAF(t);let i=n,s=this;for(;t>Jt;)t&Xt&&(i=i.add(s)),s=s.double(),t>>=Xt;return i}isSmallOrder(){return this.multiplyUnsafe(rr.h).equals(ur.ZERO)}isTorsionFree(){let e=this.multiplyUnsafe(rr.l/$t).double();return rr.l%$t&&(e=e.add(this)),e.equals(ur.ZERO)}toAffine(e){const{x:t,y:r,z:n}=this,i=this.equals(ur.ZERO);null==e&&(e=i?er:Ur(n));const s=Cr(t*e),a=Cr(r*e),o=Cr(n*e);if(i)return dr.ZERO;if(o!==Xt)throw Error("invZ was invalid");return new dr(s,a)}fromRistrettoBytes(){fr()}toRistrettoBytes(){fr()}fromRistrettoHash(){fr()}}function hr(e,t){const r=t.negate();return e?r:t}function lr(e){if(!(e instanceof ur))throw new TypeError("ExtendedPoint expected")}function yr(e){if(!(e instanceof pr))throw new TypeError("RistrettoPoint expected")}function fr(){throw Error("Legacy method: switch to RistrettoPoint")}ur.BASE=new ur(rr.Gx,rr.Gy,Xt,Cr(rr.Gx*rr.Gy)),ur.ZERO=new ur(Jt,Xt,Xt,Jt);class pr{constructor(e){this.ep=e}static calcElligatorRistrettoMap(e){const{d:t}=rr,r=Cr(ir*e*e),n=Cr((r+Xt)*or);let i=BigInt(-1);const s=Cr((i-t*r)*Cr(r+t));let{isValid:a,value:o}=Dr(n,s),c=Cr(o*e);Br(c)||(c=Cr(-c)),a||(o=c),a||(i=r);const u=Cr(i*(r-Xt)*cr-s),h=o*o,l=Cr((o+o)*s),y=Cr(u*sr),f=Cr(Xt-h),p=Cr(Xt+h);return new ur(Cr(l*p),Cr(f*y),Cr(y*p),Cr(l*f))}static hashToCurve(e){const t=Kr((e=Rr(e,64)).slice(0,32)),r=this.calcElligatorRistrettoMap(t),n=Kr(e.slice(32,64)),i=this.calcElligatorRistrettoMap(n);return new pr(r.add(i))}static fromHex(e){e=Rr(e,32);const{a:t,d:r}=rr,n="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",i=Kr(e);if(!function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}(vr(i),e)||Br(i))throw Error(n);const s=Cr(i*i),a=Cr(Xt+t*s),o=Cr(Xt-t*s),c=Cr(a*a),u=Cr(o*o),h=Cr(t*r*c-u),{isValid:l,value:y}=xr(Cr(h*u)),f=Cr(y*o),p=Cr(y*f*h);let g=Cr((i+i)*f);Br(g)&&(g=Cr(-g));const d=Cr(a*p),A=Cr(g*d);if(!l||Br(A)||d===Jt)throw Error(n);return new pr(new ur(g,d,Xt,A))}toRawBytes(){let{x:e,y:t,z:r,t:n}=this.ep;const i=Cr(Cr(r+t)*Cr(r-t)),s=Cr(e*t),a=Cr(s*s),{value:o}=xr(Cr(i*a)),c=Cr(o*i),u=Cr(o*s),h=Cr(c*u*n);let l;if(Br(n*h)){let r=Cr(t*ir),n=Cr(e*ir);e=r,t=n,l=Cr(c*ar)}else l=u;Br(e*h)&&(t=Cr(-t));let y=Cr((r-t)*l);return Br(y)&&(y=Cr(-y)),vr(y)}toHex(){return br(this.toRawBytes())}toString(){return this.toHex()}equals(e){yr(e);const t=this.ep,r=e.ep,n=Cr(t.x*r.y)===Cr(t.y*r.x),i=Cr(t.y*r.y)===Cr(t.x*r.x);return n||i}add(e){return yr(e),new pr(this.ep.add(e.ep))}subtract(e){return yr(e),new pr(this.ep.subtract(e.ep))}multiply(e){return new pr(this.ep.multiply(e))}multiplyUnsafe(e){return new pr(this.ep.multiplyUnsafe(e))}}pr.BASE=new pr(ur.BASE),pr.ZERO=new pr(ur.ZERO);const gr=new WeakMap;class dr{constructor(e,t){this.x=e,this.y=t}_setWindowSize(e){this._WINDOW_SIZE=e,gr.delete(this)}static fromHex(e,t=!0){const{d:r,P:n}=rr,i=(e=Rr(e,32)).slice();i[31]=-129&e[31];const s=Sr(i);if(t&&s>=n)throw Error("Expected 0 < hex < P");if(!t&&s>=nr)throw Error("Expected 0 < hex < 2**256");const a=Cr(s*s),o=Cr(a-Xt),c=Cr(r*a+Xt);let{isValid:u,value:h}=Dr(o,c);if(!u)throw Error("Point.fromHex: invalid y coordinate");const l=(h&Xt)===Xt;return!!(128&e[31])!==l&&(h=Cr(-h)),new dr(h,s)}static async fromPrivateKey(e){return(await Lr(e)).point}toRawBytes(){const e=vr(this.y);return e[31]|=this.x&Xt?128:0,e}toHex(){return br(this.toRawBytes())}toX25519(){const{y:e}=this;return vr(Cr((Xt+e)*Ur(Xt-e)))}isTorsionFree(){return ur.fromAffine(this).isTorsionFree()}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new dr(Cr(-this.x),this.y)}add(e){return ur.fromAffine(this).add(ur.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return ur.fromAffine(this).multiply(e,this).toAffine()}}dr.BASE=new dr(rr.Gx,rr.Gy),dr.ZERO=new dr(Jt,Xt);let Ar=class e{constructor(e,t){this.r=e,this.s=t,this.assertValidity()}static fromHex(t){const r=Rr(t,64),n=dr.fromHex(r.slice(0,32),!1),i=Sr(r.slice(32,64));return new e(n,i)}assertValidity(){const{r:e,s:t}=this;if(!(e instanceof dr))throw Error("Expected Point instance");return Tr(t,rr.l,!1),this}toRawBytes(){const e=new Uint8Array(64);return e.set(this.r.toRawBytes()),e.set(vr(this.s),32),e}toHex(){return br(this.toRawBytes())}};function wr(...e){if(!e.every((e=>e instanceof Uint8Array)))throw Error("Expected Uint8Array list");if(1===e.length)return e[0];const t=e.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(t);for(let t=0,n=0;t<e.length;t++){const i=e[t];r.set(i,n),n+=i.length}return r}const mr=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function br(e){if(!(e instanceof Uint8Array))throw Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=mr[e[r]];return t}function kr(e){if("string"!=typeof e)throw new TypeError("hexToBytes: expected string, got "+typeof e);if(e.length%2)throw Error("hexToBytes: received invalid unpadded hex");const t=new Uint8Array(e.length/2);for(let r=0;r<t.length;r++){const n=2*r,i=e.slice(n,n+2),s=Number.parseInt(i,16);if(Number.isNaN(s)||s<0)throw Error("Invalid byte sequence");t[r]=s}return t}function Er(e){return kr(e.toString(16).padStart(64,"0"))}function vr(e){return Er(e).reverse()}function Br(e){return(Cr(e)&Xt)===Xt}function Sr(e){if(!(e instanceof Uint8Array))throw Error("Expected Uint8Array");return BigInt("0x"+br(Uint8Array.from(e).reverse()))}const Ir=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Kr(e){return Cr(Sr(e)&Ir)}function Cr(e,t=rr.P){const r=e%t;return r>=Jt?r:t+r}function Ur(e,t=rr.P){if(e===Jt||t<=Jt)throw Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=Cr(e,t),n=t,i=Jt,s=Xt;for(;r!==Jt;){const e=n%r,t=i-s*(n/r);n=r,r=e,i=s,s=t}if(n!==Xt)throw Error("invert: does not exist");return Cr(i,t)}function Pr(e,t){const{P:r}=rr;let n=e;for(;t-- >Jt;)n*=n,n%=r;return n}function Dr(e,t){const r=Cr(t*t*t),n=function(e){const{P:t}=rr,r=BigInt(5),n=BigInt(10),i=BigInt(20),s=BigInt(40),a=BigInt(80),o=e*e%t*e%t,c=Pr(o,$t)*o%t,u=Pr(c,Xt)*e%t,h=Pr(u,r)*u%t,l=Pr(h,n)*h%t,y=Pr(l,i)*l%t,f=Pr(y,s)*y%t,p=Pr(f,a)*f%t,g=Pr(p,a)*f%t,d=Pr(g,n)*h%t;return{pow_p_5_8:Pr(d,$t)*e%t,b2:o}}(e*Cr(r*r*t)).pow_p_5_8;let i=Cr(e*r*n);const s=Cr(t*i*i),a=i,o=Cr(i*ir),c=s===e,u=s===Cr(-e),h=s===Cr(-e*ir);return c&&(i=a),(u||h)&&(i=o),Br(i)&&(i=Cr(-i)),{isValid:c||u,value:i}}function xr(e){return Dr(Xt,e)}function Qr(e){return Cr(Sr(e),rr.l)}function Rr(e,t){const r=e instanceof Uint8Array?Uint8Array.from(e):kr(e);if("number"==typeof t&&r.length!==t)throw Error(`Expected ${t} bytes`);return r}function Tr(e,t,r=!0){if(!t)throw new TypeError("Specify max value");if("number"==typeof e&&Number.isSafeInteger(e)&&(e=BigInt(e)),"bigint"==typeof e&&e<t)if(r){if(Jt<e)return e}else if(Jt<=e)return e;throw new TypeError("Expected valid scalar: 0 < scalar < max")}let Mr;async function Lr(e){return function(e){const t=function(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}(e.slice(0,32)),r=e.slice(32,64),n=Qr(t),i=dr.BASE.multiply(n),s=i.toRawBytes();return{head:t,prefix:r,scalar:n,point:i,pointBytes:s}}(await Or.sha512(function(e){if(32!==(e="bigint"==typeof e||"number"==typeof e?Er(Tr(e,nr)):Rr(e)).length)throw Error("Expected 32 bytes");return e}(e)))}async function Nr(e,t,r){const{r:n,SB:i,msg:s,pub:a}=function(e,t,r){t=Rr(t),r instanceof dr||(r=dr.fromHex(r,!1));const{r:n,s:i}=e instanceof Ar?e.assertValidity():Ar.fromHex(e);return{r:n,s:i,SB:ur.BASE.multiplyUnsafe(i),pub:r,msg:t}}(e,t,r),o=await Or.sha512(n.toRawBytes(),a.toRawBytes(),s);return function(e,t,r,n){const i=Qr(n),s=ur.fromAffine(e).multiplyUnsafe(i);return ur.fromAffine(t).add(s).subtract(r).multiplyUnsafe(rr.h).equals(ur.ZERO)}(a,n,i,o)}dr.BASE._setWindowSize(8);const Fr={node:null,web:"object"==typeof self&&"crypto"in self?self.crypto:void 0},Or={bytesToHex:br,hexToBytes:kr,concatBytes:wr,getExtendedPublicKey:Lr,mod:Cr,invert:Ur,TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],hashToPrivateScalar:e=>{if((e=Rr(e)).length<40||e.length>1024)throw Error("Expected 40-1024 bytes of private key as per FIPS 186");return Cr(Sr(e),rr.l-Xt)+Xt},randomBytes:(e=32)=>{if(Fr.web)return Fr.web.getRandomValues(new Uint8Array(e));throw Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>Or.randomBytes(32),sha512:async(...e)=>{const t=wr(...e);if(Fr.web){const e=await Fr.web.subtle.digest("SHA-512",t.buffer);return new Uint8Array(e)}throw Error("The environment doesn't have sha512 function")},precompute(e=8,t=dr.BASE){const r=t.equals(dr.BASE)?t:new dr(t.x,t.y);return r._setWindowSize(e),r.multiply($t),r},sha512Sync:void 0};async function Hr(e){switch(e){case Q.publicKey.ed25519:try{const e=M.getWebCrypto(),t=await e.generateKey("Ed25519",!0,["sign","verify"]).catch((e=>{if("OperationError"===e.name){const e=Error("Unexpected key generation issue");throw e.name="NotSupportedError",e}throw e})),r=await e.exportKey("jwk",t.privateKey),n=await e.exportKey("jwk",t.publicKey);return{A:new Uint8Array(_(n.x)),seed:_(r.d)}}catch(t){if("NotSupportedError"!==t.name)throw t;const r=ye(qr(e)),{publicKey:n}=We.sign.keyPair.fromSeed(r);return{A:n,seed:r}}case Q.publicKey.ed448:{const e=await M.getNobleCurve(Q.publicKey.ed448),t=e.utils.randomPrivateKey();return{A:e.getPublicKey(t),seed:t}}default:throw Error("Unsupported EdDSA algorithm")}}async function _r(e,t,r,n,i,s){switch(e){case Q.publicKey.ed25519:try{const t=M.getWebCrypto(),r=Yr(e,n,i),a=await t.importKey("jwk",r,"Ed25519",!1,["sign"]);return{RS:new Uint8Array(await t.sign("Ed25519",a,s))}}catch(e){if("NotSupportedError"!==e.name)throw e;const t=M.concatUint8Array([i,n]);return{RS:We.sign.detached(s,t)}}case Q.publicKey.ed448:return{RS:(await M.getNobleCurve(Q.publicKey.ed448)).sign(s,i)};default:throw Error("Unsupported EdDSA algorithm")}}async function zr(e,t,{RS:r},n,i,s){switch(e){case Q.publicKey.ed25519:try{const t=M.getWebCrypto(),n=Vr(e,i),a=await t.importKey("jwk",n,"Ed25519",!1,["verify"]);return await t.verify("Ed25519",a,r,s)}catch(e){if("NotSupportedError"!==e.name)throw e;return Nr(r,s,i)}case Q.publicKey.ed448:return(await M.getNobleCurve(Q.publicKey.ed448)).verify(r,s,i);default:throw Error("Unsupported EdDSA algorithm")}}async function Gr(e,t,r){switch(e){case Q.publicKey.ed25519:{const{publicKey:e}=We.sign.keyPair.fromSeed(r);return M.equalsUint8Array(t,e)}case Q.publicKey.ed448:{const e=(await M.getNobleCurve(Q.publicKey.ed448)).getPublicKey(r);return M.equalsUint8Array(t,e)}default:return!1}}function qr(e){switch(e){case Q.publicKey.ed25519:return 32;case Q.publicKey.ed448:return 57;default:throw Error("Unsupported EdDSA algorithm")}}function jr(e){switch(e){case Q.publicKey.ed25519:return Q.hash.sha256;case Q.publicKey.ed448:return Q.hash.sha512;default:throw Error("Unknown EdDSA algo")}}Object.defineProperties(Or,{sha512Sync:{configurable:!1,get:()=>Mr,set(e){Mr||(Mr=e)}}});const Vr=(e,t)=>{if(e===Q.publicKey.ed25519){return{kty:"OKP",crv:"Ed25519",x:z(t),ext:!0}}throw Error("Unsupported EdDSA algorithm")},Yr=(e,t,r)=>{if(e===Q.publicKey.ed25519){const n=Vr(e,t);return n.d=z(r),n}throw Error("Unsupported EdDSA algorithm")};var Zr=/*#__PURE__*/Object.freeze({__proto__:null,generate:Hr,getPayloadSize:qr,getPreferredHashAlgo:jr,sign:_r,validateParams:Gr,verify:zr});function Wr(e){return e instanceof Uint8Array||null!=e&&"object"==typeof e&&"Uint8Array"===e.constructor.name}function Jr(e,...t){if(!Wr(e))throw Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function Xr(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function $r(e,t){Jr(e);const r=t.outputLen;if(e.length<r)throw Error("digestInto() expects output buffer of length at least "+r)}
4
+ /*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */const en=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),tn=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),rn=e=>new DataView(e.buffer,e.byteOffset,e.byteLength);if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw Error("Non little-endian hardware is not supported");function nn(e){if("string"==typeof e)e=function(e){if("string"!=typeof e)throw Error("string expected, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e);else{if(!Wr(e))throw Error("Uint8Array expected, got "+typeof e);e=un(e)}return e}function sn(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return 0===r}const an=(e,t)=>(Object.assign(t,e),t);function on(e,t,r,n){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,r,n);const i=BigInt(32),s=BigInt(4294967295),a=Number(r>>i&s),o=Number(r&s);e.setUint32(t+0,a,n),e.setUint32(t+4,o,n)}function cn(e){return e.byteOffset%4==0}function un(e){return Uint8Array.from(e)}function hn(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}const ln=16,yn=/* @__PURE__ */new Uint8Array(16),fn=tn(yn),pn=e=>(e>>>0&255)<<24|(e>>>8&255)<<16|(e>>>16&255)<<8|e>>>24&255;class gn{constructor(e,t){this.blockLen=ln,this.outputLen=ln,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,Jr(e=nn(e),16);const r=rn(e);let n=r.getUint32(0,!1),i=r.getUint32(4,!1),s=r.getUint32(8,!1),a=r.getUint32(12,!1);const o=[];for(let e=0;e<128;e++)o.push({s0:pn(n),s1:pn(i),s2:pn(s),s3:pn(a)}),({s0:n,s1:i,s2:s,s3:a}={s3:(h=s)<<31|(l=a)>>>1,s2:(u=i)<<31|h>>>1,s1:(c=n)<<31|u>>>1,s0:c>>>1^225<<24&-(1&l)});var c,u,h,l;const y=(e=>e>65536?8:e>1024?4:2)(t||1024);if(![1,2,4,8].includes(y))throw Error(`ghash: wrong window size=${y}, should be 2, 4 or 8`);this.W=y;const f=128/y,p=this.windowSize=2**y,g=[];for(let e=0;e<f;e++)for(let t=0;t<p;t++){let r=0,n=0,i=0,s=0;for(let a=0;a<y;a++){if(!(t>>>y-a-1&1))continue;const{s0:c,s1:u,s2:h,s3:l}=o[y*e+a];r^=c,n^=u,i^=h,s^=l}g.push({s0:r,s1:n,s2:i,s3:s})}this.t=g}_updateBlock(e,t,r,n){e^=this.s0,t^=this.s1,r^=this.s2,n^=this.s3;const{W:i,t:s,windowSize:a}=this;let o=0,c=0,u=0,h=0;const l=(1<<i)-1;let y=0;for(const f of[e,t,r,n])for(let e=0;e<4;e++){const t=f>>>8*e&255;for(let e=8/i-1;e>=0;e--){const r=t>>>i*e&l,{s0:n,s1:f,s2:p,s3:g}=s[y*a+r];o^=n,c^=f,u^=p,h^=g,y+=1}}this.s0=o,this.s1=c,this.s2=u,this.s3=h}update(e){e=nn(e),Xr(this);const t=tn(e),r=Math.floor(e.length/ln),n=e.length%ln;for(let e=0;e<r;e++)this._updateBlock(t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]);return n&&(yn.set(e.subarray(r*ln)),this._updateBlock(fn[0],fn[1],fn[2],fn[3]),hn(fn)),this}destroy(){const{t:e}=this;for(const t of e)t.s0=0,t.s1=0,t.s2=0,t.s3=0}digestInto(e){Xr(this),$r(e,this),this.finished=!0;const{s0:t,s1:r,s2:n,s3:i}=this,s=tn(e);return s[0]=t,s[1]=r,s[2]=n,s[3]=i,e}digest(){const e=new Uint8Array(ln);return this.digestInto(e),this.destroy(),e}}class dn extends gn{constructor(e,t){const r=function(e){e.reverse();const t=1&e[15];let r=0;for(let t=0;t<e.length;t++){const n=e[t];e[t]=n>>>1|r,r=(1&n)<<7}return e[0]^=225&-t,e}(un(e=nn(e)));super(r,t),hn(r)}update(e){e=nn(e),Xr(this);const t=tn(e),r=e.length%ln,n=Math.floor(e.length/ln);for(let e=0;e<n;e++)this._updateBlock(pn(t[4*e+3]),pn(t[4*e+2]),pn(t[4*e+1]),pn(t[4*e+0]));return r&&(yn.set(e.subarray(n*ln)),this._updateBlock(pn(fn[3]),pn(fn[2]),pn(fn[1]),pn(fn[0])),hn(fn)),this}digestInto(e){Xr(this),$r(e,this),this.finished=!0;const{s0:t,s1:r,s2:n,s3:i}=this,s=tn(e);return s[0]=t,s[1]=r,s[2]=n,s[3]=i,e.reverse()}}function An(e){const t=(t,r)=>e(r,t.length).update(nn(t)).digest(),r=e(new Uint8Array(16),0);return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=(t,r)=>e(t,r),t}const wn=An(((e,t)=>new gn(e,t)));An(((e,t)=>new dn(e,t)));const mn=16,bn=new Uint8Array(mn),kn=283;function En(e){return e<<1^kn&-(e>>7)}function vn(e,t){let r=0;for(;t>0;t>>=1)r^=e&-(1&t),e=En(e);return r}const Bn=/* @__PURE__ */(()=>{const e=new Uint8Array(256);for(let t=0,r=1;t<256;t++,r^=En(r))e[t]=r;const t=new Uint8Array(256);t[0]=99;for(let r=0;r<255;r++){let n=e[255-r];n|=n<<8,t[e[r]]=255&(n^n>>4^n>>5^n>>6^n>>7^99)}return hn(e),t})(),Sn=/* @__PURE__ */Bn.map(((e,t)=>Bn.indexOf(t))),In=e=>e<<24|e>>>8,Kn=e=>e<<8|e>>>24,Cn=e=>e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255;function Un(e,t){if(256!==e.length)throw Error("Wrong sbox length");const r=new Uint32Array(256).map(((r,n)=>t(e[n]))),n=r.map(Kn),i=n.map(Kn),s=i.map(Kn),a=new Uint32Array(65536),o=new Uint32Array(65536),c=new Uint16Array(65536);for(let t=0;t<256;t++)for(let u=0;u<256;u++){const h=256*t+u;a[h]=r[t]^n[u],o[h]=i[t]^s[u],c[h]=e[t]<<8|e[u]}return{sbox:e,sbox2:c,T0:r,T1:n,T2:i,T3:s,T01:a,T23:o}}const Pn=/* @__PURE__ */Un(Bn,(e=>vn(e,3)<<24|e<<16|e<<8|vn(e,2))),Dn=/* @__PURE__ */Un(Sn,(e=>vn(e,11)<<24|vn(e,13)<<16|vn(e,9)<<8|vn(e,14))),xn=/* @__PURE__ */(()=>{const e=new Uint8Array(16);for(let t=0,r=1;t<16;t++,r=En(r))e[t]=r;return e})();function Qn(e){Jr(e);const t=e.length;if(![16,24,32].includes(t))throw Error("aes: wrong key size: should be 16, 24 or 32, got: "+t);const{sbox2:r}=Pn,n=[];cn(e)||n.push(e=un(e));const i=tn(e),s=i.length,a=e=>Mn(r,e,e,e,e),o=new Uint32Array(t+28);o.set(i);for(let e=s;e<o.length;e++){let t=o[e-1];e%s==0?t=a(In(t))^xn[e/s-1]:s>6&&e%s==4&&(t=a(t)),o[e]=o[e-s]^t}return hn(...n),o}function Rn(e){const t=Qn(e),r=t.slice(),n=t.length,{sbox2:i}=Pn,{T0:s,T1:a,T2:o,T3:c}=Dn;for(let e=0;e<n;e+=4)for(let i=0;i<4;i++)r[e+i]=t[n-e-4+i];hn(t);for(let e=4;e<n-4;e++){const t=r[e],n=Mn(i,t,t,t,t);r[e]=s[255&n]^a[n>>>8&255]^o[n>>>16&255]^c[n>>>24]}return r}function Tn(e,t,r,n,i,s){return e[r<<8&65280|n>>>8&255]^t[i>>>8&65280|s>>>24&255]}function Mn(e,t,r,n,i){return e[255&t|65280&r]|e[n>>>16&255|i>>>16&65280]<<16}function Ln(e,t,r,n,i){const{sbox2:s,T01:a,T23:o}=Pn;let c=0;t^=e[c++],r^=e[c++],n^=e[c++],i^=e[c++];const u=e.length/4-2;for(let s=0;s<u;s++){const s=e[c++]^Tn(a,o,t,r,n,i),u=e[c++]^Tn(a,o,r,n,i,t),h=e[c++]^Tn(a,o,n,i,t,r),l=e[c++]^Tn(a,o,i,t,r,n);t=s,r=u,n=h,i=l}return{s0:e[c++]^Mn(s,t,r,n,i),s1:e[c++]^Mn(s,r,n,i,t),s2:e[c++]^Mn(s,n,i,t,r),s3:e[c++]^Mn(s,i,t,r,n)}}function Nn(e,t,r,n,i){const{sbox2:s,T01:a,T23:o}=Dn;let c=0;t^=e[c++],r^=e[c++],n^=e[c++],i^=e[c++];const u=e.length/4-2;for(let s=0;s<u;s++){const s=e[c++]^Tn(a,o,t,i,n,r),u=e[c++]^Tn(a,o,r,t,i,n),h=e[c++]^Tn(a,o,n,r,t,i),l=e[c++]^Tn(a,o,i,n,r,t);t=s,r=u,n=h,i=l}return{s0:e[c++]^Mn(s,t,i,n,r),s1:e[c++]^Mn(s,r,t,i,n),s2:e[c++]^Mn(s,n,r,t,i),s3:e[c++]^Mn(s,i,n,r,t)}}function Fn(e,t){if(void 0===t)return new Uint8Array(e);if(Jr(t),t.length<e)throw Error(`aes: wrong destination length, expected at least ${e}, got: ${t.length}`);if(!cn(t))throw Error("unaligned dst");return t}function On(e,t,r,n){Jr(t,mn),Jr(r);const i=r.length;n=Fn(i,n);const s=t,a=tn(s);let{s0:o,s1:c,s2:u,s3:h}=Ln(e,a[0],a[1],a[2],a[3]);const l=tn(r),y=tn(n);for(let t=0;t+4<=l.length;t+=4){y[t+0]=l[t+0]^o,y[t+1]=l[t+1]^c,y[t+2]=l[t+2]^u,y[t+3]=l[t+3]^h;let r=1;for(let e=s.length-1;e>=0;e--)r=r+(255&s[e])|0,s[e]=255&r,r>>>=8;({s0:o,s1:c,s2:u,s3:h}=Ln(e,a[0],a[1],a[2],a[3]))}const f=mn*Math.floor(l.length/4);if(f<i){const e=new Uint32Array([o,c,u,h]),t=en(e);for(let e=f,s=0;e<i;e++,s++)n[e]=r[e]^t[s];hn(e)}return n}function Hn(e,t,r,n,i){Jr(r,mn),Jr(n),i=Fn(n.length,i);const s=r,a=tn(s),o=rn(s),c=tn(n),u=tn(i),h=t?0:12,l=n.length;let y=o.getUint32(h,t),{s0:f,s1:p,s2:g,s3:d}=Ln(e,a[0],a[1],a[2],a[3]);for(let r=0;r+4<=c.length;r+=4)u[r+0]=c[r+0]^f,u[r+1]=c[r+1]^p,u[r+2]=c[r+2]^g,u[r+3]=c[r+3]^d,y=y+1>>>0,o.setUint32(h,y,t),({s0:f,s1:p,s2:g,s3:d}=Ln(e,a[0],a[1],a[2],a[3]));const A=mn*Math.floor(c.length/4);if(A<l){const e=new Uint32Array([f,p,g,d]),t=en(e);for(let e=A,r=0;e<l;e++,r++)i[e]=n[e]^t[r];hn(e)}return i}const _n=an({blockSize:16,nonceLength:16},(function(e,t){function r(r,n){if(Jr(r),void 0!==n&&(Jr(n),!cn(n)))throw Error("unaligned destination");const i=Qn(e),s=un(t),a=[i,s];cn(r)||a.push(r=un(r));const o=On(i,s,r,n);return hn(...a),o}return Jr(e),Jr(t,mn),{encrypt:(e,t)=>r(e,t),decrypt:(e,t)=>r(e,t)}}));const zn=an({blockSize:16,nonceLength:16},(function(e,t,r={}){Jr(e),Jr(t,16);const n=!r.disablePadding;return{encrypt(r,i){const s=Qn(e),{b:a,o,out:c}=function(e,t,r){Jr(e);let n=e.length;const i=n%mn;if(!t&&0!==i)throw Error("aec/(cbc-ecb): unpadded plaintext with disabled padding");cn(e)||(e=un(e));const s=tn(e);if(t){let e=mn-i;e||(e=mn),n+=e}const a=Fn(n,r);return{b:s,o:tn(a),out:a}}(r,n,i);let u=t;const h=[s];cn(u)||h.push(u=un(u));const l=tn(u);let y=l[0],f=l[1],p=l[2],g=l[3],d=0;for(;d+4<=a.length;)y^=a[d+0],f^=a[d+1],p^=a[d+2],g^=a[d+3],({s0:y,s1:f,s2:p,s3:g}=Ln(s,y,f,p,g)),o[d++]=y,o[d++]=f,o[d++]=p,o[d++]=g;if(n){const e=function(e){const t=new Uint8Array(16),r=tn(t);t.set(e);const n=mn-e.length;for(let e=mn-n;e<mn;e++)t[e]=n;return r}(r.subarray(4*d));y^=e[0],f^=e[1],p^=e[2],g^=e[3],({s0:y,s1:f,s2:p,s3:g}=Ln(s,y,f,p,g)),o[d++]=y,o[d++]=f,o[d++]=p,o[d++]=g}return hn(...h),c},decrypt(r,i){!function(e){if(Jr(e),e.length%mn!=0)throw Error("aes/(cbc-ecb).decrypt ciphertext should consist of blocks with size 16")}(r);const s=Rn(e);let a=t;const o=[s];cn(a)||o.push(a=un(a));const c=tn(a),u=Fn(r.length,i);cn(r)||o.push(r=un(r));const h=tn(r),l=tn(u);let y=c[0],f=c[1],p=c[2],g=c[3];for(let e=0;e+4<=h.length;){const t=y,r=f,n=p,i=g;y=h[e+0],f=h[e+1],p=h[e+2],g=h[e+3];const{s0:a,s1:o,s2:c,s3:u}=Nn(s,y,f,p,g);l[e++]=a^t,l[e++]=o^r,l[e++]=c^n,l[e++]=u^i}return hn(...o),function(e,t){if(!t)return e;const r=e.length;if(!r)throw Error("aes/pcks5: empty ciphertext not allowed");const n=e[r-1];if(n<=0||n>16)throw Error("aes/pcks5: wrong padding");const i=e.subarray(0,-n);for(let t=0;t<n;t++)if(e[r-t-1]!==n)throw Error("aes/pcks5: wrong padding");return i}(u,n)}}})),Gn=an({blockSize:16,nonceLength:16},(function(e,t){function r(r,n,i){Jr(r);const s=r.length;i=Fn(s,i);const a=Qn(e);let o=t;const c=[a];cn(o)||c.push(o=un(o)),cn(r)||c.push(r=un(r));const u=tn(r),h=tn(i),l=n?h:u,y=tn(o);let f=y[0],p=y[1],g=y[2],d=y[3];for(let e=0;e+4<=u.length;){const{s0:t,s1:r,s2:n,s3:i}=Ln(a,f,p,g,d);h[e+0]=u[e+0]^t,h[e+1]=u[e+1]^r,h[e+2]=u[e+2]^n,h[e+3]=u[e+3]^i,f=l[e++],p=l[e++],g=l[e++],d=l[e++]}const A=mn*Math.floor(u.length/4);if(A<s){({s0:f,s1:p,s2:g,s3:d}=Ln(a,f,p,g,d));const e=en(new Uint32Array([f,p,g,d]));for(let t=A,n=0;t<s;t++,n++)i[t]=r[t]^e[n];hn(e)}return hn(...c),i}return Jr(e),Jr(t,16),{encrypt:(e,t)=>r(e,!0,t),decrypt:(e,t)=>r(e,!1,t)}}));const qn=an({blockSize:16,nonceLength:12,tagLength:16},(function(e,t,r){if(Jr(e),Jr(t),void 0!==r&&Jr(r),t.length<8)throw Error("aes/gcm: invalid nonce length");const n=16;function i(e,t,n){const i=function(e,t,r,n,i){const s=null==i?0:i.length,a=e.create(r,n.length+s);i&&a.update(i),a.update(n);const o=new Uint8Array(16),c=rn(o);i&&on(c,0,BigInt(8*s),t),on(c,8,BigInt(8*n.length),t),a.update(o);const u=a.digest();return hn(o),u}(wn,!1,e,n,r);for(let e=0;e<t.length;e++)i[e]^=t[e];return i}function s(){const r=Qn(e),n=bn.slice(),i=bn.slice();if(Hn(r,!1,i,i,n),12===t.length)i.set(t);else{const e=bn.slice();on(rn(e),8,BigInt(8*t.length),!1);const r=wn.create(n).update(t).update(e);r.digestInto(i),r.destroy()}return{xk:r,authKey:n,counter:i,tagMask:Hn(r,!1,i,bn)}}return{encrypt(e){Jr(e);const{xk:t,authKey:r,counter:a,tagMask:o}=s(),c=new Uint8Array(e.length+n),u=[t,r,a,o];cn(e)||u.push(e=un(e)),Hn(t,!1,a,e,c);const h=i(r,o,c.subarray(0,c.length-n));return u.push(h),c.set(h,e.length),hn(...u),c},decrypt(e){if(Jr(e),e.length<n)throw Error("aes/gcm: ciphertext less than tagLen (16)");const{xk:t,authKey:r,counter:a,tagMask:o}=s(),c=[t,r,o,a];cn(e)||c.push(e=un(e));const u=e.subarray(0,-16),h=e.subarray(-16),l=i(r,o,u);if(c.push(l),!sn(l,h))throw Error("aes/gcm: invalid ghash tag");const y=Hn(t,!1,a,u);return hn(...c),y}}}));function jn(e){return null!=e&&"object"==typeof e&&(e instanceof Uint32Array||"Uint32Array"===e.constructor.name)}function Vn(e,t){if(Jr(t,16),!jn(e))throw Error("_encryptBlock accepts result of expandKeyLE");const r=tn(t);let{s0:n,s1:i,s2:s,s3:a}=Ln(e,r[0],r[1],r[2],r[3]);return r[0]=n,r[1]=i,r[2]=s,r[3]=a,t}function Yn(e,t){if(Jr(t,16),!jn(e))throw Error("_decryptBlock accepts result of expandKeyLE");const r=tn(t);let{s0:n,s1:i,s2:s,s3:a}=Nn(e,r[0],r[1],r[2],r[3]);return r[0]=n,r[1]=i,r[2]=s,r[3]=a,t}const Zn={encrypt(e,t){if(t.length>=2**32)throw Error("plaintext should be less than 4gb");const r=Qn(e);if(16===t.length)Vn(r,t);else{const e=tn(t);let n=e[0],i=e[1];for(let t=0,s=1;t<6;t++)for(let t=2;t<e.length;t+=2,s++){const{s0:a,s1:o,s2:c,s3:u}=Ln(r,n,i,e[t],e[t+1]);n=a,i=o^Cn(s),e[t]=c,e[t+1]=u}e[0]=n,e[1]=i}r.fill(0)},decrypt(e,t){if(t.length-8>=2**32)throw Error("ciphertext should be less than 4gb");const r=Rn(e),n=t.length/8-1;if(1===n)Yn(r,t);else{const e=tn(t);let i=e[0],s=e[1];for(let t=0,a=6*n;t<6;t++)for(let t=2*n;t>=1;t-=2,a--){s^=Cn(a);const{s0:n,s1:o,s2:c,s3:u}=Nn(r,i,s,e[t],e[t+1]);i=n,s=o,e[t]=c,e[t+1]=u}e[0]=i,e[1]=s}r.fill(0)}},Wn=new Uint8Array(8).fill(166),Jn=an({blockSize:8},(e=>({encrypt(t){if(Jr(t),!t.length||t.length%8!=0)throw Error("invalid plaintext length");if(8===t.length)throw Error("8-byte keys not allowed in AESKW, use AESKWP instead");const r=function(...e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];Jr(n),t+=n.length}const r=new Uint8Array(t);for(let t=0,n=0;t<e.length;t++){const i=e[t];r.set(i,n),n+=i.length}return r}(Wn,t);return Zn.encrypt(e,r),r},decrypt(t){if(Jr(t),t.length%8!=0||t.length<24)throw Error("invalid ciphertext length");const r=un(t);if(Zn.decrypt(e,r),!sn(r.subarray(0,8),Wn))throw Error("integrity check failed");return r.subarray(0,8).fill(0),r.subarray(8)}}))),Xn={expandKeyLE:Qn,expandKeyDecLE:Rn,encrypt:Ln,decrypt:Nn,encryptBlock:Vn,decryptBlock:Yn,ctrCounter:On,ctr32:Hn};async function $n(e){switch(e){case Q.symmetric.aes128:case Q.symmetric.aes192:case Q.symmetric.aes256:throw Error("Not a legacy cipher");case Q.symmetric.cast5:case Q.symmetric.blowfish:case Q.symmetric.twofish:case Q.symmetric.tripledes:{const{legacyCiphers:t}=await Promise.resolve().then((function(){return Hf})),r=Q.read(Q.symmetric,e),n=t.get(r);if(!n)throw Error("Unsupported cipher algorithm");return n}default:throw Error("Unsupported cipher algorithm")}}function ei(e){switch(e){case Q.symmetric.aes128:case Q.symmetric.aes192:case Q.symmetric.aes256:case Q.symmetric.twofish:return 16;case Q.symmetric.blowfish:case Q.symmetric.cast5:case Q.symmetric.tripledes:return 8;default:throw Error("Unsupported cipher")}}function ti(e){switch(e){case Q.symmetric.aes128:case Q.symmetric.blowfish:case Q.symmetric.cast5:return 16;case Q.symmetric.aes192:case Q.symmetric.tripledes:return 24;case Q.symmetric.aes256:case Q.symmetric.twofish:return 32;default:throw Error("Unsupported cipher")}}function ri(e){return{keySize:ti(e),blockSize:ei(e)}}const ni=M.getWebCrypto();async function ii(e,t,r){const{keySize:n}=ri(e);if(!M.isAES(e)||t.length!==n)throw Error("Unexpected algorithm or key size");try{const e=await ni.importKey("raw",t,{name:"AES-KW"},!1,["wrapKey"]),n=await ni.importKey("raw",r,{name:"HMAC",hash:"SHA-256"},!0,["sign"]),i=await ni.wrapKey("raw",n,e,{name:"AES-KW"});return new Uint8Array(i)}catch(e){if("NotSupportedError"!==e.name&&(24!==t.length||"OperationError"!==e.name))throw e;M.printDebugError("Browser did not support operation: "+e.message)}return Jn(t).encrypt(r)}async function si(e,t,r){const{keySize:n}=ri(e);if(!M.isAES(e)||t.length!==n)throw Error("Unexpected algorithm or key size");let i;try{i=await ni.importKey("raw",t,{name:"AES-KW"},!1,["unwrapKey"])}catch(e){if("NotSupportedError"!==e.name&&(24!==t.length||"OperationError"!==e.name))throw e;return M.printDebugError("Browser did not support operation: "+e.message),Jn(t).decrypt(r)}try{const e=await ni.unwrapKey("raw",r,i,{name:"AES-KW"},{name:"HMAC",hash:"SHA-256"},!0,["sign"]);return new Uint8Array(await ni.exportKey("raw",e))}catch(e){if("OperationError"===e.name)throw Error("Key Data Integrity failed");throw e}}const ai=M.getWebCrypto();async function oi(e,t,r,n,i){const s=Q.read(Q.webHash,e);if(!s)throw Error("Hash algo not supported with HKDF");const a=await ai.importKey("raw",t,"HKDF",!1,["deriveBits"]),o=await ai.deriveBits({name:"HKDF",hash:s,salt:r,info:n},a,8*i);return new Uint8Array(o)}const ci={x25519:M.encodeUTF8("OpenPGP X25519"),x448:M.encodeUTF8("OpenPGP X448")};async function ui(e){switch(e){case Q.publicKey.x25519:try{const e=M.getWebCrypto(),t=await e.generateKey("X25519",!0,["deriveKey","deriveBits"]).catch((e=>{if("OperationError"===e.name){const e=Error("Unexpected key generation issue");throw e.name="NotSupportedError",e}throw e})),r=await e.exportKey("jwk",t.privateKey),n=await e.exportKey("jwk",t.publicKey);if(r.x!==n.x){const e=Error("Unexpected mismatching public point");throw e.name="NotSupportedError",e}return{A:new Uint8Array(_(n.x)),k:_(r.d)}}catch(e){if("NotSupportedError"!==e.name)throw e;const t=ye(32),{publicKey:r}=We.box.keyPair.fromSecretKey(t);return{A:r,k:t}}case Q.publicKey.x448:{const e=await M.getNobleCurve(Q.publicKey.x448),t=e.utils.randomPrivateKey();return{A:e.getPublicKey(t),k:t}}default:throw Error("Unsupported ECDH algorithm")}}async function hi(e,t,r){switch(e){case Q.publicKey.x25519:{const{publicKey:e}=We.box.keyPair.fromSecretKey(r);return M.equalsUint8Array(t,e)}case Q.publicKey.x448:{const e=(await M.getNobleCurve(Q.publicKey.x448)).getPublicKey(r);return M.equalsUint8Array(t,e)}default:return!1}}async function li(e,t,r){const{ephemeralPublicKey:n,sharedSecret:i}=await pi(e,r),s=M.concatUint8Array([n,r,i]);switch(e){case Q.publicKey.x25519:{const e=Q.symmetric.aes128,{keySize:r}=ri(e),i=await oi(Q.hash.sha256,s,new Uint8Array,ci.x25519,r);return{ephemeralPublicKey:n,wrappedKey:await ii(e,i,t)}}case Q.publicKey.x448:{const e=Q.symmetric.aes256,{keySize:r}=ri(Q.symmetric.aes256),i=await oi(Q.hash.sha512,s,new Uint8Array,ci.x448,r);return{ephemeralPublicKey:n,wrappedKey:await ii(e,i,t)}}default:throw Error("Unsupported ECDH algorithm")}}async function yi(e,t,r,n,i){const s=await gi(e,t,n,i),a=M.concatUint8Array([t,n,s]);switch(e){case Q.publicKey.x25519:{const e=Q.symmetric.aes128,{keySize:t}=ri(e);return si(e,await oi(Q.hash.sha256,a,new Uint8Array,ci.x25519,t),r)}case Q.publicKey.x448:{const e=Q.symmetric.aes256,{keySize:t}=ri(Q.symmetric.aes256);return si(e,await oi(Q.hash.sha512,a,new Uint8Array,ci.x448,t),r)}default:throw Error("Unsupported ECDH algorithm")}}function fi(e){switch(e){case Q.publicKey.x25519:return 32;case Q.publicKey.x448:return 56;default:throw Error("Unsupported ECDH algorithm")}}async function pi(e,t){switch(e){case Q.publicKey.x25519:try{const r=M.getWebCrypto(),n=await r.generateKey("X25519",!0,["deriveKey","deriveBits"]).catch((e=>{if("OperationError"===e.name){const e=Error("Unexpected key generation issue");throw e.name="NotSupportedError",e}throw e})),i=await r.exportKey("jwk",n.publicKey);if((await r.exportKey("jwk",n.privateKey)).x!==i.x){const e=Error("Unexpected mismatching public point");throw e.name="NotSupportedError",e}const s=Ai(e,t),a=await r.importKey("jwk",s,"X25519",!1,[]),o=await r.deriveBits({name:"X25519",public:a},n.privateKey,8*fi(e));return{sharedSecret:new Uint8Array(o),ephemeralPublicKey:new Uint8Array(_(i.x))}}catch(r){if("NotSupportedError"!==r.name)throw r;const n=ye(fi(e)),i=We.scalarMult(n,t);di(i);const{publicKey:s}=We.box.keyPair.fromSecretKey(n);return{ephemeralPublicKey:s,sharedSecret:i}}case Q.publicKey.x448:{const e=await M.getNobleCurve(Q.publicKey.x448),r=e.utils.randomPrivateKey(),n=e.getSharedSecret(r,t);di(n);return{ephemeralPublicKey:e.getPublicKey(r),sharedSecret:n}}default:throw Error("Unsupported ECDH algorithm")}}async function gi(e,t,r,n){switch(e){case Q.publicKey.x25519:try{const i=M.getWebCrypto(),s=function(e,t,r){if(e===Q.publicKey.x25519){const n=Ai(e,t);return n.d=z(r),n}throw Error("Unsupported ECDH algorithm")}(e,r,n),a=Ai(e,t),o=await i.importKey("jwk",s,"X25519",!1,["deriveKey","deriveBits"]),c=await i.importKey("jwk",a,"X25519",!1,[]),u=await i.deriveBits({name:"X25519",public:c},o,8*fi(e));return new Uint8Array(u)}catch(e){if("NotSupportedError"!==e.name)throw e;const r=We.scalarMult(n,t);return di(r),r}case Q.publicKey.x448:{const e=(await M.getNobleCurve(Q.publicKey.x448)).getSharedSecret(n,t);return di(e),e}default:throw Error("Unsupported ECDH algorithm")}}function di(e){let t=0;for(let r=0;r<e.length;r++)t|=e[r];if(0===t)throw Error("Unexpected low order point")}function Ai(e,t){if(e===Q.publicKey.x25519){return{kty:"OKP",crv:"X25519",x:z(t),ext:!0}}throw Error("Unsupported ECDH algorithm")}var wi=/*#__PURE__*/Object.freeze({__proto__:null,decrypt:yi,encrypt:li,generate:ui,generateEphemeralEncryptionMaterial:pi,getPayloadSize:fi,recomputeSharedSecret:gi,validateParams:hi});const mi=M.getWebCrypto(),bi=M.getNodeCrypto(),ki={[Q.curve.nistP256]:"P-256",[Q.curve.nistP384]:"P-384",[Q.curve.nistP521]:"P-521"},Ei=bi?bi.getCurves():[],vi=bi?{[Q.curve.secp256k1]:Ei.includes("secp256k1")?"secp256k1":void 0,[Q.curve.nistP256]:Ei.includes("prime256v1")?"prime256v1":void 0,[Q.curve.nistP384]:Ei.includes("secp384r1")?"secp384r1":void 0,[Q.curve.nistP521]:Ei.includes("secp521r1")?"secp521r1":void 0,[Q.curve.ed25519Legacy]:Ei.includes("ED25519")?"ED25519":void 0,[Q.curve.curve25519Legacy]:Ei.includes("X25519")?"X25519":void 0,[Q.curve.brainpoolP256r1]:Ei.includes("brainpoolP256r1")?"brainpoolP256r1":void 0,[Q.curve.brainpoolP384r1]:Ei.includes("brainpoolP384r1")?"brainpoolP384r1":void 0,[Q.curve.brainpoolP512r1]:Ei.includes("brainpoolP512r1")?"brainpoolP512r1":void 0}:{},Bi={[Q.curve.nistP256]:{oid:[6,8,42,134,72,206,61,3,1,7],keyType:Q.publicKey.ecdsa,hash:Q.hash.sha256,cipher:Q.symmetric.aes128,node:vi[Q.curve.nistP256],web:ki[Q.curve.nistP256],payloadSize:32,sharedSize:256,wireFormatLeadingByte:4},[Q.curve.nistP384]:{oid:[6,5,43,129,4,0,34],keyType:Q.publicKey.ecdsa,hash:Q.hash.sha384,cipher:Q.symmetric.aes192,node:vi[Q.curve.nistP384],web:ki[Q.curve.nistP384],payloadSize:48,sharedSize:384,wireFormatLeadingByte:4},[Q.curve.nistP521]:{oid:[6,5,43,129,4,0,35],keyType:Q.publicKey.ecdsa,hash:Q.hash.sha512,cipher:Q.symmetric.aes256,node:vi[Q.curve.nistP521],web:ki[Q.curve.nistP521],payloadSize:66,sharedSize:528,wireFormatLeadingByte:4},[Q.curve.secp256k1]:{oid:[6,5,43,129,4,0,10],keyType:Q.publicKey.ecdsa,hash:Q.hash.sha256,cipher:Q.symmetric.aes128,node:vi[Q.curve.secp256k1],payloadSize:32,wireFormatLeadingByte:4},[Q.curve.ed25519Legacy]:{oid:[6,9,43,6,1,4,1,218,71,15,1],keyType:Q.publicKey.eddsaLegacy,hash:Q.hash.sha512,node:!1,payloadSize:32,wireFormatLeadingByte:64},[Q.curve.curve25519Legacy]:{oid:[6,10,43,6,1,4,1,151,85,1,5,1],keyType:Q.publicKey.ecdh,hash:Q.hash.sha256,cipher:Q.symmetric.aes128,node:!1,payloadSize:32,wireFormatLeadingByte:64},[Q.curve.brainpoolP256r1]:{oid:[6,9,43,36,3,3,2,8,1,1,7],keyType:Q.publicKey.ecdsa,hash:Q.hash.sha256,cipher:Q.symmetric.aes128,node:vi[Q.curve.brainpoolP256r1],payloadSize:32,wireFormatLeadingByte:4},[Q.curve.brainpoolP384r1]:{oid:[6,9,43,36,3,3,2,8,1,1,11],keyType:Q.publicKey.ecdsa,hash:Q.hash.sha384,cipher:Q.symmetric.aes192,node:vi[Q.curve.brainpoolP384r1],payloadSize:48,wireFormatLeadingByte:4},[Q.curve.brainpoolP512r1]:{oid:[6,9,43,36,3,3,2,8,1,1,13],keyType:Q.publicKey.ecdsa,hash:Q.hash.sha512,cipher:Q.symmetric.aes256,node:vi[Q.curve.brainpoolP512r1],payloadSize:64,wireFormatLeadingByte:4}};class Si{constructor(e){try{this.name=e instanceof Ot?e.getName():Q.write(Q.curve,e)}catch(e){throw new Yt("Unknown curve")}const t=Bi[this.name];this.keyType=t.keyType,this.oid=t.oid,this.hash=t.hash,this.cipher=t.cipher,this.node=t.node,this.web=t.web,this.payloadSize=t.payloadSize,this.sharedSize=t.sharedSize,this.wireFormatLeadingByte=t.wireFormatLeadingByte,this.web&&M.getWebCrypto()?this.type="web":this.node&&M.getNodeCrypto()?this.type="node":this.name===Q.curve.curve25519Legacy?this.type="curve25519Legacy":this.name===Q.curve.ed25519Legacy&&(this.type="ed25519Legacy")}async genKeyPair(){switch(this.type){case"web":try{return await async function(e,t){const r=await mi.generateKey({name:"ECDSA",namedCurve:ki[e]},!0,["sign","verify"]),n=await mi.exportKey("jwk",r.privateKey);return{publicKey:Di(await mi.exportKey("jwk",r.publicKey),t),privateKey:_(n.d)}}(this.name,this.wireFormatLeadingByte)}catch(e){return M.printDebugError("Browser did not support generating ec key "+e.message),Pi(this.name)}case"node":return async function(e){const t=bi.createECDH(vi[e]);return await t.generateKeys(),{publicKey:new Uint8Array(t.getPublicKey()),privateKey:new Uint8Array(t.getPrivateKey())}}(this.name);case"curve25519Legacy":{const{k:e,A:t}=await ui(Q.publicKey.x25519),r=e.slice().reverse();r[0]=127&r[0]|64,r[31]&=248;return{publicKey:M.concatUint8Array([new Uint8Array([this.wireFormatLeadingByte]),t]),privateKey:r}}case"ed25519Legacy":{const{seed:e,A:t}=await Hr(Q.publicKey.ed25519);return{publicKey:M.concatUint8Array([new Uint8Array([this.wireFormatLeadingByte]),t]),privateKey:e}}default:return Pi(this.name)}}}async function Ii(e){const t=new Si(e),{oid:r,hash:n,cipher:i}=t,s=await t.genKeyPair();return{oid:r,Q:s.publicKey,secret:M.leftPad(s.privateKey,t.payloadSize),hash:n,cipher:i}}function Ki(e){return Bi[e.getName()].hash}async function Ci(e,t,r,n){const i={[Q.curve.nistP256]:!0,[Q.curve.nistP384]:!0,[Q.curve.nistP521]:!0,[Q.curve.secp256k1]:!0,[Q.curve.curve25519Legacy]:e===Q.publicKey.ecdh,[Q.curve.brainpoolP256r1]:!0,[Q.curve.brainpoolP384r1]:!0,[Q.curve.brainpoolP512r1]:!0},s=t.getName();if(!i[s])return!1;if(s===Q.curve.curve25519Legacy){n=n.slice().reverse();const{publicKey:e}=We.box.keyPair.fromSecretKey(n);r=new Uint8Array(r);const t=new Uint8Array([64,...e]);return!!M.equalsUint8Array(t,r)}const a=(await M.getNobleCurve(Q.publicKey.ecdsa,s)).getPublicKey(n,!1);return!!M.equalsUint8Array(a,r)}function Ui(e,t){const{payloadSize:r,wireFormatLeadingByte:n,name:i}=e,s=i===Q.curve.curve25519Legacy||i===Q.curve.ed25519Legacy?r:2*r;if(t[0]!==n||t.length!==s+1)throw Error("Invalid point encoding")}async function Pi(e){const t=await M.getNobleCurve(Q.publicKey.ecdsa,e),r=t.utils.randomPrivateKey();return{publicKey:t.getPublicKey(r,!1),privateKey:r}}function Di(e,t){const r=_(e.x),n=_(e.y),i=new Uint8Array(r.length+n.length+1);return i[0]=t,i.set(r,1),i.set(n,r.length+1),i}function xi(e,t,r){const n=e,i=r.slice(1,n+1),s=r.slice(n+1,2*n+1);return{kty:"EC",crv:t,x:z(i),y:z(s),ext:!0}}function Qi(e,t,r,n){const i=xi(e,t,r);return i.d=z(n),i}const Ri=M.getWebCrypto(),Ti=M.getNodeCrypto();async function Mi(e,t,r,n,i,s){const a=new Si(e);if(Ui(a,n),r&&!M.isStream(r)){const e={publicKey:n,privateKey:i};switch(a.type){case"web":try{return await async function(e,t,r,n){const i=e.payloadSize,s=Qi(e.payloadSize,ki[e.name],n.publicKey,n.privateKey),a=await Ri.importKey("jwk",s,{name:"ECDSA",namedCurve:ki[e.name],hash:{name:Q.read(Q.webHash,e.hash)}},!1,["sign"]),o=new Uint8Array(await Ri.sign({name:"ECDSA",namedCurve:ki[e.name],hash:{name:Q.read(Q.webHash,t)}},a,r));return{r:o.slice(0,i),s:o.slice(i,i<<1)}}(a,t,r,e)}catch(e){if("nistP521"!==a.name&&("DataError"===e.name||"OperationError"===e.name))throw e;M.printDebugError("Browser did not support signing: "+e.message)}break;case"node":return async function(e,t,r,n){const i=M.nodeRequire("eckey-utils"),s=M.getNodeBuffer(),{privateKey:a}=i.generateDer({curveName:vi[e.name],privateKey:s.from(n)}),o=Ti.createSign(Q.read(Q.hash,t));o.write(r),o.end();const c=new Uint8Array(o.sign({key:a,format:"der",type:"sec1",dsaEncoding:"ieee-p1363"})),u=e.payloadSize;return{r:c.subarray(0,u),s:c.subarray(u,u<<1)}}(a,t,r,i)}}const o=(await M.getNobleCurve(Q.publicKey.ecdsa,a.name)).sign(s,i,{lowS:!1});return{r:he(o.r,"be",a.payloadSize),s:he(o.s,"be",a.payloadSize)}}async function Li(e,t,r,n,i,s){const a=new Si(e);Ui(a,i);const o=async()=>0===s[0]&&Ni(a,r,s.subarray(1),i);if(n&&!M.isStream(n))switch(a.type){case"web":try{const e=await async function(e,t,{r,s:n},i,s){const a=xi(e.payloadSize,ki[e.name],s),o=await Ri.importKey("jwk",a,{name:"ECDSA",namedCurve:ki[e.name],hash:{name:Q.read(Q.webHash,e.hash)}},!1,["verify"]),c=M.concatUint8Array([r,n]).buffer;return Ri.verify({name:"ECDSA",namedCurve:ki[e.name],hash:{name:Q.read(Q.webHash,t)}},o,c,i)}(a,t,r,n,i);return e||o()}catch(e){if("nistP521"!==a.name&&("DataError"===e.name||"OperationError"===e.name))throw e;M.printDebugError("Browser did not support verifying: "+e.message)}break;case"node":{const e=await async function(e,t,{r,s:n},i,s){const a=M.nodeRequire("eckey-utils"),o=M.getNodeBuffer(),{publicKey:c}=a.generateDer({curveName:vi[e.name],publicKey:o.from(s)}),u=Ti.createVerify(Q.read(Q.hash,t));u.write(i),u.end();const h=M.concatUint8Array([r,n]);try{return u.verify({key:c,format:"der",type:"spki",dsaEncoding:"ieee-p1363"},h)}catch(e){return!1}}(a,t,r,n,i);return e||o()}}return await Ni(a,r,s,i)||o()}async function Ni(e,t,r,n){return(await M.getNobleCurve(Q.publicKey.ecdsa,e.name)).verify(M.concatUint8Array([t.r,t.s]),r,n,{lowS:!1})}var Fi=/*#__PURE__*/Object.freeze({__proto__:null,sign:Mi,validateParams:async function(e,t,r){const n=new Si(e);if(n.keyType!==Q.publicKey.ecdsa)return!1;switch(n.type){case"web":case"node":{const n=ye(8),i=Q.hash.sha256,s=await xe(i,n);try{const a=await Mi(e,i,n,t,r,s);return await Li(e,i,a,n,t,s)}catch(e){return!1}}default:return Ci(Q.publicKey.ecdsa,e,t,r)}},verify:Li});async function Oi(e,t,r,n,i,s){Ui(new Si(e),n);const{RS:a}=await _r(Q.publicKey.ed25519,0,0,n.subarray(1),i,s);return{r:a.subarray(0,32),s:a.subarray(32)}}async function Hi(e,t,{r,s:n},i,s,a){Ui(new Si(e),s);const o=M.concatUint8Array([r,n]);return zr(Q.publicKey.ed25519,0,{RS:o},0,s.subarray(1),a)}async function _i(e,t,r){if(e.getName()!==Q.curve.ed25519Legacy)return!1;const{publicKey:n}=We.sign.keyPair.fromSeed(r),i=new Uint8Array([64,...n]);return M.equalsUint8Array(t,i)}var zi=/*#__PURE__*/Object.freeze({__proto__:null,sign:Oi,validateParams:_i,verify:Hi});function Gi(e){const t=e.length;if(t>0){const r=e[t-1];if(r>=1){const n=e.subarray(t-r),i=new Uint8Array(r).fill(r);if(M.equalsUint8Array(n,i))return e.subarray(0,t-r)}}throw Error("Invalid padding")}const qi=M.getWebCrypto(),ji=M.getNodeCrypto();function Vi(e,t,r,n){return M.concatUint8Array([t.write(),new Uint8Array([e]),r.write(!0),M.stringToUint8Array("Anonymous Sender "),r.replacementFingerprint||n])}async function Yi(e,t,r,n,i=!1,s=!1){let a;if(i){for(a=0;a<t.length&&0===t[a];a++);t=t.subarray(a)}if(s){for(a=t.length-1;a>=0&&0===t[a];a--);t=t.subarray(0,a+1)}return(await xe(e,M.concatUint8Array([new Uint8Array([0,0,0,1]),t,n]))).subarray(0,r)}async function Zi(e,t){switch(e.type){case"curve25519Legacy":{const{sharedSecret:r,ephemeralPublicKey:n}=await pi(Q.publicKey.x25519,t.subarray(1));return{publicKey:M.concatUint8Array([new Uint8Array([e.wireFormatLeadingByte]),n]),sharedKey:r}}case"web":if(e.web&&M.getWebCrypto())try{return await async function(e,t){const r=xi(e.payloadSize,e.web,t);let n=qi.generateKey({name:"ECDH",namedCurve:e.web},!0,["deriveKey","deriveBits"]),i=qi.importKey("jwk",r,{name:"ECDH",namedCurve:e.web},!1,[]);[n,i]=await Promise.all([n,i]);let s=qi.deriveBits({name:"ECDH",namedCurve:e.web,public:i},n.privateKey,e.sharedSize),a=qi.exportKey("jwk",n.publicKey);[s,a]=await Promise.all([s,a]);const o=new Uint8Array(s),c=new Uint8Array(Di(a,e.wireFormatLeadingByte));return{publicKey:c,sharedKey:o}}(e,t)}catch(r){return M.printDebugError(r),es(e,t)}break;case"node":return async function(e,t){const r=ji.createECDH(e.node);r.generateKeys();const n=new Uint8Array(r.computeSecret(t));return{publicKey:new Uint8Array(r.getPublicKey()),sharedKey:n}}(e,t);default:return es(e,t)}}async function Wi(e,t,r,n,i){const s=function(e){const t=8-e.length%8,r=new Uint8Array(e.length+t).fill(t);return r.set(e),r}(r),a=new Si(e);Ui(a,n);const{publicKey:o,sharedKey:c}=await Zi(a,n),u=Vi(Q.publicKey.ecdh,e,t,i),{keySize:h}=ri(t.cipher),l=await Yi(t.hash,c,h,u);return{publicKey:o,wrappedKey:await ii(t.cipher,l,s)}}async function Ji(e,t,r,n){if(n.length!==e.payloadSize){const t=new Uint8Array(e.payloadSize);t.set(n,e.payloadSize-n.length),n=t}switch(e.type){case"curve25519Legacy":{const e=n.slice().reverse();return{secretKey:e,sharedKey:await gi(Q.publicKey.x25519,t.subarray(1),r.subarray(1),e)}}case"web":if(e.web&&M.getWebCrypto())try{return await async function(e,t,r,n){const i=Qi(e.payloadSize,e.web,r,n);let s=qi.importKey("jwk",i,{name:"ECDH",namedCurve:e.web},!0,["deriveKey","deriveBits"]);const a=xi(e.payloadSize,e.web,t);let o=qi.importKey("jwk",a,{name:"ECDH",namedCurve:e.web},!0,[]);[s,o]=await Promise.all([s,o]);let c=qi.deriveBits({name:"ECDH",namedCurve:e.web,public:o},s,e.sharedSize),u=qi.exportKey("jwk",s);[c,u]=await Promise.all([c,u]);const h=new Uint8Array(c);return{secretKey:_(u.d),sharedKey:h}}(e,t,r,n)}catch(r){return M.printDebugError(r),$i(e,t,n)}break;case"node":return async function(e,t,r){const n=ji.createECDH(e.node);n.setPrivateKey(r);const i=new Uint8Array(n.computeSecret(t));return{secretKey:new Uint8Array(n.getPrivateKey()),sharedKey:i}}(e,t,n);default:return $i(e,t,n)}}async function Xi(e,t,r,n,i,s,a){const o=new Si(e);Ui(o,i),Ui(o,r);const{sharedKey:c}=await Ji(o,r,i,s),u=Vi(Q.publicKey.ecdh,e,t,a),{keySize:h}=ri(t.cipher);let l;for(let e=0;e<3;e++)try{const r=await Yi(t.hash,c,h,u,1===e,2===e);return Gi(await si(t.cipher,r,n))}catch(e){l=e}throw l}async function $i(e,t,r){return{secretKey:r,sharedKey:(await M.getNobleCurve(Q.publicKey.ecdh,e.name)).getSharedSecret(r,t).subarray(1)}}async function es(e,t){const r=await M.getNobleCurve(Q.publicKey.ecdh,e.name),{publicKey:n,privateKey:i}=await e.genKeyPair();return{publicKey:n,sharedKey:r.getSharedSecret(i,t).subarray(1)}}var ts=/*#__PURE__*/Object.freeze({__proto__:null,decrypt:Xi,encrypt:Wi,validateParams:async function(e,t,r){return Ci(Q.publicKey.ecdh,e,t,r)}}),rs=/*#__PURE__*/Object.freeze({__proto__:null,CurveWithOID:Si,ecdh:ts,ecdhX:wi,ecdsa:Fi,eddsa:Zr,eddsaLegacy:zi,generate:Ii,getPreferredHashAlgo:Ki});const ns=BigInt(0),is=BigInt(1);const ss=new Set([Q.hash.sha1,Q.hash.sha256,Q.hash.sha512]),as=M.getWebCrypto(),os=M.getNodeCrypto();async function cs(e,t){if(e===Q.publicKey.pqc_mlkem_x25519){const{ml_kem768:e}=await Promise.resolve().then((function(){return Mp})),{publicKey:r,secretKey:n}=e.keygen(t);return{mlkemPublicKey:r,mlkemSecretKey:n}}throw Error("Unsupported KEM algorithm")}async function us(e){const{eccPublicKey:t,eccSecretKey:r}=await async function(e){if(e===Q.publicKey.pqc_mlkem_x25519){const{A:e,k:t}=await ui(Q.publicKey.x25519);return{eccPublicKey:e,eccSecretKey:t}}throw Error("Unsupported KEM algorithm")}(e),{mlkemPublicKey:n,mlkemSeed:i,mlkemSecretKey:s}=await async function(e){if(e===Q.publicKey.pqc_mlkem_x25519){const t=ye(64),{mlkemSecretKey:r,mlkemPublicKey:n}=await cs(e,t);return{mlkemSeed:t,mlkemSecretKey:r,mlkemPublicKey:n}}throw Error("Unsupported KEM algorithm")}(e);return{eccPublicKey:t,eccSecretKey:r,mlkemPublicKey:n,mlkemSeed:i,mlkemSecretKey:s}}async function hs(e,t,r,n){const{eccKeyShare:i,eccCipherText:s}=await async function(e,t){if(e===Q.publicKey.pqc_mlkem_x25519){const{ephemeralPublicKey:e,sharedSecret:r}=await pi(Q.publicKey.x25519,t);return{eccCipherText:e,eccKeyShare:r}}throw Error("Unsupported KEM algorithm")}(e,t),{mlkemKeyShare:a,mlkemCipherText:o}=await async function(e,t){if(e===Q.publicKey.pqc_mlkem_x25519){const{ml_kem768:e}=await Promise.resolve().then((function(){return Mp})),{cipherText:r,sharedSecret:n}=e.encapsulate(t);return{mlkemCipherText:r,mlkemKeyShare:n}}throw Error("Unsupported KEM algorithm")}(e,r),c=await ys(e,a,i,s,t);return{eccCipherText:s,mlkemCipherText:o,wrappedKey:await ii(Q.symmetric.aes256,c,n)}}async function ls(e,t,r,n,i,s,a,o){const c=await async function(e,t,r,n){if(e===Q.publicKey.pqc_mlkem_x25519)return await gi(Q.publicKey.x25519,t,n,r);throw Error("Unsupported KEM algorithm")}(e,t,n,i),u=await async function(e,t,r){if(e===Q.publicKey.pqc_mlkem_x25519){const{ml_kem768:e}=await Promise.resolve().then((function(){return Mp}));return e.decapsulate(t,r)}throw Error("Unsupported KEM algorithm")}(e,r,s),h=await ys(e,u,c,t,i);return await si(Q.symmetric.aes256,h,o)}async function ys(e,t,r,n,i){const s=M.encodeUTF8("OpenPGPCompositeKDFv1"),a=M.concatUint8Array([t,r,n,i,new Uint8Array([e]),s,new Uint8Array([s.length])]);return await xe(Q.hash.sha3_256,a)}async function fs(e,t,r,n,i){const s=async function(e,t,r){if(e===Q.publicKey.pqc_mlkem_x25519)return hi(Q.publicKey.x25519,t,r);throw Error("Unsupported KEM algorithm")}(e,t,r),a=async function(e,t,r){if(e===Q.publicKey.pqc_mlkem_x25519){const{mlkemPublicKey:n}=await cs(e,r);return M.equalsUint8Array(t,n)}throw Error("Unsupported KEM algorithm")}(e,n,i);return await s&&await a}async function ps(e,t){if(e===Q.publicKey.pqc_mldsa_ed25519){const{ml_dsa65:e}=await Promise.resolve().then((function(){return Mp})),{secretKey:r,publicKey:n}=e.keygen(t);return{mldsaSecretKey:r,mldsaPublicKey:n}}throw Error("Unsupported signature algorithm")}async function gs(e){if(e===Q.publicKey.pqc_mldsa_ed25519){const{eccSecretKey:t,eccPublicKey:r}=await async function(e){if(e===Q.publicKey.pqc_mldsa_ed25519){const{A:e,seed:t}=await Hr(Q.publicKey.ed25519);return{eccPublicKey:e,eccSecretKey:t}}throw Error("Unsupported signature algorithm")}(e),{mldsaSeed:n,mldsaSecretKey:i,mldsaPublicKey:s}=await async function(e){if(e===Q.publicKey.pqc_mldsa_ed25519){const t=ye(32),{mldsaSecretKey:r,mldsaPublicKey:n}=await ps(e,t);return{mldsaSeed:t,mldsaSecretKey:r,mldsaPublicKey:n}}throw Error("Unsupported signature algorithm")}(e);return{eccSecretKey:t,eccPublicKey:r,mldsaSeed:n,mldsaSecretKey:i,mldsaPublicKey:s}}throw Error("Unsupported signature algorithm")}async function ds(e,t,r,n,i,s){if(e===Q.publicKey.pqc_mldsa_ed25519){const{eccSignature:t}=await async function(e,t,r,n,i){if(e===Q.publicKey.pqc_mldsa_ed25519){const{RS:e}=await _r(Q.publicKey.ed25519,0,0,n,r,i);return{eccSignature:e}}throw Error("Unsupported signature algorithm")}(e,0,r,n,s),{mldsaSignature:a}=await async function(e,t,r){if(e===Q.publicKey.pqc_mldsa_ed25519){const{ml_dsa65:e}=await Promise.resolve().then((function(){return Mp}));return{mldsaSignature:e.sign(t,r)}}throw Error("Unsupported signature algorithm")}(e,i,s);return{eccSignature:t,mldsaSignature:a}}throw Error("Unsupported signature algorithm")}async function As(e,t,r,n,i,{eccSignature:s,mldsaSignature:a}){if(e===Q.publicKey.pqc_mldsa_ed25519){const t=async function(e,t,r,n,i){if(e===Q.publicKey.pqc_mldsa_ed25519)return zr(Q.publicKey.ed25519,0,{RS:i},0,r,n);throw Error("Unsupported signature algorithm")}(e,0,r,i,s),o=async function(e,t,r,n){if(e===Q.publicKey.pqc_mldsa_ed25519){const{ml_dsa65:e}=await Promise.resolve().then((function(){return Mp}));return e.verify(t,r,n)}throw Error("Unsupported signature algorithm")}(e,n,i,a);return await t&&await o}throw Error("Unsupported signature algorithm")}function ws(e,t){if(e===Q.publicKey.pqc_mldsa_ed25519)return Qe(t)>=32;throw Error("Unsupported signature algorithm")}async function ms(e,t,r,n,i){const s=async function(e,t,r){if(e===Q.publicKey.pqc_mldsa_ed25519)return Gr(Q.publicKey.ed25519,t,r);throw Error("Unsupported signature algorithm")}(e,t,r),a=async function(e,t,r){if(e===Q.publicKey.pqc_mldsa_ed25519){const{mldsaPublicKey:n}=await ps(e,r);return M.equalsUint8Array(t,n)}throw Error("Unsupported signature algorithm")}(e,n,i);return await s&&await a}class bs{constructor(e){e&&(this.data=e)}read(e){if(e.length>=1){const t=e[0];if(e.length>=1+t)return this.data=e.subarray(1,1+t),1+this.data.length}throw Error("Invalid symmetric key")}write(){return M.concatUint8Array([new Uint8Array([this.data.length]),this.data])}}class ks{constructor(e){if(void 0===e&&(e=new Uint8Array([])),!M.isUint8Array(e))throw Error("data must be in the form of a Uint8Array");this.data=e,this.length=this.data.byteLength}write(){return M.concatUint8Array([new Uint8Array([this.length]),this.data])}read(e){if(e.length>=1){const t=e[0];if(e.length>=t+1)return this.data=e.subarray(1,1+t),this.length=t,1+t}throw Error("Invalid octet string")}}class Es{constructor(e){if(e){const{version:t,hash:r,cipher:n,replacementFingerprint:i}=e;this.version=t||1,this.hash=r,this.cipher=n,this.replacementFingerprint=i}else this.version=null,this.hash=null,this.cipher=null,this.replacementFingerprint=null}read(e){if(e.length<4||1!==e[1]&&255!==e[1])throw new Yt("Cannot read KDFParams");const t=e[0];this.version=e[1],this.hash=e[2],this.cipher=e[3];let r=4;if(255===this.version){const n=t-r+1;this.replacementFingerprint=e.slice(r,r+n),r+=n}return r}write(e){if(!this.version||1===this.version||e)return new Uint8Array([3,1,this.hash,this.cipher]);return M.concatUint8Array([new Uint8Array([3+this.replacementFingerprint.length,this.version,this.hash,this.cipher]),this.replacementFingerprint])}}const vs=e=>class{constructor(e){this.data=void 0===e?null:e}read(t){const r=t[0];return this.data=Q.write(e,r),1}write(){return new Uint8Array([this.data])}getName(){return Q.read(e,this.data)}getValue(){return this.data}},Bs=vs(Q.aead),Ss=vs(Q.symmetric),Is=vs(Q.hash);class Ks{static fromObject({wrappedKey:e,algorithm:t}){const r=new Ks;return r.wrappedKey=e,r.algorithm=t,r}read(e){let t=0,r=e[t++];this.algorithm=r%2?e[t++]:null,r-=r%2,this.wrappedKey=M.readExactSubarray(e,t,t+r),t+=r}write(){return M.concatUint8Array([this.algorithm?new Uint8Array([this.wrappedKey.length+1,this.algorithm]):new Uint8Array([this.wrappedKey.length]),this.wrappedKey])}}const Cs=M.getWebCrypto(),Us=M.getNodeCrypto(),Ps=Us?Us.getCiphers():[],Ds={idea:Ps.includes("idea-cfb")?"idea-cfb":void 0,tripledes:Ps.includes("des-ede3-cfb")?"des-ede3-cfb":void 0,cast5:Ps.includes("cast5-cfb")?"cast5-cfb":void 0,blowfish:Ps.includes("bf-cfb")?"bf-cfb":void 0,aes128:Ps.includes("aes-128-cfb")?"aes-128-cfb":void 0,aes192:Ps.includes("aes-192-cfb")?"aes-192-cfb":void 0,aes256:Ps.includes("aes-256-cfb")?"aes-256-cfb":void 0};async function xs(e){const{blockSize:t}=ri(e),r=await ye(t),n=new Uint8Array([r[r.length-2],r[r.length-1]]);return M.concat([r,n])}async function Qs(e,t,r,n,i){const s=Q.read(Q.symmetric,e);if(M.getNodeCrypto()&&Ds[s])return function(e,t,r,n){const i=Q.read(Q.symmetric,e),s=new Us.createCipheriv(Ds[i],t,n);return b(r,(e=>new Uint8Array(s.update(e))))}(e,t,r,n);if(M.isAES(e))return async function(e,t,r,n){if(Cs&&await Ts.isSupported(e)){const i=new Ts(e,t,n);return M.isStream(r)?b(r,(e=>i.encryptChunk(e)),(()=>i.finish())):i.encrypt(r)}if(M.isStream(r)){const i=new Ms(!0,e,t,n);return b(r,(e=>i.processChunk(e)),(()=>i.finish()))}return Gn(t,n).encrypt(r)}(e,t,r,n);const a=new(await $n(e))(t),o=a.blockSize,c=n.slice();let u=new Uint8Array;const h=e=>{e&&(u=M.concatUint8Array([u,e]));const t=new Uint8Array(u.length);let r,n=0;for(;e?u.length>=o:u.length;){const e=a.encrypt(c);for(r=0;r<o;r++)c[r]=u[r]^e[r],t[n++]=c[r];u=u.subarray(o)}return t.subarray(0,n)};return b(r,h,h)}async function Rs(e,t,r,n){const i=Q.read(Q.symmetric,e);if(Us&&Ds[i])return function(e,t,r,n){const i=Q.read(Q.symmetric,e),s=new Us.createDecipheriv(Ds[i],t,n);return b(r,(e=>new Uint8Array(s.update(e))))}(e,t,r,n);if(M.isAES(e))return async function(e,t,r,n){if(M.isStream(r)){const i=new Ms(!1,e,t,n);return b(r,(e=>i.processChunk(e)),(()=>i.finish()))}return Gn(t,n).decrypt(r)}(e,t,r,n);const s=new(await $n(e))(t),a=s.blockSize;let o=n,c=new Uint8Array;const u=e=>{e&&(c=M.concatUint8Array([c,e]));const t=new Uint8Array(c.length);let r,n=0;for(;e?c.length>=a:c.length;){const e=s.encrypt(o);for(o=c.subarray(0,a),r=0;r<a;r++)t[n++]=o[r]^e[r];c=c.subarray(a)}return t.subarray(0,n)};return b(r,u,u)}class Ts{constructor(e,t,r){const{blockSize:n}=ri(e);this.key=t,this.prevBlock=r,this.nextBlock=new Uint8Array(n),this.i=0,this.blockSize=n,this.zeroBlock=new Uint8Array(this.blockSize)}static async isSupported(e){const{keySize:t}=ri(e);return Cs.importKey("raw",new Uint8Array(t),"aes-cbc",!1,["encrypt"]).then((()=>!0),(()=>!1))}async _runCBC(e,t){const r="AES-CBC";this.keyRef=this.keyRef||await Cs.importKey("raw",this.key,r,!1,["encrypt"]);const n=await Cs.encrypt({name:r,iv:t||this.zeroBlock},this.keyRef,e);return new Uint8Array(n).subarray(0,e.length)}async encryptChunk(e){const t=this.nextBlock.length-this.i,r=e.subarray(0,t);if(this.nextBlock.set(r,this.i),this.i+e.length>=2*this.blockSize){const r=(e.length-t)%this.blockSize,n=M.concatUint8Array([this.nextBlock,e.subarray(t,e.length-r)]),i=M.concatUint8Array([this.prevBlock,n.subarray(0,n.length-this.blockSize)]),s=await this._runCBC(i);return Ls(s,n),this.prevBlock=s.slice(-this.blockSize),r>0&&this.nextBlock.set(e.subarray(-r)),this.i=r,s}let n;if(this.i+=r.length,this.i===this.nextBlock.length){const t=this.nextBlock;n=await this._runCBC(this.prevBlock),Ls(n,t),this.prevBlock=n.slice(),this.i=0;const i=e.subarray(r.length);this.nextBlock.set(i,this.i),this.i+=i.length}else n=new Uint8Array;return n}async finish(){let e;if(0===this.i)e=new Uint8Array;else{this.nextBlock=this.nextBlock.subarray(0,this.i);const t=this.nextBlock,r=await this._runCBC(this.prevBlock);Ls(r,t),e=r.subarray(0,t.length)}return this.clearSensitiveData(),e}clearSensitiveData(){this.nextBlock.fill(0),this.prevBlock.fill(0),this.keyRef=null,this.key=null}async encrypt(e){const t=(await this._runCBC(M.concatUint8Array([new Uint8Array(this.blockSize),e]),this.iv)).subarray(0,e.length);return Ls(t,e),this.clearSensitiveData(),t}}class Ms{constructor(e,t,r,n){this.forEncryption=e;const{blockSize:i}=ri(t);this.key=Xn.expandKeyLE(r),n.byteOffset%4!=0&&(n=n.slice()),this.prevBlock=Ns(n),this.nextBlock=new Uint8Array(i),this.i=0,this.blockSize=i}_runCFB(e){const t=Ns(e),r=new Uint8Array(e.length),n=Ns(r);for(let e=0;e+4<=n.length;e+=4){const{s0:r,s1:i,s2:s,s3:a}=Xn.encrypt(this.key,this.prevBlock[0],this.prevBlock[1],this.prevBlock[2],this.prevBlock[3]);n[e+0]=t[e+0]^r,n[e+1]=t[e+1]^i,n[e+2]=t[e+2]^s,n[e+3]=t[e+3]^a,this.prevBlock=(this.forEncryption?n:t).slice(e,e+4)}return r}async processChunk(e){const t=this.nextBlock.length-this.i,r=e.subarray(0,t);if(this.nextBlock.set(r,this.i),this.i+e.length>=2*this.blockSize){const r=(e.length-t)%this.blockSize,n=M.concatUint8Array([this.nextBlock,e.subarray(t,e.length-r)]),i=this._runCFB(n);return r>0&&this.nextBlock.set(e.subarray(-r)),this.i=r,i}let n;if(this.i+=r.length,this.i===this.nextBlock.length){n=this._runCFB(this.nextBlock),this.i=0;const t=e.subarray(r.length);this.nextBlock.set(t,this.i),this.i+=t.length}else n=new Uint8Array;return n}async finish(){let e;if(0===this.i)e=new Uint8Array;else{e=this._runCFB(this.nextBlock).subarray(0,this.i)}return this.clearSensitiveData(),e}clearSensitiveData(){this.nextBlock.fill(0),this.prevBlock.fill(0),this.key.fill(0)}}function Ls(e,t){const r=Math.min(e.length,t.length);for(let n=0;n<r;n++)e[n]=e[n]^t[n]}const Ns=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4));const Fs=M.getWebCrypto(),Os=M.getNodeCrypto(),Hs=16;function _s(e,t){const r=e.length-Hs;for(let n=0;n<Hs;n++)e[n+r]^=t[n];return e}const zs=new Uint8Array(Hs);async function Gs(e){const t=await qs(e),r=M.double(await t(zs)),n=M.double(r);return async function(e){return(await t(function(e,t,r){if(e.length&&e.length%Hs==0)return _s(e,t);const n=new Uint8Array(e.length+(Hs-e.length%Hs));return n.set(e),n[e.length]=128,_s(n,r)}(e,r,n))).subarray(-Hs)}}async function qs(e){if(M.getNodeCrypto())return async function(t){const r=new Os.createCipheriv("aes-"+8*e.length+"-cbc",e,zs).update(t);return new Uint8Array(r)};if(M.getWebCrypto())try{return e=await Fs.importKey("raw",e,{name:"AES-CBC",length:8*e.length},!1,["encrypt"]),async function(t){const r=await Fs.encrypt({name:"AES-CBC",iv:zs,length:8*Hs},e,t);return new Uint8Array(r).subarray(0,r.byteLength-Hs)}}catch(t){if("NotSupportedError"!==t.name&&(24!==e.length||"OperationError"!==t.name))throw t;M.printDebugError("Browser did not support operation: "+t.message)}return async function(t){return zn(e,zs,{disablePadding:!0}).encrypt(t)}}const js=M.getWebCrypto(),Vs=M.getNodeCrypto(),Ys=M.getNodeBuffer(),Zs=16,Ws=Zs,Js=Zs,Xs=new Uint8Array(Zs),$s=new Uint8Array(Zs);$s[Zs-1]=1;const ea=new Uint8Array(Zs);async function ta(e){const t=await Gs(e);return function(e,r){return t(M.concatUint8Array([e,r]))}}async function ra(e){if(M.getNodeCrypto())return async function(t,r){const n=new Vs.createCipheriv("aes-"+8*e.length+"-ctr",e,r),i=Ys.concat([n.update(t),n.final()]);return new Uint8Array(i)};if(M.getWebCrypto())try{const t=await js.importKey("raw",e,{name:"AES-CTR",length:8*e.length},!1,["encrypt"]);return async function(e,r){const n=await js.encrypt({name:"AES-CTR",counter:r,length:8*Zs},t,e);return new Uint8Array(n)}}catch(t){if("NotSupportedError"!==t.name&&(24!==e.length||"OperationError"!==t.name))throw t;M.printDebugError("Browser did not support operation: "+t.message)}return async function(t,r){return _n(e,r).encrypt(t)}}async function na(e,t){if(e!==Q.symmetric.aes128&&e!==Q.symmetric.aes192&&e!==Q.symmetric.aes256)throw Error("EAX mode supports only AES cipher");const[r,n]=await Promise.all([ta(t),ra(t)]);return{encrypt:async function(e,t,i){const[s,a]=await Promise.all([r(Xs,t),r($s,i)]),o=await n(e,s),c=await r(ea,o);for(let e=0;e<Js;e++)c[e]^=a[e]^s[e];return M.concatUint8Array([o,c])},decrypt:async function(e,t,i){if(e.length<Js)throw Error("Invalid EAX ciphertext");const s=e.subarray(0,-Js),a=e.subarray(-Js),[o,c,u]=await Promise.all([r(Xs,t),r($s,i),r(ea,s)]),h=u;for(let e=0;e<Js;e++)h[e]^=c[e]^o[e];if(!M.equalsUint8Array(a,h))throw Error("Authentication tag mismatch");return await n(s,o)}}}ea[Zs-1]=2,na.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[8+e]^=t[e];return r},na.blockLength=Zs,na.ivLength=Ws,na.tagLength=Js;const ia=16,sa=15,aa=16;function oa(e){let t=0;for(let r=1;!(e&r);r<<=1)t++;return t}function ca(e,t){for(let r=0;r<e.length;r++)e[r]^=t[r];return e}function ua(e,t){return ca(e.slice(),t)}const ha=new Uint8Array(ia),la=new Uint8Array([1]);async function ya(e,t){const{keySize:r}=ri(e);if(!M.isAES(e)||t.length!==r)throw Error("Unexpected algorithm or key size");let n=0;const i=zn(t,ha,{disablePadding:!0}),s=e=>i.encrypt(e),a=e=>i.decrypt(e);let o;function c(e,t,r,i){const a=t.length/ia|0;!function(e,t){const r=M.nbits(Math.max(e.length,t.length)/ia|0)-1;for(let e=n+1;e<=r;e++)o[e]=M.double(o[e-1]);n=r}(t,i);const c=M.concatUint8Array([ha.subarray(0,sa-r.length),la,r]),u=63&c[ia-1];c[ia-1]&=192;const h=s(c),l=M.concatUint8Array([h,ua(h.subarray(0,8),h.subarray(1,9))]),y=M.shiftRight(l.subarray(0+(u>>3),17+(u>>3)),8-(7&u)).subarray(1),f=new Uint8Array(ia),p=new Uint8Array(t.length+aa);let g,d=0;for(g=0;g<a;g++)ca(y,o[oa(g+1)]),p.set(ca(e(ua(y,t)),y),d),ca(f,e===s?t:p.subarray(d)),t=t.subarray(ia),d+=ia;if(t.length){ca(y,o.x);const r=s(y);p.set(ua(t,r),d);const n=new Uint8Array(ia);n.set(e===s?t:p.subarray(d,-aa),0),n[t.length]=128,ca(f,n),d+=t.length}const A=ca(s(ca(ca(f,y),o.$)),function(e){if(!e.length)return ha;const t=e.length/ia|0,r=new Uint8Array(ia),n=new Uint8Array(ia);for(let i=0;i<t;i++)ca(r,o[oa(i+1)]),ca(n,s(ua(r,e))),e=e.subarray(ia);if(e.length){ca(r,o.x);const t=new Uint8Array(ia);t.set(e,0),t[e.length]=128,ca(t,r),ca(n,s(t))}return n}(i));return p.set(A,d),p}return function(){const e=s(ha),t=M.double(e);o=[],o[0]=M.double(t),o.x=e,o.$=t}(),{encrypt:async function(e,t,r){return c(s,e,t,r)},decrypt:async function(e,t,r){if(e.length<aa)throw Error("Invalid OCB ciphertext");const n=e.subarray(-aa);e=e.subarray(0,-aa);const i=c(a,e,t,r);if(M.equalsUint8Array(n,i.subarray(-aa)))return i.subarray(0,-aa);throw Error("Authentication tag mismatch")}}}ya.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[7+e]^=t[e];return r},ya.blockLength=ia,ya.ivLength=sa,ya.tagLength=aa;const fa=M.getWebCrypto(),pa=M.getNodeCrypto(),ga=M.getNodeBuffer(),da=16,Aa="AES-GCM";async function wa(e,t){if(e!==Q.symmetric.aes128&&e!==Q.symmetric.aes192&&e!==Q.symmetric.aes256)throw Error("GCM mode supports only AES cipher");if(M.getNodeCrypto())return{encrypt:async function(e,r,n=new Uint8Array){const i=new pa.createCipheriv("aes-"+8*t.length+"-gcm",t,r);i.setAAD(n);const s=ga.concat([i.update(e),i.final(),i.getAuthTag()]);return new Uint8Array(s)},decrypt:async function(e,r,n=new Uint8Array){const i=new pa.createDecipheriv("aes-"+8*t.length+"-gcm",t,r);i.setAAD(n),i.setAuthTag(e.slice(e.length-da,e.length));const s=ga.concat([i.update(e.slice(0,e.length-da)),i.final()]);return new Uint8Array(s)}};if(M.getWebCrypto())try{const e=await fa.importKey("raw",t,{name:Aa},!1,["encrypt","decrypt"]),r=navigator.userAgent.match(/Version\/13\.\d(\.\d)* Safari/)||navigator.userAgent.match(/Version\/(13|14)\.\d(\.\d)* Mobile\/\S* Safari/);return{encrypt:async function(n,i,s=new Uint8Array){if(r&&!n.length)return qn(t,i,s).encrypt(n);const a=await fa.encrypt({name:Aa,iv:i,additionalData:s,tagLength:8*da},e,n);return new Uint8Array(a)},decrypt:async function(n,i,s=new Uint8Array){if(r&&n.length===da)return qn(t,i,s).decrypt(n);try{const t=await fa.decrypt({name:Aa,iv:i,additionalData:s,tagLength:8*da},e,n);return new Uint8Array(t)}catch(e){if("OperationError"===e.name)throw Error("Authentication tag mismatch")}}}}catch(e){if("NotSupportedError"!==e.name&&(24!==t.length||"OperationError"!==e.name))throw e;M.printDebugError("Browser did not support operation: "+e.message)}return{encrypt:async function(e,r,n){return qn(t,r,n).encrypt(e)},decrypt:async function(e,r,n){return qn(t,r,n).decrypt(e)}}}function ma(e,t=!1){switch(e){case Q.aead.eax:return na;case Q.aead.ocb:return ya;case Q.aead.gcm:return wa;case Q.aead.experimentalGCM:if(!t)throw Error("Unexpected non-standard `experimentalGCM` AEAD algorithm provided in `config.preferredAEADAlgorithm`: use `gcm` instead");return wa;default:throw Error("Unsupported AEAD mode")}}async function ba(e,t,r,n,i,s){switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:{const{n:e,e:t}=r;return{c:await ze(i,e,t)}}case Q.publicKey.elgamal:{const{p:e,g:t,y:n}=r;return async function(e,t,r,n){t=te(t),r=te(r),n=te(n);const i=te(Te(e,ue(t))),s=fe(Ye,t-Ye);return{c1:he(ne(r,s,t)),c2:he(re(ne(n,s,t)*i,t))}}(i,e,t,n)}case Q.publicKey.ecdh:{const{oid:e,Q:t,kdfParams:n}=r,{publicKey:a,wrappedKey:o}=await Wi(e,n,i,t,s);return{V:a,C:new bs(o)}}case Q.publicKey.x25519:case Q.publicKey.x448:{if(t&&!M.isAES(t))throw Error("X25519 and X448 keys can only encrypt AES session keys");const{A:n}=r,{ephemeralPublicKey:s,wrappedKey:a}=await li(e,i,n);return{ephemeralPublicKey:s,C:Ks.fromObject({algorithm:t,wrappedKey:a})}}case Q.publicKey.aead:{if(!n)throw Error("Cannot encrypt with symmetric key missing private parameters");const{cipher:e}=r,t=e.getValue(),{keyMaterial:s}=n,a=R.preferredAEADAlgorithm,o=ma(R.preferredAEADAlgorithm),{ivLength:c}=o,u=ye(c),h=await o(t,s),l=await h.encrypt(i,u,new Uint8Array);return{aeadMode:new Bs(a),iv:u,c:new ks(l)}}case Q.publicKey.pqc_mlkem_x25519:{const{eccPublicKey:n,mlkemPublicKey:s}=r,{eccCipherText:a,mlkemCipherText:o,wrappedKey:c}=await hs(e,n,s,i);return{eccCipherText:a,mlkemCipherText:o,C:Ks.fromObject({algorithm:t,wrappedKey:c})}}default:return[]}}async function ka(e,t,r,n,i,s){switch(e){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:{const{c:e}=n,{n:i,e:a}=t,{d:o,p:c,q:u,u:h}=r;return Ge(e,i,a,o,c,u,h,s)}case Q.publicKey.elgamal:{const{c1:e,c2:i}=n;return async function(e,t,r,n,i){return e=te(e),t=te(t),r=te(r),Me(he(re(se(ne(e,n=te(n),r),r)*t,r),"be",ue(r)),i)}(e,i,t.p,r.x,s)}case Q.publicKey.ecdh:{const{oid:e,Q:s,kdfParams:a}=t,{d:o}=r,{V:c,C:u}=n;return Xi(e,a,c,u.data,s,o,i)}case Q.publicKey.x25519:case Q.publicKey.x448:{const{A:i}=t,{k:s}=r,{ephemeralPublicKey:a,C:o}=n;if(null!==o.algorithm&&!M.isAES(o.algorithm))throw Error("AES session key expected");return yi(e,a,o.wrappedKey,i,s)}case Q.publicKey.aead:{const{cipher:e}=t,i=e.getValue(),{keyMaterial:s}=r,{aeadMode:a,iv:o,c}=n,u=ma(a.getValue());return(await u(i,s)).decrypt(c.data,o,new Uint8Array)}case Q.publicKey.pqc_mlkem_x25519:{const{eccSecretKey:i,mlkemSecretKey:s}=r,{eccPublicKey:a,mlkemPublicKey:o}=t,{eccCipherText:c,mlkemCipherText:u,C:h}=n;return ls(e,c,u,i,a,s,0,h.wrappedKey)}default:throw Error("Unknown public key encryption algorithm.")}}async function Ea(e,t,r){let n=0;switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:{const e=M.readMPI(t.subarray(n));n+=e.length+2;const r=M.readMPI(t.subarray(n));n+=r.length+2;const i=M.readMPI(t.subarray(n));n+=i.length+2;const s=M.readMPI(t.subarray(n));return n+=s.length+2,{read:n,privateParams:{d:e,p:r,q:i,u:s}}}case Q.publicKey.dsa:case Q.publicKey.elgamal:{const e=M.readMPI(t.subarray(n));return n+=e.length+2,{read:n,privateParams:{x:e}}}case Q.publicKey.ecdsa:case Q.publicKey.ecdh:{const i=Ua(e,r.oid);let s=M.readMPI(t.subarray(n));return n+=s.length+2,s=M.leftPad(s,i),{read:n,privateParams:{d:s}}}case Q.publicKey.eddsaLegacy:{const i=Ua(e,r.oid);if(r.oid.getName()!==Q.curve.ed25519Legacy)throw Error("Unexpected OID for eddsaLegacy");let s=M.readMPI(t.subarray(n));return n+=s.length+2,s=M.leftPad(s,i),{read:n,privateParams:{seed:s}}}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const r=Ua(e),i=M.readExactSubarray(t,n,n+r);return n+=i.length,{read:n,privateParams:{seed:i}}}case Q.publicKey.x25519:case Q.publicKey.x448:{const r=Ua(e),i=M.readExactSubarray(t,n,n+r);return n+=i.length,{read:n,privateParams:{k:i}}}case Q.publicKey.hmac:{const{cipher:e}=r,i=Qe(e.getValue()),s=t.subarray(n,n+32);n+=32;const a=t.subarray(n,n+i);return n+=i,{read:n,privateParams:{hashSeed:s,keyMaterial:a}}}case Q.publicKey.aead:{const{cipher:e}=r,i=t.subarray(n,n+32);n+=32;const{keySize:s}=ri(e.getValue()),a=t.subarray(n,n+s);return n+=s,{read:n,privateParams:{hashSeed:i,keyMaterial:a}}}case Q.publicKey.pqc_mlkem_x25519:{const r=M.readExactSubarray(t,n,n+Ua(Q.publicKey.x25519));n+=r.length;const i=M.readExactSubarray(t,n,n+64);n+=i.length;const{mlkemSecretKey:s}=await cs(e,i);return{read:n,privateParams:{eccSecretKey:r,mlkemSecretKey:s,mlkemSeed:i}}}case Q.publicKey.pqc_mldsa_ed25519:{const r=M.readExactSubarray(t,n,n+Ua(Q.publicKey.ed25519));n+=r.length;const i=M.readExactSubarray(t,n,n+32);n+=i.length;const{mldsaSecretKey:s}=await ps(e,i);return{read:n,privateParams:{eccSecretKey:r,mldsaSecretKey:s,mldsaSeed:i}}}default:throw new Yt("Unknown public key encryption algorithm.")}}function va(e,t){const r=new Set([Q.publicKey.ed25519,Q.publicKey.x25519,Q.publicKey.ed448,Q.publicKey.x448,Q.publicKey.aead,Q.publicKey.hmac,Q.publicKey.pqc_mlkem_x25519,Q.publicKey.pqc_mldsa_ed25519]),n={[Q.publicKey.pqc_mlkem_x25519]:new Set(["mlkemSecretKey"]),[Q.publicKey.pqc_mldsa_ed25519]:new Set(["mldsaSecretKey"])},i=Object.keys(t).map((i=>{if(n[e]?.has(i))return new Uint8Array;const s=t[i];return M.isUint8Array(s)?r.has(e)?s:M.uint8ArrayToMPI(s):s.write()}));return M.concatUint8Array(i)}async function Ba(e,t,r,n){switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:return async function(e,t){if(t=BigInt(t),M.getWebCrypto()){const r={name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:he(t),hash:{name:"SHA-1"}},n=await Ne.generateKey(r,!0,["sign","verify"]);return Ve(await Ne.exportKey("jwk",n.privateKey),t)}if(M.getNodeCrypto()){const r={modulusLength:e,publicExponent:ae(t),publicKeyEncoding:{type:"pkcs1",format:"jwk"},privateKeyEncoding:{type:"pkcs1",format:"jwk"}},n=await new Promise(((e,t)=>{Fe.generateKeyPair("rsa",r,((r,n,i)=>{r?t(r):e(i)}))}));return Ve(n,t)}let r,n,i;do{n=ge(e-(e>>1),t,40),r=ge(e>>1,t,40),i=r*n}while(ce(i)!==e);const s=(r-Oe)*(n-Oe);return n<r&&([r,n]=[n,r]),{n:he(i),e:he(t),d:he(se(t,s)),p:he(r),q:he(n),u:he(se(r,n))}}(t,65537).then((({n:e,e:t,d:r,p:n,q:i,u:s})=>({privateParams:{d:r,p:n,q:i,u:s},publicParams:{n:e,e:t}})));case Q.publicKey.ecdsa:return Ii(r).then((({oid:e,Q:t,secret:r})=>({privateParams:{d:r},publicParams:{oid:new Ot(e),Q:t}})));case Q.publicKey.eddsaLegacy:return Ii(r).then((({oid:e,Q:t,secret:r})=>({privateParams:{seed:r},publicParams:{oid:new Ot(e),Q:t}})));case Q.publicKey.ecdh:return Ii(r).then((({oid:e,Q:t,secret:r,hash:n,cipher:i})=>({privateParams:{d:r},publicParams:{oid:new Ot(e),Q:t,kdfParams:new Es({hash:n,cipher:i})}})));case Q.publicKey.ed25519:case Q.publicKey.ed448:return Hr(e).then((({A:e,seed:t})=>({privateParams:{seed:t},publicParams:{A:e}})));case Q.publicKey.x25519:case Q.publicKey.x448:return ui(e).then((({A:e,k:t})=>({privateParams:{k:t},publicParams:{A:e}})));case Q.publicKey.hmac:return Sa(await async function(e){if(!ss.has(e))throw Error("Unsupported hash algorithm.");const t=Q.read(Q.webHash,e),r=as||os.webcrypto.subtle,n=await r.generateKey({name:"HMAC",hash:{name:t}},!0,["sign","verify"]),i=await r.exportKey("raw",n);return new Uint8Array(i)}(n),new Is(n));case Q.publicKey.aead:return Sa(Ka(n),new Ss(n));case Q.publicKey.pqc_mlkem_x25519:return us(e).then((({eccSecretKey:e,eccPublicKey:t,mlkemSeed:r,mlkemSecretKey:n,mlkemPublicKey:i})=>({privateParams:{eccSecretKey:e,mlkemSeed:r,mlkemSecretKey:n},publicParams:{eccPublicKey:t,mlkemPublicKey:i}})));case Q.publicKey.pqc_mldsa_ed25519:return gs(e).then((({eccSecretKey:e,eccPublicKey:t,mldsaSeed:r,mldsaSecretKey:n,mldsaPublicKey:i})=>({privateParams:{eccSecretKey:e,mldsaSeed:r,mldsaSecretKey:n},publicParams:{eccPublicKey:t,mldsaPublicKey:i}})));case Q.publicKey.dsa:case Q.publicKey.elgamal:throw Error("Unsupported algorithm for key generation.");default:throw Error("Unknown public key algorithm.")}}async function Sa(e,t){const r=ye(32);return{privateParams:{hashSeed:r,keyMaterial:e},publicParams:{cipher:t,digest:await xe(Q.hash.sha256,r)}}}async function Ia(e,t,r){if(!t||!r)throw Error("Missing key parameters");switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:{const{n:e,e:n}=t,{d:i,p:s,q:a,u:o}=r;return async function(e,t,r,n,i,s){if(e=te(e),(n=te(n))*(i=te(i))!==e)return!1;const a=BigInt(2);if(re(n*(s=te(s)),i)!==BigInt(1))return!1;t=te(t),r=te(r);const o=fe(a,a<<BigInt(Math.floor(ce(e)/3))),c=o*r*t;return!(re(c,n-Oe)!==o||re(c,i-Oe)!==o)}(e,n,i,s,a,o)}case Q.publicKey.dsa:{const{p:e,q:n,g:i,y:s}=t,{x:a}=r;return async function(e,t,r,n,i){if(e=te(e),t=te(t),r=te(r),n=te(n),r<=is||r>=e)return!1;if(re(e-is,t)!==ns)return!1;if(ne(r,t,e)!==is)return!1;const s=BigInt(ce(t));if(s<BigInt(150)||!de(t,null,32))return!1;i=te(i);const a=BigInt(2);return n===ne(r,t*fe(a<<s-is,a<<s)+i,e)}(e,n,i,s,a)}case Q.publicKey.elgamal:{const{p:e,g:n,y:i}=t,{x:s}=r;return async function(e,t,r,n){if(e=te(e),t=te(t),r=te(r),t<=Ye||t>=e)return!1;const i=BigInt(ce(e));if(i<BigInt(1023))return!1;if(ne(t,e-Ye,e)!==Ye)return!1;let s=t,a=BigInt(1);const o=BigInt(2),c=o<<BigInt(17);for(;a<c;){if(s=re(s*t,e),s===Ye)return!1;a++}n=te(n);const u=fe(o<<i-Ye,o<<i);return r===ne(t,(e-Ye)*u+n,e)}(e,n,i,s)}case Q.publicKey.ecdsa:case Q.publicKey.ecdh:{const n=rs[Q.read(Q.publicKey,e)],{oid:i,Q:s}=t,{d:a}=r;return n.validateParams(i,s,a)}case Q.publicKey.eddsaLegacy:{const{Q:e,oid:n}=t,{seed:i}=r;return _i(n,e,i)}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const{A:n}=t,{seed:i}=r;return Gr(e,n,i)}case Q.publicKey.x25519:case Q.publicKey.x448:{const{A:n}=t,{k:i}=r;return hi(e,n,i)}case Q.publicKey.hmac:{const{cipher:e,digest:n}=t,{hashSeed:i,keyMaterial:s}=r;return Qe(e.getValue())===s.length&&M.equalsUint8Array(n,await xe(Q.hash.sha256,i))}case Q.publicKey.aead:{const{cipher:e,digest:n}=t,{hashSeed:i,keyMaterial:s}=r,{keySize:a}=ri(e.getValue());return a===s.length&&M.equalsUint8Array(n,await xe(Q.hash.sha256,i))}case Q.publicKey.pqc_mlkem_x25519:{const{eccSecretKey:n,mlkemSeed:i}=r,{eccPublicKey:s,mlkemPublicKey:a}=t;return fs(e,s,n,a,i)}case Q.publicKey.pqc_mldsa_ed25519:{const{eccSecretKey:n,mldsaSeed:i}=r,{eccPublicKey:s,mldsaPublicKey:a}=t;return ms(e,s,n,a,i)}default:throw Error("Unknown public key algorithm.")}}function Ka(e){const{keySize:t}=ri(e);return ye(t)}function Ca(e){try{e.getName()}catch(e){throw new Yt("Unknown curve OID")}}function Ua(e,t){switch(e){case Q.publicKey.ecdsa:case Q.publicKey.ecdh:case Q.publicKey.eddsaLegacy:return new Si(t).payloadSize;case Q.publicKey.ed25519:case Q.publicKey.ed448:return qr(e);case Q.publicKey.x25519:case Q.publicKey.x448:return fi(e);default:throw Error("Unknown elliptic algo")}}async function Pa(e,t,r,n,i,s,a){switch(e){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaSign:{const{n:e,e:i}=n;return _e(t,s,M.leftPad(r.s,e.length),e,i,a)}case Q.publicKey.dsa:{const{g:e,p:t,q:i,y:s}=n,{r:o,s:c}=r;return async function(e,t,r,n,i,s,a,o){if(t=te(t),r=te(r),s=te(s),a=te(a),i=te(i),o=te(o),t<=ns||t>=a||r<=ns||r>=a)return M.printDebug("invalid DSA Signature"),!1;const c=re(te(n.subarray(0,ue(a))),a),u=se(r,a);if(u===ns)return M.printDebug("invalid DSA Signature"),!1;i=re(i,s),o=re(o,s);const h=re(c*u,a),l=re(t*u,a);return re(re(ne(i,h,s)*ne(o,l,s),s),a)===t}(0,o,c,a,e,t,i,s)}case Q.publicKey.ecdsa:{const{oid:e,Q:i}=n,o=new Si(e).payloadSize;return Li(e,t,{r:M.leftPad(r.r,o),s:M.leftPad(r.s,o)},s,i,a)}case Q.publicKey.eddsaLegacy:{if(Qe(t)<Qe(Q.hash.sha256))throw Error("Hash algorithm too weak for EdDSALegacy.");const{oid:e,Q:i}=n,s=new Si(e).payloadSize;return Hi(e,0,{r:M.leftPad(r.r,s),s:M.leftPad(r.s,s)},0,i,a)}case Q.publicKey.ed25519:case Q.publicKey.ed448:{if(Qe(t)<Qe(jr(e)))throw Error("Hash algorithm too weak for EdDSA.");const{A:i}=n;return zr(e,0,r,0,i,a)}case Q.publicKey.hmac:{if(!i)throw Error("Cannot verify HMAC signature with symmetric key missing private parameters");const{cipher:e}=n,{keyMaterial:t}=i;return async function(e,t,r,n){if(!ss.has(e))throw Error("Unsupported hash algorithm.");const i=Q.read(Q.webHash,e),s=as||os.webcrypto.subtle,a=await s.importKey("raw",t,{name:"HMAC",hash:{name:i}},!1,["verify"]);return s.verify("HMAC",a,r,n)}(e.getValue(),t,r.mac.data,a)}case Q.publicKey.pqc_mldsa_ed25519:{if(!ws(e,t))throw Error("Unexpected hash algorithm for PQC signature: digest size too short");const{eccPublicKey:i,mldsaPublicKey:s}=n;return As(e,0,i,s,a,r)}default:throw Error("Unknown signature algorithm.")}}async function Da(e,t,r,n,i,s){if(!r||!n)throw Error("Missing key parameters");switch(e){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaSign:{const{n:e,e:a}=r,{d:o,p:c,q:u,u:h}=n;return{s:await He(t,i,e,a,o,c,u,h,s)}}case Q.publicKey.dsa:{const{g:e,p:t,q:i}=r,{x:a}=n;return async function(e,t,r,n,i,s){const a=BigInt(0);let o,c,u,h;n=te(n),i=te(i),r=te(r),s=te(s),r=re(r,n),s=re(s,i);const l=re(te(t.subarray(0,ue(i))),i);for(;;){if(o=fe(is,i),c=re(ne(r,o,n),i),c===a)continue;const e=re(s*c,i);if(h=re(l+e,i),u=re(se(o,i)*h,i),u!==a)break}return{r:he(c,"be",ue(n)),s:he(u,"be",ue(n))}}(0,s,e,t,i,a)}case Q.publicKey.elgamal:throw Error("Signing with Elgamal is not defined in the OpenPGP standard.");case Q.publicKey.ecdsa:{const{oid:e,Q:a}=r,{d:o}=n;return Mi(e,t,i,a,o,s)}case Q.publicKey.eddsaLegacy:{if(Qe(t)<Qe(Q.hash.sha256))throw Error("Hash algorithm too weak for EdDSALegacy.");const{oid:e,Q:i}=r,{seed:a}=n;return Oi(e,0,0,i,a,s)}case Q.publicKey.ed25519:case Q.publicKey.ed448:{if(Qe(t)<Qe(jr(e)))throw Error("Hash algorithm too weak for EdDSA.");const{A:i}=r,{seed:a}=n;return _r(e,0,0,i,a,s)}case Q.publicKey.hmac:{const{cipher:e}=r,{keyMaterial:t}=n,i=await async function(e,t,r){if(!ss.has(e))throw Error("Unsupported hash algorithm.");const n=Q.read(Q.webHash,e),i=as||os.webcrypto.subtle,s=await i.importKey("raw",t,{name:"HMAC",hash:{name:n}},!1,["sign"]),a=await i.sign("HMAC",s,r);return new Uint8Array(a)}(e.getValue(),t,s);return{mac:new ks(i)}}case Q.publicKey.pqc_mldsa_ed25519:{if(!ws(e,t))throw Error("Unexpected hash algorithm for PQC signature: digest size too short");const{eccPublicKey:i}=r,{eccSecretKey:a,mldsaSecretKey:o}=n;return ds(e,0,a,i,o,s)}default:throw Error("Unknown signature algorithm.")}}wa.getNonce=function(e,t){const r=e.slice();for(let e=0;e<t.length;e++)r[4+e]^=t[e];return r},wa.blockLength=16,wa.ivLength=12,wa.tagLength=da;class xa extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,xa),this.name="Argon2OutOfMemoryError"}}let Qa,Ra,Ta=2<<19;class Ma{static get ARGON2_WASM_MEMORY_THRESHOLD_RELOAD(){return Ta}static set ARGON2_WASM_MEMORY_THRESHOLD_RELOAD(e){Ta=e}static reloadWasmModule(){Qa&&(Ra=Qa(),Ra.catch((()=>{})))}constructor(e=R){const{passes:t,parallelism:r,memoryExponent:n}=e.s2kArgon2Params;this.type="argon2",this.salt=null,this.t=t,this.p=r,this.encodedM=n}generateSalt(){this.salt=ye(16)}read(e){let t=0;return this.salt=e.subarray(t,t+16),t+=16,this.t=e[t++],this.p=e[t++],this.encodedM=e[t++],t}write(){const e=[new Uint8Array([Q.write(Q.s2k,this.type)]),this.salt,new Uint8Array([this.t,this.p,this.encodedM])];return M.concatUint8Array(e)}async produceKey(e,t){const r=2<<this.encodedM-1;try{Qa=Qa||(await Promise.resolve().then((function(){return bg}))).default,Ra=Ra||Qa();const n=await Ra,i=n({version:19,type:2,password:M.encodeUTF8(e),salt:this.salt,tagLength:t,memorySize:r,parallelism:this.p,passes:this.t});return r>Ma.ARGON2_WASM_MEMORY_THRESHOLD_RELOAD&&Ma.reloadWasmModule(),i}catch(e){throw e.message&&(e.message.includes("Unable to grow instance memory")||e.message.includes("failed to grow memory")||e.message.includes("WebAssembly.Memory.grow")||e.message.includes("Out of memory"))?new xa("Could not allocate required memory for Argon2"):e}}}class La{constructor(e,t=R){this.algorithm=Q.hash.sha256,this.type=Q.read(Q.s2k,e),this.c=t.s2kIterationCountByte,this.salt=null}generateSalt(){switch(this.type){case"salted":case"iterated":this.salt=ye(8)}}getCount(){return 16+(15&this.c)<<6+(this.c>>4)}read(e){let t=0;switch(this.algorithm=e[t++],this.type){case"simple":break;case"salted":this.salt=e.subarray(t,t+8),t+=8;break;case"iterated":this.salt=e.subarray(t,t+8),t+=8,this.c=e[t++];break;case"gnu":if("GNU"!==M.uint8ArrayToString(e.subarray(t,t+3)))throw new Yt("Unknown s2k type.");t+=3;if(1001!==1e3+e[t++])throw new Yt("Unknown s2k gnu protection mode.");this.type="gnu-dummy";break;default:throw new Yt("Unknown s2k type.")}return t}write(){if("gnu-dummy"===this.type)return new Uint8Array([101,0,...M.stringToUint8Array("GNU"),1]);const e=[new Uint8Array([Q.write(Q.s2k,this.type),this.algorithm])];switch(this.type){case"simple":break;case"salted":e.push(this.salt);break;case"iterated":e.push(this.salt),e.push(new Uint8Array([this.c]));break;case"gnu":throw Error("GNU s2k type not supported.");default:throw Error("Unknown s2k type.")}return M.concatUint8Array(e)}async produceKey(e,t){e=M.encodeUTF8(e);const r=[];let n=0,i=0;for(;n<t;){let t;switch(this.type){case"simple":t=M.concatUint8Array([new Uint8Array(i),e]);break;case"salted":t=M.concatUint8Array([new Uint8Array(i),this.salt,e]);break;case"iterated":{const r=M.concatUint8Array([this.salt,e]);let n=r.length;const s=Math.max(this.getCount(),n);t=new Uint8Array(i+s),t.set(r,i);for(let e=i+n;e<s;e+=n,n*=2)t.copyWithin(e,i,e);break}case"gnu":throw Error("GNU s2k type not supported.");default:throw Error("Unknown s2k type.")}const s=await xe(this.algorithm,t);r.push(s),n+=s.length,i++}return M.concatUint8Array(r).subarray(0,t)}}const Na=new Set([Q.s2k.argon2,Q.s2k.iterated]);function Fa(e,t=R){switch(e){case Q.s2k.argon2:return new Ma(t);case Q.s2k.iterated:case Q.s2k.gnu:case Q.s2k.salted:case Q.s2k.simple:return new La(e,t);default:throw new Yt("Unsupported S2K type")}}function Oa(e){const{s2kType:t}=e;if(!Na.has(t))throw Error("The provided `config.s2kType` value is not allowed");return Fa(t,e)}var Ha=Uint8Array,_a=Uint16Array,za=Uint32Array,Ga=new Ha([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),qa=new Ha([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),ja=new Ha([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Va=function(e,t){for(var r=new _a(31),n=0;n<31;++n)r[n]=t+=1<<e[n-1];var i=new za(r[30]);for(n=1;n<30;++n)for(var s=r[n];s<r[n+1];++s)i[s]=s-r[n]<<5|n;return[r,i]},Ya=Va(Ga,2),Za=Ya[0],Wa=Ya[1];Za[28]=258,Wa[258]=28;for(var Ja=Va(qa,0),Xa=Ja[0],$a=Ja[1],eo=new _a(32768),to=0;to<32768;++to){var ro=(43690&to)>>>1|(21845&to)<<1;ro=(61680&(ro=(52428&ro)>>>2|(13107&ro)<<2))>>>4|(3855&ro)<<4,eo[to]=((65280&ro)>>>8|(255&ro)<<8)>>>1}var no=function(e,t,r){for(var n=e.length,i=0,s=new _a(t);i<n;++i)e[i]&&++s[e[i]-1];var a,o=new _a(t);for(i=0;i<t;++i)o[i]=o[i-1]+s[i-1]<<1;if(r){a=new _a(1<<t);var c=15-t;for(i=0;i<n;++i)if(e[i])for(var u=i<<4|e[i],h=t-e[i],l=o[e[i]-1]++<<h,y=l|(1<<h)-1;l<=y;++l)a[eo[l]>>>c]=u}else for(a=new _a(n),i=0;i<n;++i)e[i]&&(a[i]=eo[o[e[i]-1]++]>>>15-e[i]);return a},io=new Ha(288);for(to=0;to<144;++to)io[to]=8;for(to=144;to<256;++to)io[to]=9;for(to=256;to<280;++to)io[to]=7;for(to=280;to<288;++to)io[to]=8;var so=new Ha(32);for(to=0;to<32;++to)so[to]=5;var ao=/*#__PURE__*/no(io,9,0),oo=/*#__PURE__*/no(io,9,1),co=/*#__PURE__*/no(so,5,0),uo=/*#__PURE__*/no(so,5,1),ho=function(e){for(var t=e[0],r=1;r<e.length;++r)e[r]>t&&(t=e[r]);return t},lo=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},yo=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},fo=function(e){return(e+7)/8|0},po=function(e,t,r){(null==t||t<0)&&(t=0),(null==r||r>e.length)&&(r=e.length);var n=new(2==e.BYTES_PER_ELEMENT?_a:4==e.BYTES_PER_ELEMENT?za:Ha)(r-t);return n.set(e.subarray(t,r)),n},go=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Ao=function(e,t,r){var n=Error(t||go[e]);if(n.code=e,Error.captureStackTrace&&Error.captureStackTrace(n,Ao),!r)throw n;return n},wo=function(e,t,r){r<<=7&t;var n=t/8|0;e[n]|=r,e[n+1]|=r>>>8},mo=function(e,t,r){r<<=7&t;var n=t/8|0;e[n]|=r,e[n+1]|=r>>>8,e[n+2]|=r>>>16},bo=function(e,t){for(var r=[],n=0;n<e.length;++n)e[n]&&r.push({s:n,f:e[n]});var i=r.length,s=r.slice();if(!i)return[Ko,0];if(1==i){var a=new Ha(r[0].s+1);return a[r[0].s]=1,[a,1]}r.sort((function(e,t){return e.f-t.f})),r.push({s:-1,f:25001});var o=r[0],c=r[1],u=0,h=1,l=2;for(r[0]={s:-1,f:o.f+c.f,l:o,r:c};h!=i-1;)o=r[r[u].f<r[l].f?u++:l++],c=r[u!=h&&r[u].f<r[l].f?u++:l++],r[h++]={s:-1,f:o.f+c.f,l:o,r:c};var y=s[0].s;for(n=1;n<i;++n)s[n].s>y&&(y=s[n].s);var f=new _a(y+1),p=ko(r[h-1],f,0);if(p>t){n=0;var g=0,d=p-t,A=1<<d;for(s.sort((function(e,t){return f[t.s]-f[e.s]||e.f-t.f}));n<i;++n){var w=s[n].s;if(!(f[w]>t))break;g+=A-(1<<p-f[w]),f[w]=t}for(g>>>=d;g>0;){var m=s[n].s;f[m]<t?g-=1<<t-f[m]++-1:++n}for(;n>=0&&g;--n){var b=s[n].s;f[b]==t&&(--f[b],++g)}p=t}return[new Ha(f),p]},ko=function(e,t,r){return-1==e.s?Math.max(ko(e.l,t,r+1),ko(e.r,t,r+1)):t[e.s]=r},Eo=function(e){for(var t=e.length;t&&!e[--t];);for(var r=new _a(++t),n=0,i=e[0],s=1,a=function(e){r[n++]=e},o=1;o<=t;++o)if(e[o]==i&&o!=t)++s;else{if(!i&&s>2){for(;s>138;s-=138)a(32754);s>2&&(a(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(a(i),--s;s>6;s-=6)a(8304);s>2&&(a(s-3<<5|8208),s=0)}for(;s--;)a(i);s=1,i=e[o]}return[r.subarray(0,n),t]},vo=function(e,t){for(var r=0,n=0;n<t.length;++n)r+=e[n]*t[n];return r},Bo=function(e,t,r){var n=r.length,i=fo(t+2);e[i]=255&n,e[i+1]=n>>>8,e[i+2]=255^e[i],e[i+3]=255^e[i+1];for(var s=0;s<n;++s)e[i+s+4]=r[s];return 8*(i+4+n)},So=function(e,t,r,n,i,s,a,o,c,u,h){wo(t,h++,r),++i[256];for(var l=bo(i,15),y=l[0],f=l[1],p=bo(s,15),g=p[0],d=p[1],A=Eo(y),w=A[0],m=A[1],b=Eo(g),k=b[0],E=b[1],v=new _a(19),B=0;B<w.length;++B)v[31&w[B]]++;for(B=0;B<k.length;++B)v[31&k[B]]++;for(var S=bo(v,7),I=S[0],K=S[1],C=19;C>4&&!I[ja[C-1]];--C);var U,P,D,x,Q=u+5<<3,R=vo(i,io)+vo(s,so)+a,T=vo(i,y)+vo(s,g)+a+14+3*C+vo(v,I)+(2*v[16]+3*v[17]+7*v[18]);if(Q<=R&&Q<=T)return Bo(t,h,e.subarray(c,c+u));if(wo(t,h,1+(T<R)),h+=2,T<R){U=no(y,f,0),P=y,D=no(g,d,0),x=g;var M=no(I,K,0);wo(t,h,m-257),wo(t,h+5,E-1),wo(t,h+10,C-4),h+=14;for(B=0;B<C;++B)wo(t,h+3*B,I[ja[B]]);h+=3*C;for(var L=[w,k],N=0;N<2;++N){var F=L[N];for(B=0;B<F.length;++B){var O=31&F[B];wo(t,h,M[O]),h+=I[O],O>15&&(wo(t,h,F[B]>>>5&127),h+=F[B]>>>12)}}}else U=ao,P=io,D=co,x=so;for(B=0;B<o;++B)if(n[B]>255){O=n[B]>>>18&31;mo(t,h,U[O+257]),h+=P[O+257],O>7&&(wo(t,h,n[B]>>>23&31),h+=Ga[O]);var H=31&n[B];mo(t,h,D[H]),h+=x[H],H>3&&(mo(t,h,n[B]>>>5&8191),h+=qa[H])}else mo(t,h,U[n[B]]),h+=P[n[B]];return mo(t,h,U[256]),h+P[256]},Io=/*#__PURE__*/new za([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Ko=/*#__PURE__*/new Ha(0),Co=function(e,t,r,n,i){return function(e,t,r,n,i,s){var a=e.length,o=new Ha(n+a+5*(1+Math.ceil(a/7e3))+i),c=o.subarray(n,o.length-i),u=0;if(!t||a<8)for(var h=0;h<=a;h+=65535){var l=h+65535;l>=a&&(c[u>>3]=s),u=Bo(c,u+1,e.subarray(h,l))}else{for(var y=Io[t-1],f=y>>>13,p=8191&y,g=(1<<r)-1,d=new _a(32768),A=new _a(g+1),w=Math.ceil(r/3),m=2*w,b=function(t){return(e[t]^e[t+1]<<w^e[t+2]<<m)&g},k=new za(25e3),E=new _a(288),v=new _a(32),B=0,S=0,I=(h=0,0),K=0,C=0;h<a;++h){var U=b(h),P=32767&h,D=A[U];if(d[P]=D,A[U]=P,K<=h){var x=a-h;if((B>7e3||I>24576)&&x>423){u=So(e,c,0,k,E,v,S,I,C,h-C,u),I=B=S=0,C=h;for(var Q=0;Q<286;++Q)E[Q]=0;for(Q=0;Q<30;++Q)v[Q]=0}var R=2,T=0,M=p,L=P-D&32767;if(x>2&&U==b(h-L))for(var N=Math.min(f,x)-1,F=Math.min(32767,h),O=Math.min(258,x);L<=F&&--M&&P!=D;){if(e[h+R]==e[h+R-L]){for(var H=0;H<O&&e[h+H]==e[h+H-L];++H);if(H>R){if(R=H,T=L,H>N)break;var _=Math.min(L,H-2),z=0;for(Q=0;Q<_;++Q){var G=h-L+Q+32768&32767,q=G-d[G]+32768&32767;q>z&&(z=q,D=G)}}}L+=(P=D)-(D=d[P])+32768&32767}if(T){k[I++]=268435456|Wa[R]<<18|$a[T];var j=31&Wa[R],V=31&$a[T];S+=Ga[j]+qa[V],++E[257+j],++v[V],K=h+R,++B}else k[I++]=e[h],++E[e[h]]}}u=So(e,c,s,k,E,v,S,I,C,h-C,u),!s&&7&u&&(u=Bo(c,u+1,Ko))}return po(o,0,n+fo(u)+i)}(e,null==t.level?6:t.level,null==t.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,r,n,!i)},Uo=/*#__PURE__*/function(){function e(e,t){t||"function"!=typeof e||(t=e,e={}),this.ondata=t,this.o=e||{}}return e.prototype.p=function(e,t){this.ondata(Co(e,this.o,0,0,!t),t)},e.prototype.push=function(e,t){this.ondata||Ao(5),this.d&&Ao(4),this.d=t,this.p(e,t||!1)},e}(),Po=/*#__PURE__*/function(){function e(e){this.s={},this.p=new Ha(0),this.ondata=e}return e.prototype.e=function(e){this.ondata||Ao(5),this.d&&Ao(4);var t=this.p.length,r=new Ha(t+e.length);r.set(this.p),r.set(e,t),this.p=r},e.prototype.c=function(e){this.d=this.s.i=e||!1;var t=this.s.b,r=function(e,t,r){var n=e.length;if(!n||r&&r.f&&!r.l)return t||new Ha(0);var i=!t||r,s=!r||r.i;r||(r={}),t||(t=new Ha(3*n));var a=function(e){var r=t.length;if(e>r){var n=new Ha(Math.max(2*r,e));n.set(t),t=n}},o=r.f||0,c=r.p||0,u=r.b||0,h=r.l,l=r.d,y=r.m,f=r.n,p=8*n;do{if(!h){o=lo(e,c,1);var g=lo(e,c+1,3);if(c+=3,!g){var d=e[(K=fo(c)+4)-4]|e[K-3]<<8,A=K+d;if(A>n){s&&Ao(0);break}i&&a(u+d),t.set(e.subarray(K,A),u),r.b=u+=d,r.p=c=8*A,r.f=o;continue}if(1==g)h=oo,l=uo,y=9,f=5;else if(2==g){var w=lo(e,c,31)+257,m=lo(e,c+10,15)+4,b=w+lo(e,c+5,31)+1;c+=14;for(var k=new Ha(b),E=new Ha(19),v=0;v<m;++v)E[ja[v]]=lo(e,c+3*v,7);c+=3*m;var B=ho(E),S=(1<<B)-1,I=no(E,B,1);for(v=0;v<b;){var K,C=I[lo(e,c,S)];if(c+=15&C,(K=C>>>4)<16)k[v++]=K;else{var U=0,P=0;for(16==K?(P=3+lo(e,c,3),c+=2,U=k[v-1]):17==K?(P=3+lo(e,c,7),c+=3):18==K&&(P=11+lo(e,c,127),c+=7);P--;)k[v++]=U}}var D=k.subarray(0,w),x=k.subarray(w);y=ho(D),f=ho(x),h=no(D,y,1),l=no(x,f,1)}else Ao(1);if(c>p){s&&Ao(0);break}}i&&a(u+131072);for(var Q=(1<<y)-1,R=(1<<f)-1,T=c;;T=c){var M=(U=h[yo(e,c)&Q])>>>4;if((c+=15&U)>p){s&&Ao(0);break}if(U||Ao(2),M<256)t[u++]=M;else{if(256==M){T=c,h=null;break}var L=M-254;if(M>264){var N=Ga[v=M-257];L=lo(e,c,(1<<N)-1)+Za[v],c+=N}var F=l[yo(e,c)&R],O=F>>>4;if(F||Ao(3),c+=15&F,x=Xa[O],O>3&&(N=qa[O],x+=yo(e,c)&(1<<N)-1,c+=N),c>p){s&&Ao(0);break}i&&a(u+131072);for(var H=u+L;u<H;u+=4)t[u]=t[u-x],t[u+1]=t[u+1-x],t[u+2]=t[u+2-x],t[u+3]=t[u+3-x];u=H}}r.l=h,r.p=T,r.b=u,r.f=o,h&&(o=1,r.m=y,r.d=l,r.n=f)}while(!o);return u==t.length?t:po(t,0,u)}(this.p,this.o,this.s);this.ondata(po(r,t,this.s.b),this.d),this.o=po(r,this.s.b-32768),this.s.b=this.o.length,this.p=po(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),Do=/*#__PURE__*/function(){function e(e,t){var r,n;this.c=(r=1,n=0,{p:function(e){for(var t=r,i=n,s=0|e.length,a=0;a!=s;){for(var o=Math.min(a+2655,s);a<o;++a)i+=t+=e[a];t=(65535&t)+15*(t>>16),i=(65535&i)+15*(i>>16)}r=t,n=i},d:function(){return(255&(r%=65521))<<24|r>>>8<<16|(255&(n%=65521))<<8|n>>>8}}),this.v=1,Uo.call(this,e,t)}return e.prototype.push=function(e,t){Uo.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){this.c.p(e);var r=Co(e,this.o,this.v&&2,t&&4,!t);this.v&&(function(e,t){var r=t.level,n=0==r?0:r<6?1:9==r?3:2;e[0]=120,e[1]=n<<6|(n?32-2*n:1)}(r,this.o),this.v=0),t&&function(e,t,r){for(;r;++t)e[t]=r,r>>>=8}(r,r.length-4,this.c.d()),this.ondata(r,t)},e}(),xo=/*#__PURE__*/function(){function e(e){this.v=1,Po.call(this,e)}return e.prototype.push=function(e,t){if(Po.prototype.e.call(this,e),this.v){if(this.p.length<2&&!t)return;this.p=this.p.subarray(2),this.v=0}t&&(this.p.length<4&&Ao(6,"invalid zlib data"),this.p=this.p.subarray(0,-4)),Po.prototype.c.call(this,t)},e}(),Qo="undefined"!=typeof TextDecoder&&/*#__PURE__*/new TextDecoder;try{Qo.decode(Ko,{stream:!0}),1}catch(e){}class Ro{static get tag(){return Q.packet.literalData}constructor(e=new Date){this.format=Q.literal.utf8,this.date=M.normalizeDate(e),this.text=null,this.data=null,this.filename=""}setText(e,t=Q.literal.utf8){this.format=t,this.text=e,this.data=null}getText(e=!1){return(null===this.text||M.isStream(this.text))&&(this.text=M.decodeUTF8(M.nativeEOL(this.getBytes(e)))),this.text}setBytes(e,t){this.format=t,this.data=e,this.text=null}getBytes(e=!1){return null===this.data&&(this.data=M.canonicalizeEOL(M.encodeUTF8(this.text))),e?B(this.data):this.data}setFilename(e){this.filename=e}getFilename(){return this.filename}async read(e){await E(e,(async e=>{const t=await e.readByte(),r=await e.readByte();this.filename=M.decodeUTF8(await e.readBytes(r)),this.date=M.readDate(await e.readBytes(4));let n=e.remainder();a(n)&&(n=await K(n)),this.setBytes(n,t)}))}writeHeader(){const e=M.encodeUTF8(this.filename),t=new Uint8Array([e.length]),r=new Uint8Array([this.format]),n=M.writeDate(this.date);return M.concatUint8Array([r,t,e,n])}write(){const e=this.writeHeader(),t=this.getBytes();return M.concat([e,t])}}class To{constructor(){this.bytes=""}read(e){return this.bytes=M.uint8ArrayToString(e.subarray(0,8)),this.bytes.length}write(){return M.stringToUint8Array(this.bytes)}toHex(){return M.uint8ArrayToHex(M.stringToUint8Array(this.bytes))}equals(e,t=!1){return t&&(e.isWildcard()||this.isWildcard())||this.bytes===e.bytes}isNull(){return""===this.bytes}isWildcard(){return/^0+$/.test(this.toHex())}static mapToHex(e){return e.toHex()}static fromID(e){const t=new To;return t.read(M.hexToUint8Array(e)),t}static wildcard(){const e=new To;return e.read(new Uint8Array(8)),e}}const Mo=Symbol("verified"),Lo="salt@notations.openpgpjs.org",No=new Set([Q.signatureSubpacket.issuerKeyID,Q.signatureSubpacket.issuerFingerprint,Q.signatureSubpacket.embeddedSignature]);class Fo{static get tag(){return Q.packet.signature}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.signatureData=null,this.unhashedSubpackets=[],this.unknownSubpackets=[],this.signedHashValue=null,this.salt=null,this.created=null,this.signatureExpirationTime=null,this.signatureNeverExpires=!0,this.exportable=null,this.trustLevel=null,this.trustAmount=null,this.regularExpression=null,this.revocable=null,this.keyExpirationTime=null,this.keyNeverExpires=null,this.preferredSymmetricAlgorithms=null,this.revocationKeyClass=null,this.revocationKeyAlgorithm=null,this.revocationKeyFingerprint=null,this.issuerKeyID=new To,this.rawNotations=[],this.notations={},this.preferredHashAlgorithms=null,this.preferredCompressionAlgorithms=null,this.keyServerPreferences=null,this.preferredKeyServer=null,this.isPrimaryUserID=null,this.policyURI=null,this.keyFlags=null,this.signersUserID=null,this.reasonForRevocationFlag=null,this.reasonForRevocationString=null,this.features=null,this.signatureTargetPublicKeyAlgorithm=null,this.signatureTargetHashAlgorithm=null,this.signatureTargetHash=null,this.embeddedSignature=null,this.issuerKeyVersion=null,this.issuerFingerprint=null,this.preferredAEADAlgorithms=null,this.preferredCipherSuites=null,this.revoked=null,this[Mo]=null}read(e,t=R){let r=0;if(this.version=e[r++],5===this.version&&!t.enableParsingV5Entities)throw new Yt("Support for v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed");if(4!==this.version&&5!==this.version&&6!==this.version)throw new Yt(`Version ${this.version} of the signature packet is unsupported.`);if(this.signatureType=e[r++],this.publicKeyAlgorithm=e[r++],this.hashAlgorithm=e[r++],r+=this.readSubPackets(e.subarray(r,e.length),!0),!this.created)throw Error("Missing signature creation time subpacket.");if(this.signatureData=e.subarray(0,r),r+=this.readSubPackets(e.subarray(r,e.length),!1),this.signedHashValue=e.subarray(r,r+2),r+=2,6===this.version){const t=e[r++];this.salt=e.subarray(r,r+t),r+=t}const n=e.subarray(r,e.length),{read:i,signatureParams:s}=function(e,t){let r=0;switch(e){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaSign:{const e=M.readMPI(t.subarray(r));return r+=e.length+2,{read:r,signatureParams:{s:e}}}case Q.publicKey.dsa:case Q.publicKey.ecdsa:{const e=M.readMPI(t.subarray(r));r+=e.length+2;const n=M.readMPI(t.subarray(r));return r+=n.length+2,{read:r,signatureParams:{r:e,s:n}}}case Q.publicKey.eddsaLegacy:{const e=M.readMPI(t.subarray(r));r+=e.length+2;const n=M.readMPI(t.subarray(r));return r+=n.length+2,{read:r,signatureParams:{r:e,s:n}}}case Q.publicKey.ed25519:case Q.publicKey.ed448:{const n=2*qr(e),i=M.readExactSubarray(t,r,r+n);return r+=i.length,{read:r,signatureParams:{RS:i}}}case Q.publicKey.hmac:{const e=new ks;return r+=e.read(t.subarray(r)),{read:r,signatureParams:{mac:e}}}case Q.publicKey.pqc_mldsa_ed25519:{const e=2*qr(Q.publicKey.ed25519),n=M.readExactSubarray(t,r,r+e);r+=n.length;const i=M.readExactSubarray(t,r,r+3309);return r+=i.length,{read:r,signatureParams:{eccSignature:n,mldsaSignature:i}}}default:throw new Yt("Unknown signature algorithm.")}}(this.publicKeyAlgorithm,n);if(i<n.length)throw Error("Error reading MPIs");this.params=s}writeParams(){return this.params instanceof Promise?U((async()=>va(this.publicKeyAlgorithm,await this.params))):va(this.publicKeyAlgorithm,this.params)}write(){const e=[];return e.push(this.signatureData),e.push(this.writeUnhashedSubPackets()),e.push(this.signedHashValue),6===this.version&&(e.push(new Uint8Array([this.salt.length])),e.push(this.salt)),e.push(this.writeParams()),M.concat(e)}async sign(e,t,r=new Date,n=!1,i){this.version=e.version,this.created=M.normalizeDate(r),this.issuerKeyVersion=e.version,this.issuerFingerprint=e.getFingerprintBytes(),this.issuerKeyID=e.getKeyID();const s=[new Uint8Array([this.version,this.signatureType,this.publicKeyAlgorithm,this.hashAlgorithm])];if(6===this.version){const e=Ho(this.hashAlgorithm);if(null===this.salt)this.salt=ye(e);else if(e!==this.salt.length)throw Error("Provided salt does not have the required length")}else if(i.nonDeterministicSignaturesViaNotation){if(0!==this.rawNotations.filter((({name:e})=>e===Lo)).length)throw Error("Unexpected existing salt notation");{const e=ye(Ho(this.hashAlgorithm));this.rawNotations.push({name:Lo,value:e,humanReadable:!1,critical:!1})}}s.push(this.writeHashedSubPackets()),this.unhashedSubpackets=[],this.signatureData=M.concat(s);const a=this.toHash(this.signatureType,t,n),o=await this.hash(this.signatureType,t,a,n);this.signedHashValue=I(v(o),0,2);const c=async()=>Da(this.publicKeyAlgorithm,this.hashAlgorithm,e.publicParams,e.privateParams,a,await K(o));M.isStream(o)?this.params=c():(this.params=await c(),this[Mo]=!0)}writeHashedSubPackets(){const e=Q.signatureSubpacket,t=[];let r;if(null===this.created)throw Error("Missing signature creation time");t.push(Oo(e.signatureCreationTime,!0,M.writeDate(this.created))),null!==this.signatureExpirationTime&&t.push(Oo(e.signatureExpirationTime,!0,M.writeNumber(this.signatureExpirationTime,4))),null!==this.exportable&&t.push(Oo(e.exportableCertification,!0,new Uint8Array([this.exportable?1:0]))),null!==this.trustLevel&&(r=new Uint8Array([this.trustLevel,this.trustAmount]),t.push(Oo(e.trustSignature,!0,r))),null!==this.regularExpression&&t.push(Oo(e.regularExpression,!0,this.regularExpression)),null!==this.revocable&&t.push(Oo(e.revocable,!0,new Uint8Array([this.revocable?1:0]))),null!==this.keyExpirationTime&&t.push(Oo(e.keyExpirationTime,!0,M.writeNumber(this.keyExpirationTime,4))),null!==this.preferredSymmetricAlgorithms&&(r=M.stringToUint8Array(M.uint8ArrayToString(this.preferredSymmetricAlgorithms)),t.push(Oo(e.preferredSymmetricAlgorithms,!1,r))),null!==this.revocationKeyClass&&(r=new Uint8Array([this.revocationKeyClass,this.revocationKeyAlgorithm]),r=M.concat([r,this.revocationKeyFingerprint]),t.push(Oo(e.revocationKey,!1,r))),!this.issuerKeyID.isNull()&&this.issuerKeyVersion<5&&t.push(Oo(e.issuerKeyID,!0,this.issuerKeyID.write())),this.rawNotations.forEach((({name:n,value:i,humanReadable:s,critical:a})=>{r=[new Uint8Array([s?128:0,0,0,0])];const o=M.encodeUTF8(n);r.push(M.writeNumber(o.length,2)),r.push(M.writeNumber(i.length,2)),r.push(o),r.push(i),r=M.concat(r),t.push(Oo(e.notationData,a,r))})),null!==this.preferredHashAlgorithms&&(r=M.stringToUint8Array(M.uint8ArrayToString(this.preferredHashAlgorithms)),t.push(Oo(e.preferredHashAlgorithms,!1,r))),null!==this.preferredCompressionAlgorithms&&(r=M.stringToUint8Array(M.uint8ArrayToString(this.preferredCompressionAlgorithms)),t.push(Oo(e.preferredCompressionAlgorithms,!1,r))),null!==this.keyServerPreferences&&(r=M.stringToUint8Array(M.uint8ArrayToString(this.keyServerPreferences)),t.push(Oo(e.keyServerPreferences,!1,r))),null!==this.preferredKeyServer&&t.push(Oo(e.preferredKeyServer,!1,M.encodeUTF8(this.preferredKeyServer))),null!==this.isPrimaryUserID&&t.push(Oo(e.primaryUserID,!1,new Uint8Array([this.isPrimaryUserID?1:0]))),null!==this.policyURI&&t.push(Oo(e.policyURI,!1,M.encodeUTF8(this.policyURI))),null!==this.keyFlags&&(r=M.stringToUint8Array(M.uint8ArrayToString(this.keyFlags)),t.push(Oo(e.keyFlags,!0,r))),null!==this.signersUserID&&t.push(Oo(e.signersUserID,!1,M.encodeUTF8(this.signersUserID))),null!==this.reasonForRevocationFlag&&(r=M.stringToUint8Array(String.fromCharCode(this.reasonForRevocationFlag)+this.reasonForRevocationString),t.push(Oo(e.reasonForRevocation,!0,r))),null!==this.features&&(r=M.stringToUint8Array(M.uint8ArrayToString(this.features)),t.push(Oo(e.features,!1,r))),null!==this.signatureTargetPublicKeyAlgorithm&&(r=[new Uint8Array([this.signatureTargetPublicKeyAlgorithm,this.signatureTargetHashAlgorithm])],r.push(M.stringToUint8Array(this.signatureTargetHash)),r=M.concat(r),t.push(Oo(e.signatureTarget,!0,r))),null!==this.embeddedSignature&&t.push(Oo(e.embeddedSignature,!0,this.embeddedSignature.write())),null!==this.issuerFingerprint&&(r=[new Uint8Array([this.issuerKeyVersion]),this.issuerFingerprint],r=M.concat(r),t.push(Oo(e.issuerFingerprint,this.version>=5,r))),null!==this.preferredAEADAlgorithms&&(r=M.stringToUint8Array(M.uint8ArrayToString(this.preferredAEADAlgorithms)),t.push(Oo(e.preferredAEADAlgorithms,!1,r))),null!==this.preferredCipherSuites&&(r=new Uint8Array([].concat(...this.preferredCipherSuites)),t.push(Oo(e.preferredCipherSuites,!1,r)));const n=M.concat(t),i=M.writeNumber(n.length,6===this.version?4:2);return M.concat([i,n])}writeUnhashedSubPackets(){const e=this.unhashedSubpackets.map((({type:e,critical:t,body:r})=>Oo(e,t,r))),t=M.concat(e),r=M.writeNumber(t.length,6===this.version?4:2);return M.concat([r,t])}readSubPacket(e,t=!0){let r=0;const n=!!(128&e[r]),i=127&e[r];if(r++,t||(this.unhashedSubpackets.push({type:i,critical:n,body:e.subarray(r,e.length)}),No.has(i)))switch(i){case Q.signatureSubpacket.signatureCreationTime:this.created=M.readDate(e.subarray(r,e.length));break;case Q.signatureSubpacket.signatureExpirationTime:{const t=M.readNumber(e.subarray(r,e.length));this.signatureNeverExpires=0===t,this.signatureExpirationTime=t;break}case Q.signatureSubpacket.exportableCertification:this.exportable=1===e[r++];break;case Q.signatureSubpacket.trustSignature:this.trustLevel=e[r++],this.trustAmount=e[r++];break;case Q.signatureSubpacket.regularExpression:this.regularExpression=e[r];break;case Q.signatureSubpacket.revocable:this.revocable=1===e[r++];break;case Q.signatureSubpacket.keyExpirationTime:{const t=M.readNumber(e.subarray(r,e.length));this.keyExpirationTime=t,this.keyNeverExpires=0===t;break}case Q.signatureSubpacket.preferredSymmetricAlgorithms:this.preferredSymmetricAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.revocationKey:this.revocationKeyClass=e[r++],this.revocationKeyAlgorithm=e[r++],this.revocationKeyFingerprint=e.subarray(r,r+20);break;case Q.signatureSubpacket.issuerKeyID:if(4===this.version)this.issuerKeyID.read(e.subarray(r,e.length));else if(t)throw Error("Unexpected Issuer Key ID subpacket");break;case Q.signatureSubpacket.notationData:{const t=!!(128&e[r]);r+=4;const i=M.readNumber(e.subarray(r,r+2));r+=2;const s=M.readNumber(e.subarray(r,r+2));r+=2;const a=M.decodeUTF8(e.subarray(r,r+i)),o=e.subarray(r+i,r+i+s);this.rawNotations.push({name:a,humanReadable:t,value:o,critical:n}),t&&(this.notations[a]=M.decodeUTF8(o));break}case Q.signatureSubpacket.preferredHashAlgorithms:this.preferredHashAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.preferredCompressionAlgorithms:this.preferredCompressionAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.keyServerPreferences:this.keyServerPreferences=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.preferredKeyServer:this.preferredKeyServer=M.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.primaryUserID:this.isPrimaryUserID=0!==e[r++];break;case Q.signatureSubpacket.policyURI:this.policyURI=M.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.keyFlags:this.keyFlags=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.signersUserID:this.signersUserID=M.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.reasonForRevocation:this.reasonForRevocationFlag=e[r++],this.reasonForRevocationString=M.decodeUTF8(e.subarray(r,e.length));break;case Q.signatureSubpacket.features:this.features=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.signatureTarget:{this.signatureTargetPublicKeyAlgorithm=e[r++],this.signatureTargetHashAlgorithm=e[r++];const t=Qe(this.signatureTargetHashAlgorithm);this.signatureTargetHash=M.uint8ArrayToString(e.subarray(r,r+t));break}case Q.signatureSubpacket.embeddedSignature:this.embeddedSignature=new Fo,this.embeddedSignature.read(e.subarray(r,e.length));break;case Q.signatureSubpacket.issuerFingerprint:this.issuerKeyVersion=e[r++],this.issuerFingerprint=e.subarray(r,e.length),this.issuerKeyVersion>=5?this.issuerKeyID.read(this.issuerFingerprint):this.issuerKeyID.read(this.issuerFingerprint.subarray(-8));break;case Q.signatureSubpacket.preferredAEADAlgorithms:this.preferredAEADAlgorithms=[...e.subarray(r,e.length)];break;case Q.signatureSubpacket.preferredCipherSuites:this.preferredCipherSuites=[];for(let t=r;t<e.length;t+=2)this.preferredCipherSuites.push([e[t],e[t+1]]);break;default:this.unknownSubpackets.push({type:i,critical:n,body:e.subarray(r,e.length)})}}readSubPackets(e,t=!0,r){const n=6===this.version?4:2,i=M.readNumber(e.subarray(0,n));let s=n;for(;s<2+i;){const n=Ht(e.subarray(s,e.length));s+=n.offset,this.readSubPacket(e.subarray(s,s+n.len),t,r),s+=n.len}return s}toSign(e,t){const r=Q.signature;switch(e){case r.binary:return null!==t.text?M.encodeUTF8(t.getText(!0)):t.getBytes(!0);case r.text:{const e=t.getBytes(!0);return M.canonicalizeEOL(e)}case r.standalone:return new Uint8Array(0);case r.certGeneric:case r.certPersona:case r.certCasual:case r.certPositive:case r.certRevocation:{let e,n;if(t.userID)n=180,e=t.userID;else{if(!t.userAttribute)throw Error("Either a userID or userAttribute packet needs to be supplied for certification.");n=209,e=t.userAttribute}const i=e.write();return M.concat([this.toSign(r.key,t),new Uint8Array([n]),M.writeNumber(i.length,4),i])}case r.subkeyBinding:case r.subkeyRevocation:case r.keyBinding:return M.concat([this.toSign(r.key,t),this.toSign(r.key,{key:t.bind})]);case r.key:if(void 0===t.key)throw Error("Key packet is required for this signature.");return t.key.writeForHash(this.version);case r.keyRevocation:return this.toSign(r.key,t);case r.timestamp:return new Uint8Array(0);case r.thirdParty:throw Error("Not implemented");default:throw Error("Unknown signature type.")}}calculateTrailer(e,t){let r=0;return b(v(this.signatureData),(e=>{r+=e.length}),(()=>{const n=[];return 5!==this.version||this.signatureType!==Q.signature.binary&&this.signatureType!==Q.signature.text||(t?n.push(new Uint8Array(6)):n.push(e.writeHeader())),n.push(new Uint8Array([this.version,255])),5===this.version&&n.push(new Uint8Array(4)),n.push(M.writeNumber(r,4)),M.concat(n)}))}toHash(e,t,r=!1){const n=this.toSign(e,t);return M.concat([this.salt||new Uint8Array,n,this.signatureData,this.calculateTrailer(t,r)])}async hash(e,t,r,n=!1){if(6===this.version&&this.salt.length!==Ho(this.hashAlgorithm))throw Error("Signature salt does not have the expected length");return r||(r=this.toHash(e,t,n)),xe(this.hashAlgorithm,r)}async verify(e,t,r,n=new Date,i=!1,s=R){if(!this.issuerKeyID.equals(e.getKeyID()))throw Error("Signature was not issued by the given public key");if(this.publicKeyAlgorithm!==e.algorithm)throw Error("Public key algorithm used to sign signature does not match issuer key algorithm.");const a=t===Q.signature.binary||t===Q.signature.text;if(!(this[Mo]&&!a)){let n,s;if(this.hashed?s=await this.hashed:(n=this.toHash(t,r,i),s=await this.hash(t,r,n)),s=await K(s),this.signedHashValue[0]!==s[0]||this.signedHashValue[1]!==s[1])throw Error("Signed digest did not match");this.params=await this.params;const a=this.publicKeyAlgorithm===Q.publicKey.hmac?e.privateParams:null;if(this[Mo]=await Pa(this.publicKeyAlgorithm,this.hashAlgorithm,this.params,e.publicParams,a,n,s),!this[Mo])throw Error("Signature verification failed")}const o=M.normalizeDate(n);if(o&&this.created>o)throw Error("Signature creation time is in the future");if(o&&o>=this.getExpirationTime())throw Error("Signature is expired");if(s.rejectHashAlgorithms.has(this.hashAlgorithm))throw Error("Insecure hash algorithm: "+Q.read(Q.hash,this.hashAlgorithm).toUpperCase());if(s.rejectMessageHashAlgorithms.has(this.hashAlgorithm)&&[Q.signature.binary,Q.signature.text].includes(this.signatureType))throw Error("Insecure message hash algorithm: "+Q.read(Q.hash,this.hashAlgorithm).toUpperCase());if(this.unknownSubpackets.forEach((({type:e,critical:t})=>{if(t)throw Error("Unknown critical signature subpacket type "+e)})),this.rawNotations.forEach((({name:e,critical:t})=>{if(t&&s.knownNotations.indexOf(e)<0)throw Error("Unknown critical notation: "+e)})),null!==this.revocationKeyClass)throw Error("This key is intended to be revoked with an authorized key, which OpenPGP.js does not support.")}isExpired(e=new Date){const t=M.normalizeDate(e);return null!==t&&!(this.created<=t&&t<this.getExpirationTime())}getExpirationTime(){return this.signatureNeverExpires?1/0:new Date(this.created.getTime()+1e3*this.signatureExpirationTime)}}function Oo(e,t,r){const n=[];return n.push(_t(r.length+1)),n.push(new Uint8Array([(t?128:0)|e])),n.push(r),M.concat(n)}function Ho(e){switch(e){case Q.hash.sha256:return 16;case Q.hash.sha384:return 24;case Q.hash.sha512:return 32;case Q.hash.sha224:case Q.hash.sha3_256:return 16;case Q.hash.sha3_512:return 32;default:throw Error("Unsupported hash function")}}class _o{static get tag(){return Q.packet.onePassSignature}static fromSignaturePacket(e,t){const r=new _o;return r.version=6===e.version?6:3,r.signatureType=e.signatureType,r.hashAlgorithm=e.hashAlgorithm,r.publicKeyAlgorithm=e.publicKeyAlgorithm,r.issuerKeyID=e.issuerKeyID,r.salt=e.salt,r.issuerFingerprint=e.issuerFingerprint,r.flags=t?1:0,r}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.salt=null,this.issuerKeyID=null,this.issuerFingerprint=null,this.flags=null}read(e){let t=0;if(this.version=e[t++],3!==this.version&&6!==this.version)throw new Yt(`Version ${this.version} of the one-pass signature packet is unsupported.`);if(this.signatureType=e[t++],this.hashAlgorithm=e[t++],this.publicKeyAlgorithm=e[t++],6===this.version){const r=e[t++];this.salt=e.subarray(t,t+r),t+=r,this.issuerFingerprint=e.subarray(t,t+32),t+=32,this.issuerKeyID=new To,this.issuerKeyID.read(this.issuerFingerprint)}else this.issuerKeyID=new To,this.issuerKeyID.read(e.subarray(t,t+8)),t+=8;return this.flags=e[t++],this}write(){const e=[new Uint8Array([this.version,this.signatureType,this.hashAlgorithm,this.publicKeyAlgorithm])];return 6===this.version?e.push(new Uint8Array([this.salt.length]),this.salt,this.issuerFingerprint):e.push(this.issuerKeyID.write()),e.push(new Uint8Array([this.flags])),M.concatUint8Array(e)}calculateTrailer(...e){return U((async()=>Fo.prototype.calculateTrailer.apply(await this.correspondingSig,e)))}async verify(){const e=await this.correspondingSig;if(!e||e.constructor.tag!==Q.packet.signature)throw Error("Corresponding signature packet missing");if(e.signatureType!==this.signatureType||e.hashAlgorithm!==this.hashAlgorithm||e.publicKeyAlgorithm!==this.publicKeyAlgorithm||!e.issuerKeyID.equals(this.issuerKeyID)||3===this.version&&6===e.version||6===this.version&&6!==e.version||6===this.version&&!M.equalsUint8Array(e.issuerFingerprint,this.issuerFingerprint)||6===this.version&&!M.equalsUint8Array(e.salt,this.salt))throw Error("Corresponding signature packet does not match one-pass signature packet");return e.hashed=this.hashed,e.verify.apply(e,arguments)}}_o.prototype.hash=Fo.prototype.hash,_o.prototype.toHash=Fo.prototype.toHash,_o.prototype.toSign=Fo.prototype.toSign;class zo extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,zo),this.name="GrammarError"}}const Go=(e,t)=>{const r=e.filter((e=>e!==Q.packet.marker&&e!==Q.packet.padding&&!(e=>{try{return Q.read(Q.packet,e),!1}catch(e){return!0}})(e)));return 1===(n=r).length&&n[0]===Q.packet.literalData||(e=>1===e.length&&e[0]===Q.packet.compressedData)(r)||(e=>{const t=(e,t)=>e.every((e=>new Set([Q.packet.publicKeyEncryptedSessionKey,Q.packet.symEncryptedSessionKey]).has(e))),r=e.findIndex((e=>new Set([Q.packet.aeadEncryptedData,Q.packet.symmetricallyEncryptedData,Q.packet.symEncryptedIntegrityProtectedData]).has(e)));return r<0?t(e):r===e.length-1&&t(e.slice(0,r))})(r)||((e,t)=>{if(0===e.findIndex((e=>e===Q.packet.signature)))return Go(e.slice(1),t);if(0===e.findIndex((e=>e===Q.packet.onePassSignature))){const r=M.findLastIndex(e,(e=>e===Q.packet.signature));return!(r!==e.length-1&&!t)&&Go(e.slice(1,r<0?void 0:r),t)}return!1})(r,t);var n},qo=({delayReporting:e})=>{let t=!1;return(r,n,i)=>{if(e&&n)return null;if(!Go(r,n)){const e=new zo(`Data does not respect OpenPGP grammar [${r}]`);if(t||(i.pluggableGrammarErrorReporter?.(e.message),M.printDebugError(e),t=!0),i.enforceGrammar)throw e;return!0}return!0}};function jo(e,t){if(!t[e]){let t;try{t=Q.read(Q.packet,e)}catch(t){throw new Zt("Unknown packet type with tag: "+e)}throw Error("Packet not allowed in this context: "+t)}return new t[e]}class Vo extends Array{static async fromBinary(e,t,r=R,n=null){const i=new Vo;return await i.read(e,t,r,n),i}async read(e,t,r=R,n=null){r.additionalAllowedPackets.length&&(t={...t,...M.constructAllowedPackets(r.additionalAllowedPackets)}),this.stream=k(e,(async(e,i)=>{const s=D(i),a=[];try{for(;;){await s.ready;if(await Vt(e,(async e=>{try{if(e.tag===Q.packet.marker||e.tag===Q.packet.trust||e.tag===Q.packet.padding)return;const i=jo(e.tag,t);i.packets=new Vo,i.fromStream=M.isStream(e.packet),await i.read(e.packet,r),await s.write(i),a.push(e.tag),n?.(a,!0,r)}catch(t){if(t instanceof Zt){if(!(e.tag<=39))return;await s.abort(t)}const i=!r.ignoreUnsupportedPackets&&t instanceof Yt,o=!(r.ignoreMalformedPackets||t instanceof Yt);if(i||o||t instanceof zo||jt(e.tag))await s.abort(t);else{const t=new Wt(e.tag,e.packet);await s.write(t),a.push(e.tag),n?.(a,!0,r)}M.printDebugError(t)}})))return n?.(a,!1,r),await s.ready,void await s.close()}}catch(e){await s.abort(e)}}));const i=P(this.stream);for(;;){const{done:e,value:t}=await i.read();if(e?this.stream=null:this.push(t),e||jt(t.constructor.tag))break}i.releaseLock()}write(){const e=[];for(let t=0;t<this.length;t++){const r=this[t]instanceof Wt?this[t].tag:this[t].constructor.tag,n=this[t].write();if(M.isStream(n)&&jt(this[t].constructor.tag)){let t=[],i=0;const s=512;e.push(Gt(r)),e.push(b(n,(e=>{if(t.push(e),i+=e.length,i>=s){const e=Math.min(Math.log(i)/Math.LN2|0,30),r=2**e,n=M.concat([zt(e)].concat(t));return t=[n.subarray(1+r)],i=t[0].length,n.subarray(0,1+r)}}),(()=>M.concat([_t(i)].concat(t)))))}else{if(M.isStream(n)){let t=0;e.push(b(v(n),(e=>{t+=e.length}),(()=>qt(r,t))))}else e.push(qt(r,n.length));e.push(n)}}return M.concat(e)}filterByTag(...e){const t=new Vo,r=e=>t=>e===t;for(let n=0;n<this.length;n++)e.some(r(this[n].constructor.tag))&&t.push(this[n]);return t}findPacket(e){return this.find((t=>t.constructor.tag===e))}indexOfTag(...e){const t=[],r=this,n=e=>t=>e===t;for(let i=0;i<this.length;i++)e.some(n(r[i].constructor.tag))&&t.push(i);return t}}const Yo=/*#__PURE__*/M.constructAllowedPackets([Ro,_o,Fo]);class Zo{static get tag(){return Q.packet.compressedData}constructor(e=R){this.packets=null,this.algorithm=e.preferredCompressionAlgorithm,this.compressed=null}async read(e,t=R){await E(e,(async e=>{this.algorithm=await e.readByte(),this.compressed=e.remainder(),await this.decompress(t)}))}write(){return null===this.compressed&&this.compress(),M.concat([new Uint8Array([this.algorithm]),this.compressed])}async decompress(e=R){const t=Q.read(Q.compression,this.algorithm),r=ec[t];if(!r)throw Error(t+" decompression not supported");this.packets=await Vo.fromBinary(await r(this.compressed),Yo,e,qo({enforceDelay:!1}))}compress(){const e=Q.read(Q.compression,this.algorithm),t=$o[e];if(!t)throw Error(e+" compression not supported");this.compressed=t(this.packets.write())}}function Wo(e,t){return r=>{if(!M.isStream(r)||a(r))return U((()=>K(r).then((e=>new Promise(((r,n)=>{const i=new t;i.ondata=e=>{r(e)};try{i.push(e,!0)}catch(e){n(e)}}))))));if(e)try{const t=e();return r.pipeThrough(t)}catch(e){if("TypeError"!==e.name)throw e}const n=r.getReader(),i=new t;return new ReadableStream({async start(e){for(i.ondata=async(t,r)=>{e.enqueue(t),r&&e.close()};;){const{done:e,value:t}=await n.read();if(e)return void i.push(new Uint8Array,!0);t.length&&i.push(t)}}})}}function Jo(){return async function(e){const{decode:t}=await Promise.resolve().then((function(){return Fg}));return U((async()=>t(await K(e))))}}const Xo=e=>({compressor:"undefined"!=typeof CompressionStream&&(()=>new CompressionStream(e)),decompressor:"undefined"!=typeof DecompressionStream&&(()=>new DecompressionStream(e))}),$o={zip:/*#__PURE__*/Wo(Xo("deflate-raw").compressor,Uo),zlib:/*#__PURE__*/Wo(Xo("deflate").compressor,Do)},ec={uncompressed:e=>e,zip:/*#__PURE__*/Wo(Xo("deflate-raw").decompressor,Po),zlib:/*#__PURE__*/Wo(Xo("deflate").decompressor,xo),bzip2:/*#__PURE__*/Jo()},tc=/*#__PURE__*/M.constructAllowedPackets([Ro,Zo,_o,Fo]);class rc{static get tag(){return Q.packet.symEncryptedIntegrityProtectedData}static fromObject({version:e,aeadAlgorithm:t}){if(1!==e&&2!==e)throw Error("Unsupported SEIPD version");const r=new rc;return r.version=e,2===e&&(r.aeadAlgorithm=t),r}constructor(){this.version=null,this.cipherAlgorithm=null,this.aeadAlgorithm=null,this.chunkSizeByte=null,this.salt=null,this.encrypted=null,this.packets=null}async read(e){await E(e,(async e=>{if(this.version=await e.readByte(),1!==this.version&&2!==this.version)throw new Yt(`Version ${this.version} of the SEIP packet is unsupported.`);2===this.version&&(this.cipherAlgorithm=await e.readByte(),this.aeadAlgorithm=await e.readByte(),this.chunkSizeByte=await e.readByte(),this.salt=await e.readBytes(32)),this.encrypted=e.remainder()}))}write(){return 2===this.version?M.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.salt,this.encrypted]):M.concat([new Uint8Array([this.version]),this.encrypted])}async encrypt(e,t,r=R){const{blockSize:n,keySize:i}=ri(e);if(t.length!==i)throw Error("Unexpected session key size");let s=this.packets.write();if(a(s)&&(s=await K(s)),2===this.version)this.cipherAlgorithm=e,this.salt=ye(32),this.chunkSizeByte=r.aeadChunkSizeByte,this.encrypted=await nc(this,"encrypt",t,s);else{const r=await xs(e),i=new Uint8Array([211,20]),a=M.concat([r,s,i]),o=await xe(Q.hash.sha1,B(a)),c=M.concat([a,o]);this.encrypted=await Qs(e,t,c,new Uint8Array(n))}return!0}async decrypt(e,t,r=R){if(t.length!==ri(e).keySize)throw Error("Unexpected session key size");let n,i,s=v(this.encrypted);if(a(s)&&(s=await K(s)),2===this.version){if(this.cipherAlgorithm!==e)throw Error("Unexpected session key algorithm");n=await nc(this,"decrypt",t,s),i=qo({delayReporting:!1})}else{const{blockSize:a}=ri(e),o=await Rs(e,t,s,new Uint8Array(a)),c=M.isStream(s)&&r.allowUnauthenticatedStream;i=qo({delayReporting:c});const u=I(B(o),-20),h=I(o,0,-20),l=Promise.all([K(await xe(Q.hash.sha1,B(h))),K(u)]).then((([e,t])=>{if(!M.equalsUint8Array(e,t))throw Error("Modification detected.");return new Uint8Array})),y=I(h,a+2);n=I(y,0,-2),n=d([n,U((()=>l))]),c||(n=await K(n))}return this.packets=await Vo.fromBinary(n,tc,r,i),!0}}async function nc(e,t,r,n){const i=e instanceof rc&&2===e.version,s=!i&&e.constructor.tag===Q.packet.aeadEncryptedData;if(!i&&!s)throw Error("Unexpected packet type");const a=ma(e.aeadAlgorithm,s),o="decrypt"===t?a.tagLength:0,c="encrypt"===t?a.tagLength:0,u=2**(e.chunkSizeByte+6)+o,h=s?8:0,l=new ArrayBuffer(13+h),y=new Uint8Array(l,0,5+h),f=new Uint8Array(l),p=new DataView(l),g=new Uint8Array(l,5,8);y.set([192|e.constructor.tag,e.version,e.cipherAlgorithm,e.aeadAlgorithm,e.chunkSizeByte],0);let d,w,m=0,b=Promise.resolve(),E=0,v=0;if(i){const{keySize:t}=ri(e.cipherAlgorithm),{ivLength:n}=a,i=new Uint8Array(l,0,5),s=await oi(Q.hash.sha256,r,e.salt,i,t+n);r=s.subarray(0,t),d=s.subarray(t),d.fill(0,d.length-8),w=new DataView(d.buffer,d.byteOffset,d.byteLength)}else d=e.iv;const B=await a(e.cipherAlgorithm,r);return k(n,(async(r,n)=>{if("array"!==M.isStream(r)){const t=new TransformStream({},{highWaterMark:M.getHardwareConcurrency()*2**(e.chunkSizeByte+6),size:e=>e.length});A(t.readable,n),n=t.writable}const s=P(r),a=D(n);try{for(;;){let e=await s.readBytes(u+o)||new Uint8Array;const r=e.subarray(e.length-o);let n,l,A;if(e=e.subarray(0,e.length-o),i)A=d;else{A=d.slice();for(let e=0;e<8;e++)A[d.length-8+e]^=g[e]}if(!m||e.length?(s.unshift(r),n=B[t](e,A,y),n.catch((()=>{})),v+=e.length-o+c):(p.setInt32(5+h+4,E),n=B[t](r,A,f),n.catch((()=>{})),v+=c,l=!0),E+=e.length-o,b=b.then((()=>n)).then((async e=>{await a.ready,await a.write(e),v-=e.length})).catch((e=>a.abort(e))),(l||v>a.desiredSize)&&await b,l){await a.close();break}i?w.setInt32(d.length-4,++m):p.setInt32(9,++m)}}catch(e){await a.ready.catch((()=>{})),await a.abort(e)}}))}const ic=/*#__PURE__*/M.constructAllowedPackets([Ro,Zo,_o,Fo]);class sc{static get tag(){return Q.packet.aeadEncryptedData}constructor(){this.version=1,this.cipherAlgorithm=null,this.aeadAlgorithm=Q.aead.eax,this.chunkSizeByte=null,this.iv=null,this.encrypted=null,this.packets=null}async read(e){await E(e,(async e=>{const t=await e.readByte();if(1!==t)throw new Yt(`Version ${t} of the AEAD-encrypted data packet is not supported.`);this.cipherAlgorithm=await e.readByte(),this.aeadAlgorithm=await e.readByte(),this.chunkSizeByte=await e.readByte();const r=ma(this.aeadAlgorithm,!0);this.iv=await e.readBytes(r.ivLength),this.encrypted=e.remainder()}))}write(){return M.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.iv,this.encrypted])}async decrypt(e,t,r=R){this.packets=await Vo.fromBinary(await nc(this,"decrypt",t,v(this.encrypted)),ic,r,qo({enforceDelay:!1}))}async encrypt(e,t,r=R){this.cipherAlgorithm=e;const{ivLength:n}=ma(this.aeadAlgorithm,!0);this.iv=ye(n),this.chunkSizeByte=r.aeadChunkSizeByte;const i=this.packets.write();this.encrypted=await nc(this,"encrypt",t,i)}}const ac=new Set([Q.publicKey.x25519,Q.publicKey.x448,Q.publicKey.pqc_mlkem_x25519]);class oc{static get tag(){return Q.packet.publicKeyEncryptedSessionKey}constructor(){this.version=null,this.publicKeyID=new To,this.publicKeyVersion=null,this.publicKeyFingerprint=null,this.publicKeyAlgorithm=null,this.sessionKey=null,this.sessionKeyAlgorithm=null,this.encrypted={}}static fromObject({version:e,encryptionKeyPacket:t,anonymousRecipient:r,sessionKey:n,sessionKeyAlgorithm:i}){const s=new oc;if(3!==e&&6!==e)throw Error("Unsupported PKESK version");return s.version=e,6===e&&(s.publicKeyVersion=r?null:t.version,s.publicKeyFingerprint=r?null:t.getFingerprintBytes()),s.publicKeyID=r?To.wildcard():t.getKeyID(),s.publicKeyAlgorithm=t.algorithm,s.sessionKey=n,s.sessionKeyAlgorithm=i,s}read(e){let t=0;if(this.version=e[t++],3!==this.version&&6!==this.version)throw new Yt(`Version ${this.version} of the PKESK packet is unsupported.`);if(6===this.version){const r=e[t++];if(r){this.publicKeyVersion=e[t++];const n=r-1;this.publicKeyFingerprint=e.subarray(t,t+n),t+=n,this.publicKeyVersion>=5?this.publicKeyID.read(this.publicKeyFingerprint):this.publicKeyID.read(this.publicKeyFingerprint.subarray(-8))}else this.publicKeyID=To.wildcard()}else t+=this.publicKeyID.read(e.subarray(t,t+8));if(this.publicKeyAlgorithm=e[t++],this.encrypted=function(e,t){let r=0;switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:return{c:M.readMPI(t.subarray(r))};case Q.publicKey.elgamal:{const e=M.readMPI(t.subarray(r));return r+=e.length+2,{c1:e,c2:M.readMPI(t.subarray(r))}}case Q.publicKey.ecdh:{const e=M.readMPI(t.subarray(r));r+=e.length+2;const n=new bs;return n.read(t.subarray(r)),{V:e,C:n}}case Q.publicKey.x25519:case Q.publicKey.x448:{const n=Ua(e),i=M.readExactSubarray(t,r,r+n);r+=i.length;const s=new Ks;return s.read(t.subarray(r)),{ephemeralPublicKey:i,C:s}}case Q.publicKey.aead:{const e=new Bs;r+=e.read(t.subarray(r));const{ivLength:n}=ma(e.getValue()),i=t.subarray(r,r+n);r+=n;const s=new ks;return r+=s.read(t.subarray(r)),{aeadMode:e,iv:i,c:s}}case Q.publicKey.pqc_mlkem_x25519:{const e=M.readExactSubarray(t,r,r+Ua(Q.publicKey.x25519));r+=e.length;const n=M.readExactSubarray(t,r,r+1088);r+=n.length;const i=new Ks;return i.read(t.subarray(r)),{eccCipherText:e,mlkemCipherText:n,C:i}}default:throw new Yt("Unknown public key encryption algorithm.")}}(this.publicKeyAlgorithm,e.subarray(t)),ac.has(this.publicKeyAlgorithm))if(3===this.version)this.sessionKeyAlgorithm=Q.write(Q.symmetric,this.encrypted.C.algorithm);else if(null!==this.encrypted.C.algorithm)throw Error("Unexpected cleartext symmetric algorithm")}write(){const e=[new Uint8Array([this.version])];return 6===this.version?null!==this.publicKeyFingerprint?(e.push(new Uint8Array([this.publicKeyFingerprint.length+1,this.publicKeyVersion])),e.push(this.publicKeyFingerprint)):e.push(new Uint8Array([0])):e.push(this.publicKeyID.write()),e.push(new Uint8Array([this.publicKeyAlgorithm]),va(this.publicKeyAlgorithm,this.encrypted)),M.concatUint8Array(e)}async encrypt(e){const t=Q.write(Q.publicKey,this.publicKeyAlgorithm),r=3===this.version?this.sessionKeyAlgorithm:null,n=5===e.version?e.getFingerprintBytes().subarray(0,20):e.getFingerprintBytes(),i=cc(this.version,t,r,this.sessionKey),s=t===Q.publicKey.aead?e.privateParams:null;this.encrypted=await ba(t,r,e.publicParams,s,i,n)}async decrypt(e,t){if(this.publicKeyAlgorithm!==e.algorithm)throw Error("Decryption error");const r=t?cc(this.version,this.publicKeyAlgorithm,t.sessionKeyAlgorithm,t.sessionKey):null,n=5===e.version?e.getFingerprintBytes().subarray(0,20):e.getFingerprintBytes(),i=await ka(this.publicKeyAlgorithm,e.publicParams,e.privateParams,this.encrypted,n,r),{sessionKey:s,sessionKeyAlgorithm:a}=function(e,t,r,n){switch(t){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.elgamal:case Q.publicKey.ecdh:case Q.publicKey.aead:{const t=r.subarray(0,r.length-2),i=r.subarray(r.length-2),s=M.writeChecksum(t.subarray(t.length%8)),a=s[0]===i[0]&s[1]===i[1],o=6===e?{sessionKeyAlgorithm:null,sessionKey:t}:{sessionKeyAlgorithm:t[0],sessionKey:t.subarray(1)};if(n){const t=a&o.sessionKeyAlgorithm===n.sessionKeyAlgorithm&o.sessionKey.length===n.sessionKey.length;return{sessionKey:M.selectUint8Array(t,o.sessionKey,n.sessionKey),sessionKeyAlgorithm:6===e?null:M.selectUint8(t,o.sessionKeyAlgorithm,n.sessionKeyAlgorithm)}}if(a&&(6===e||Q.read(Q.symmetric,o.sessionKeyAlgorithm)))return o;throw Error("Decryption error")}case Q.publicKey.x25519:case Q.publicKey.x448:case Q.publicKey.pqc_mlkem_x25519:return{sessionKeyAlgorithm:null,sessionKey:r};default:throw Error("Unsupported public key algorithm")}}(this.version,this.publicKeyAlgorithm,i,t);if(3===this.version){const e=!ac.has(this.publicKeyAlgorithm);if(this.sessionKeyAlgorithm=e?a:this.sessionKeyAlgorithm,s.length!==ri(this.sessionKeyAlgorithm).keySize)throw Error("Unexpected session key size")}this.sessionKey=s}}function cc(e,t,r,n){switch(t){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.elgamal:case Q.publicKey.ecdh:case Q.publicKey.aead:return M.concatUint8Array([new Uint8Array(6===e?[]:[r]),n,M.writeChecksum(n.subarray(n.length%8))]);case Q.publicKey.x25519:case Q.publicKey.x448:case Q.publicKey.pqc_mlkem_x25519:return n;default:throw Error("Unsupported public key algorithm")}}class uc{static get tag(){return Q.packet.symEncryptedSessionKey}constructor(e=R){this.version=e.aeadProtect?6:4,this.sessionKey=null,this.sessionKeyEncryptionAlgorithm=null,this.sessionKeyAlgorithm=null,this.aeadAlgorithm=Q.write(Q.aead,e.preferredAEADAlgorithm),this.encrypted=null,this.s2k=null,this.iv=null}read(e){let t=0;if(this.version=e[t++],4!==this.version&&5!==this.version&&6!==this.version)throw new Yt(`Version ${this.version} of the SKESK packet is unsupported.`);6===this.version&&t++;const r=e[t++];this.version>=5&&(this.aeadAlgorithm=e[t++],6===this.version&&t++);const n=e[t++];if(this.s2k=Fa(n),t+=this.s2k.read(e.subarray(t,e.length)),this.version>=5){const r=ma(this.aeadAlgorithm,!0);this.iv=e.subarray(t,t+=r.ivLength)}this.version>=5||t<e.length?(this.encrypted=e.subarray(t,e.length),this.sessionKeyEncryptionAlgorithm=r):this.sessionKeyAlgorithm=r}write(){const e=null===this.encrypted?this.sessionKeyAlgorithm:this.sessionKeyEncryptionAlgorithm;let t;const r=this.s2k.write();if(6===this.version){const n=r.length,i=3+n+this.iv.length;t=M.concatUint8Array([new Uint8Array([this.version,i,e,this.aeadAlgorithm,n]),r,this.iv,this.encrypted])}else 5===this.version?t=M.concatUint8Array([new Uint8Array([this.version,e,this.aeadAlgorithm]),r,this.iv,this.encrypted]):(t=M.concatUint8Array([new Uint8Array([this.version,e]),r]),null!==this.encrypted&&(t=M.concatUint8Array([t,this.encrypted])));return t}async decrypt(e){const t=null!==this.sessionKeyEncryptionAlgorithm?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm,{blockSize:r,keySize:n}=ri(t),i=await this.s2k.produceKey(e,n);if(this.version>=5){const e=ma(this.aeadAlgorithm,!0),r=new Uint8Array([192|uc.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),s=6===this.version?await oi(Q.hash.sha256,i,new Uint8Array,r,n):i,a=await e(t,s);this.sessionKey=await a.decrypt(this.encrypted,this.iv,r)}else if(null!==this.encrypted){const e=await Rs(t,i,this.encrypted,new Uint8Array(r));if(this.sessionKeyAlgorithm=Q.write(Q.symmetric,e[0]),this.sessionKey=e.subarray(1,e.length),this.sessionKey.length!==ri(this.sessionKeyAlgorithm).keySize)throw Error("Unexpected session key size")}else this.sessionKey=i}async encrypt(e,t=R){const r=null!==this.sessionKeyEncryptionAlgorithm?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm;this.sessionKeyEncryptionAlgorithm=r,this.s2k=Oa(t),this.s2k.generateSalt();const{blockSize:n,keySize:i}=ri(r),s=await this.s2k.produceKey(e,i);if(null===this.sessionKey&&(this.sessionKey=Ka(this.sessionKeyAlgorithm)),this.version>=5){const e=ma(this.aeadAlgorithm);this.iv=ye(e.ivLength);const t=new Uint8Array([192|uc.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),n=6===this.version?await oi(Q.hash.sha256,s,new Uint8Array,t,i):s,a=await e(r,n);this.encrypted=await a.encrypt(this.sessionKey,this.iv,t)}else{const e=M.concatUint8Array([new Uint8Array([this.sessionKeyAlgorithm]),this.sessionKey]);this.encrypted=await Qs(r,s,e,new Uint8Array(n))}}}class hc{static get tag(){return Q.packet.publicKey}constructor(e=new Date,t=R){this.version=t.v6Keys?6:4,this.created=M.normalizeDate(e),this.algorithm=null,this.publicParams=null,this.expirationTimeV3=0,this.fingerprint=null,this.keyID=null}static fromSecretKeyPacket(e){const t=new hc,{version:r,created:n,algorithm:i,publicParams:s,keyID:a,fingerprint:o}=e;return t.version=r,t.created=n,t.algorithm=i,t.publicParams=s,t.keyID=a,t.fingerprint=o,t}async read(e,t=R){let r=0;if(this.version=e[r++],5===this.version&&!t.enableParsingV5Entities)throw new Yt("Support for parsing v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed");if(4===this.version||5===this.version||6===this.version){this.created=M.readDate(e.subarray(r,r+4)),r+=4,this.algorithm=e[r++],this.version>=5&&(r+=4);const{read:t,publicParams:n}=function(e,t){let r=0;switch(e){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:{const e=M.readMPI(t.subarray(r));r+=e.length+2;const n=M.readMPI(t.subarray(r));return r+=n.length+2,{read:r,publicParams:{n:e,e:n}}}case Q.publicKey.dsa:{const e=M.readMPI(t.subarray(r));r+=e.length+2;const n=M.readMPI(t.subarray(r));r+=n.length+2;const i=M.readMPI(t.subarray(r));r+=i.length+2;const s=M.readMPI(t.subarray(r));return r+=s.length+2,{read:r,publicParams:{p:e,q:n,g:i,y:s}}}case Q.publicKey.elgamal:{const e=M.readMPI(t.subarray(r));r+=e.length+2;const n=M.readMPI(t.subarray(r));r+=n.length+2;const i=M.readMPI(t.subarray(r));return r+=i.length+2,{read:r,publicParams:{p:e,g:n,y:i}}}case Q.publicKey.ecdsa:{const e=new Ot;r+=e.read(t),Ca(e);const n=M.readMPI(t.subarray(r));return r+=n.length+2,{read:r,publicParams:{oid:e,Q:n}}}case Q.publicKey.eddsaLegacy:{const e=new Ot;if(r+=e.read(t),Ca(e),e.getName()!==Q.curve.ed25519Legacy)throw Error("Unexpected OID for eddsaLegacy");let n=M.readMPI(t.subarray(r));return r+=n.length+2,n=M.leftPad(n,33),{read:r,publicParams:{oid:e,Q:n}}}case Q.publicKey.ecdh:{const e=new Ot;r+=e.read(t),Ca(e);const n=M.readMPI(t.subarray(r));r+=n.length+2;const i=new Es;return r+=i.read(t.subarray(r)),{read:r,publicParams:{oid:e,Q:n,kdfParams:i}}}case Q.publicKey.ed25519:case Q.publicKey.ed448:case Q.publicKey.x25519:case Q.publicKey.x448:{const n=M.readExactSubarray(t,r,r+Ua(e));return r+=n.length,{read:r,publicParams:{A:n}}}case Q.publicKey.hmac:case Q.publicKey.aead:{const e=new Ss;r+=e.read(t);const n=Qe(Q.hash.sha256),i=t.subarray(r,r+n);return r+=n,{read:r,publicParams:{cipher:e,digest:i}}}case Q.publicKey.pqc_mlkem_x25519:{const e=M.readExactSubarray(t,r,r+Ua(Q.publicKey.x25519));r+=e.length;const n=M.readExactSubarray(t,r,r+1184);return r+=n.length,{read:r,publicParams:{eccPublicKey:e,mlkemPublicKey:n}}}case Q.publicKey.pqc_mldsa_ed25519:{const e=M.readExactSubarray(t,r,r+Ua(Q.publicKey.ed25519));r+=e.length;const n=M.readExactSubarray(t,r,r+1952);return r+=n.length,{read:r,publicParams:{eccPublicKey:e,mldsaPublicKey:n}}}default:throw new Yt("Unknown public key encryption algorithm.")}}(this.algorithm,e.subarray(r));if(6===this.version&&n.oid&&(n.oid.getName()===Q.curve.curve25519Legacy||n.oid.getName()===Q.curve.ed25519Legacy))throw Error("Legacy curve25519 cannot be used with v6 keys");if(6!==this.version&&this.algorithm===Q.publicKey.pqc_mldsa_ed25519)throw Error("Unexpected key version: ML-DSA algorithms can only be used with v6 keys");return this.publicParams=n,r+=t,await this.computeFingerprintAndKeyID(),r}throw new Yt(`Version ${this.version} of the key packet is unsupported.`)}write(){const e=[];e.push(new Uint8Array([this.version])),e.push(M.writeDate(this.created)),e.push(new Uint8Array([this.algorithm]));const t=va(this.algorithm,this.publicParams);return this.version>=5&&e.push(M.writeNumber(t.length,4)),e.push(t),M.concatUint8Array(e)}writeForHash(e){const t=this.writePublicKey(),r=149+e,n=e>=5?4:2;return M.concatUint8Array([new Uint8Array([r]),M.writeNumber(t.length,n),t])}isDecrypted(){return null}getCreationTime(){return this.created}getKeyID(){return this.keyID}async computeFingerprintAndKeyID(){if(await this.computeFingerprint(),this.keyID=new To,this.version>=5)this.keyID.read(this.fingerprint.subarray(0,8));else{if(4!==this.version)throw Error("Unsupported key version");this.keyID.read(this.fingerprint.subarray(12,20))}}async computeFingerprint(){const e=this.writeForHash(this.version);if(this.version>=5)this.fingerprint=await xe(Q.hash.sha256,e);else{if(4!==this.version)throw Error("Unsupported key version");this.fingerprint=await xe(Q.hash.sha1,e)}}getFingerprintBytes(){return this.fingerprint}getFingerprint(){return M.uint8ArrayToHex(this.getFingerprintBytes())}hasSameFingerprintAs(e){return this.version===e.version&&M.equalsUint8Array(this.writePublicKey(),e.writePublicKey())}getAlgorithmInfo(){const e={};e.algorithm=Q.read(Q.publicKey,this.algorithm);const t=this.publicParams.n||this.publicParams.p;return t?e.bits=M.uint8ArrayBitLength(t):this.publicParams.oid?e.curve=this.publicParams.oid.getName():this.publicParams.cipher&&(e.symmetric=this.publicParams.cipher.getName()),e}}hc.prototype.readPublicKey=hc.prototype.read,hc.prototype.writePublicKey=hc.prototype.write;const lc=/*#__PURE__*/M.constructAllowedPackets([Ro,Zo,_o,Fo]);class yc{static get tag(){return Q.packet.symmetricallyEncryptedData}constructor(){this.encrypted=null,this.packets=null}read(e){this.encrypted=e}write(){return this.encrypted}async decrypt(e,t,r=R){if(!r.allowUnauthenticatedMessages)throw Error("Message is not authenticated.");const{blockSize:n}=ri(e),i=await K(v(this.encrypted)),s=await Rs(e,t,i.subarray(n+2),i.subarray(2,n+2));this.packets=await Vo.fromBinary(s,lc,r)}async encrypt(e,t,r=R){const n=this.packets.write(),{blockSize:i}=ri(e),s=await xs(e),a=await Qs(e,t,s,new Uint8Array(i)),o=await Qs(e,t,n,a.subarray(2));this.encrypted=M.concat([a,o])}}class fc{static get tag(){return Q.packet.marker}read(e){return 80===e[0]&&71===e[1]&&80===e[2]}write(){return new Uint8Array([80,71,80])}}class pc extends hc{static get tag(){return Q.packet.publicSubkey}constructor(e,t){super(e,t)}static fromSecretSubkeyPacket(e){const t=new pc,{version:r,created:n,algorithm:i,publicParams:s,keyID:a,fingerprint:o}=e;return t.version=r,t.created=n,t.algorithm=i,t.publicParams=s,t.keyID=a,t.fingerprint=o,t}}class gc{static get tag(){return Q.packet.userAttribute}constructor(){this.attributes=[]}read(e){let t=0;for(;t<e.length;){const r=Ht(e.subarray(t,e.length));t+=r.offset,this.attributes.push(M.uint8ArrayToString(e.subarray(t,t+r.len))),t+=r.len}}write(){const e=[];for(let t=0;t<this.attributes.length;t++)e.push(_t(this.attributes[t].length)),e.push(M.stringToUint8Array(this.attributes[t]));return M.concatUint8Array(e)}equals(e){return!!(e&&e instanceof gc)&&this.attributes.every((function(t,r){return t===e.attributes[r]}))}}class dc extends hc{static get tag(){return Q.packet.secretKey}constructor(e=new Date,t=R){super(e,t),this.keyMaterial=null,this.isEncrypted=null,this.s2kUsage=0,this.s2k=null,this.symmetric=null,this.aead=null,this.isLegacyAEAD=null,this.privateParams=null,this.usedModernAEAD=null}async read(e,t=R){let r=await this.readPublicKey(e,t);const n=r;this.s2kUsage=e[r++],5===this.version&&r++,6===this.version&&this.s2kUsage&&r++;try{if(255===this.s2kUsage||254===this.s2kUsage||253===this.s2kUsage){this.symmetric=e[r++],253===this.s2kUsage&&(this.aead=e[r++]),6===this.version&&r++;const t=e[r++];if(this.s2k=Fa(t),r+=this.s2k.read(e.subarray(r,e.length)),"gnu-dummy"===this.s2k.type)return}else this.s2kUsage&&(this.symmetric=this.s2kUsage);this.s2kUsage&&(this.isLegacyAEAD=253===this.s2kUsage&&(5===this.version||4===this.version&&t.parseAEADEncryptedV4KeysAsLegacy),253!==this.s2kUsage||this.isLegacyAEAD?(this.iv=e.subarray(r,r+ri(this.symmetric).blockSize),this.usedModernAEAD=!1):(this.iv=e.subarray(r,r+ma(this.aead).ivLength),this.usedModernAEAD=!0),r+=this.iv.length)}catch(t){if(!this.s2kUsage)throw t;this.unparseableKeyMaterial=e.subarray(n),this.isEncrypted=!0}if(5===this.version&&(r+=4),this.keyMaterial=e.subarray(r),this.isEncrypted=!!this.s2kUsage,!this.isEncrypted){let e;if(6===this.version)e=this.keyMaterial;else if(e=this.keyMaterial.subarray(0,-2),!M.equalsUint8Array(M.writeChecksum(e),this.keyMaterial.subarray(-2)))throw Error("Key checksum mismatch");try{const{read:t,privateParams:r}=await Ea(this.algorithm,e,this.publicParams);if(t<e.length)throw Error("Error reading MPIs");this.privateParams=r}catch(e){if(e instanceof Yt)throw e;throw Error("Error reading MPIs")}}}write(){const e=this.writePublicKey();if(this.unparseableKeyMaterial)return M.concatUint8Array([e,this.unparseableKeyMaterial]);const t=[e];t.push(new Uint8Array([this.s2kUsage]));const r=[];if(255===this.s2kUsage||254===this.s2kUsage||253===this.s2kUsage){r.push(this.symmetric),253===this.s2kUsage&&r.push(this.aead);const e=this.s2k.write();6===this.version&&r.push(e.length),r.push(...e)}return this.s2kUsage&&"gnu-dummy"!==this.s2k.type&&r.push(...this.iv),(5===this.version||6===this.version&&this.s2kUsage)&&t.push(new Uint8Array([r.length])),t.push(new Uint8Array(r)),this.isDummy()||(this.s2kUsage||(this.keyMaterial=va(this.algorithm,this.privateParams)),5===this.version&&t.push(M.writeNumber(this.keyMaterial.length,4)),t.push(this.keyMaterial),this.s2kUsage||6===this.version||t.push(M.writeChecksum(this.keyMaterial))),M.concatUint8Array(t)}isDecrypted(){return!1===this.isEncrypted}isMissingSecretKeyMaterial(){return void 0!==this.unparseableKeyMaterial||this.isDummy()}isDummy(){return!(!this.s2k||"gnu-dummy"!==this.s2k.type)}makeDummy(e=R){this.isDummy()||(this.isDecrypted()&&this.clearPrivateParams(),delete this.unparseableKeyMaterial,this.isEncrypted=null,this.keyMaterial=null,this.s2k=Fa(Q.s2k.gnu,e),this.s2k.algorithm=0,this.s2k.c=0,this.s2k.type="gnu-dummy",this.s2kUsage=254,this.symmetric=Q.symmetric.aes256,this.isLegacyAEAD=null,this.usedModernAEAD=null)}async encrypt(e,t=R){if(this.isDummy())return;if(!this.isDecrypted())throw Error("Key packet is already encrypted");if(!e)throw Error("A non-empty passphrase is required for key encryption.");this.s2k=Oa(t),this.s2k.generateSalt();const r=va(this.algorithm,this.privateParams);this.symmetric=Q.symmetric.aes256;const{blockSize:n}=ri(this.symmetric);if(t.aeadProtect){this.s2kUsage=253,this.aead=t.preferredAEADAlgorithm;const i=ma(this.aead);this.isLegacyAEAD=5===this.version,this.usedModernAEAD=!this.isLegacyAEAD;const s=Gt(this.constructor.tag),a=await Ac(this.version,this.s2k,e,this.symmetric,this.aead,s,this.isLegacyAEAD),o=await i(this.symmetric,a);this.iv=this.isLegacyAEAD?ye(n):ye(i.ivLength);const c=this.isLegacyAEAD?new Uint8Array:M.concatUint8Array([s,this.writePublicKey()]);this.keyMaterial=await o.encrypt(r,this.iv.subarray(0,i.ivLength),c)}else{this.s2kUsage=254,this.usedModernAEAD=!1;const t=await Ac(this.version,this.s2k,e,this.symmetric);this.iv=ye(n),this.keyMaterial=await Qs(this.symmetric,t,M.concatUint8Array([r,await xe(Q.hash.sha1,r)]),this.iv)}}async decrypt(e){if(this.isDummy())return!1;if(this.unparseableKeyMaterial)throw Error("Key packet cannot be decrypted: unsupported S2K or cipher algo");if(this.isDecrypted())throw Error("Key packet is already decrypted.");let t;const r=Gt(this.constructor.tag);if(254!==this.s2kUsage&&253!==this.s2kUsage)throw 255===this.s2kUsage?Error("Encrypted private key is authenticated using an insecure two-byte hash"):Error("Private key is encrypted using an insecure S2K function: unsalted MD5");let n;if(t=await Ac(this.version,this.s2k,e,this.symmetric,this.aead,r,this.isLegacyAEAD),253===this.s2kUsage){const e=ma(this.aead,!0),i=await e(this.symmetric,t);try{const t=this.isLegacyAEAD?new Uint8Array:M.concatUint8Array([r,this.writePublicKey()]);n=await i.decrypt(this.keyMaterial,this.iv.subarray(0,e.ivLength),t)}catch(e){if("Authentication tag mismatch"===e.message)throw Error("Incorrect key passphrase: "+e.message);throw e}}else{const e=await Rs(this.symmetric,t,this.keyMaterial,this.iv);n=e.subarray(0,-20);const r=await xe(Q.hash.sha1,n);if(!M.equalsUint8Array(r,e.subarray(-20)))throw Error("Incorrect key passphrase")}try{const{privateParams:e}=await Ea(this.algorithm,n,this.publicParams);this.privateParams=e}catch(e){throw Error("Error reading MPIs")}this.isEncrypted=!1,this.keyMaterial=null,this.s2kUsage=0,this.aead=null,this.symmetric=null,this.isLegacyAEAD=null}async validate(){if(this.isDummy())return;if(!this.isDecrypted())throw Error("Key is not decrypted");if(this.usedModernAEAD)return;let e;try{e=await Ia(this.algorithm,this.publicParams,this.privateParams)}catch(t){e=!1}if(!e)throw Error("Key is invalid")}async generate(e,t,r){if(6===this.version&&(this.algorithm===Q.publicKey.ecdh&&t===Q.curve.curve25519Legacy||this.algorithm===Q.publicKey.eddsaLegacy))throw Error(`Cannot generate v6 keys of type 'ecc' with curve ${t}. Generate a key of type 'curve25519' instead`);if(6!==this.version&&this.algorithm===Q.publicKey.pqc_mldsa_ed25519)throw Error(`Cannot generate v${this.version} signing keys of type 'pqc'. Generate a v6 key instead`);const{privateParams:n,publicParams:i}=await Ba(this.algorithm,e,t,r);this.privateParams=n,this.publicParams=i,this.isEncrypted=!1}clearPrivateParams(){this.isMissingSecretKeyMaterial()||(Object.keys(this.privateParams).forEach((e=>{this.privateParams[e].fill(0),delete this.privateParams[e]})),this.privateParams=null,this.isEncrypted=!0)}}async function Ac(e,t,r,n,i,s,a){if("argon2"===t.type&&!i)throw Error("Using Argon2 S2K without AEAD is not allowed");if("simple"===t.type&&6===e)throw Error("Using Simple S2K with version 6 keys is not allowed");const{keySize:o}=ri(n),c=await t.produceKey(r,o);if(!i||5===e||a)return c;const u=M.concatUint8Array([s,new Uint8Array([e,n,i])]);return oi(Q.hash.sha256,c,new Uint8Array,u,o)}class wc{static get tag(){return Q.packet.userID}constructor(){this.userID="",this.name="",this.email="",this.comment=""}static fromObject(e){if(M.isString(e)||e.name&&!M.isString(e.name)||e.email&&!M.isEmailAddress(e.email)||e.comment&&!M.isString(e.comment))throw Error("Invalid user ID format");const t=new wc;Object.assign(t,e);const r=[];return t.name&&r.push(t.name),t.comment&&r.push(`(${t.comment})`),t.email&&r.push(`<${t.email}>`),t.userID=r.join(" "),t}read(e,t=R){const r=M.decodeUTF8(e);if(r.length>t.maxUserIDLength)throw Error("User ID string is too long");const n=/^(?<name>[^()]+\s+)?(?<comment>\([^()]+\)\s+)?(?<email><\S+@\S+>)$/.exec(r);if(null!==n){const{name:e,comment:t,email:r}=n.groups;this.comment=t?.replace(/^\(|\)|\s$/g,"").trim()||"",this.name=e?.trim()||"",this.email=r.substring(1,r.length-1)}else/^[^\s@]+@[^\s@]+$/.test(r)&&(this.email=r);this.userID=r}write(){return M.encodeUTF8(this.userID)}equals(e){return e&&e.userID===this.userID}}class mc extends dc{static get tag(){return Q.packet.secretSubkey}constructor(e=new Date,t=R){super(e,t)}}class bc{static get tag(){return Q.packet.trust}read(){throw new Yt("Trust packets are not supported")}write(){throw new Yt("Trust packets are not supported")}}class kc{static get tag(){return Q.packet.padding}constructor(){this.padding=null}read(e){}write(){return this.padding}async createPadding(e){this.padding=await ye(e)}}const Ec=/*#__PURE__*/M.constructAllowedPackets([Fo]);class vc{constructor(e){this.packets=e||new Vo}write(){return this.packets.write()}armor(e=R){const t=this.packets.some((e=>e.constructor.tag===Fo.tag&&6!==e.version));return X(Q.armor.signature,this.write(),void 0,void 0,void 0,t,e)}getSigningKeyIDs(){return this.packets.map((e=>e.issuerKeyID))}}async function Bc({armoredSignature:e,binarySignature:t,config:r,...n}){r={...R,...r};let i=e||t;if(!i)throw Error("readSignature: must pass options object containing `armoredSignature` or `binarySignature`");if(e&&!M.isString(e))throw Error("readSignature: options.armoredSignature must be a string");if(t&&!M.isUint8Array(t))throw Error("readSignature: options.binarySignature must be a Uint8Array");const s=Object.keys(n);if(s.length>0)throw Error("Unknown option: "+s.join(", "));if(e){const{type:e,data:t}=await J(i);if(e!==Q.armor.signature)throw Error("Armored text not of type signature");i=t}const a=await Vo.fromBinary(i,Ec,r);return new vc(a)}async function Sc(e,t){const r=new mc(e.date,t);return r.packets=null,r.algorithm=Q.write(Q.publicKey,e.algorithm),await r.generate(e.rsaBits,e.curve,e.symmetric),await r.computeFingerprintAndKeyID(),r}async function Ic(e,t){const r=new dc(e.date,t);return r.packets=null,r.algorithm=Q.write(Q.publicKey,e.algorithm),await r.generate(e.rsaBits,e.curve,e.symmetric),await r.computeFingerprintAndKeyID(),r}async function Kc(e,t,r,n,i=new Date,s){let a,o;for(let c=e.length-1;c>=0;c--)try{(!a||e[c].created>=a.created)&&(await e[c].verify(t,r,n,i,void 0,s),a=e[c])}catch(e){o=e}if(!a)throw M.wrapError(`Could not find valid ${Q.read(Q.signature,r)} signature in key ${t.getKeyID().toHex()}`.replace("certGeneric ","self-").replace(/([a-z])([A-Z])/g,((e,t,r)=>t+" "+r.toLowerCase())),o);return a}function Cc(e,t,r=new Date){const n=M.normalizeDate(r);if(null!==n){const r=Rc(e,t);return!(e.created<=n&&n<r)}return!1}async function Uc(e,t,r,n){const i={};i.key=t,i.bind=e;const s={signatureType:Q.signature.subkeyBinding};r.sign?(s.keyFlags=[Q.keyFlags.signData],s.embeddedSignature=await Dc(i,[],e,{signatureType:Q.signature.keyBinding},r.date,void 0,void 0,void 0,n)):s.keyFlags=r.forwarding?[Q.keyFlags.forwardedCommunication]:[Q.keyFlags.encryptCommunication|Q.keyFlags.encryptStorage],r.keyExpirationTime>0&&(s.keyExpirationTime=r.keyExpirationTime,s.keyNeverExpires=!1);return await Dc(i,[],t,s,r.date,void 0,void 0,void 0,n)}async function Pc(e,t,r=new Date,n=[],i){const s=Q.hash.sha256,a=i.preferredHashAlgorithm,o=await Promise.all(e.map((async(e,t)=>(await e.getPrimarySelfSignature(r,n[t],i)).preferredHashAlgorithms||[]))),c=new Map;for(const e of o)for(const t of e)try{const e=Q.write(Q.hash,t);c.set(e,c.has(e)?c.get(e)+1:1)}catch{}const u=t=>0===e.length||c.get(t)===e.length||t===s,h=()=>{if(0===c.size)return s;const e=Array.from(c.keys()).filter((e=>u(e))).sort(((e,t)=>Qe(e)-Qe(t)))[0];return Qe(e)>=Qe(s)?e:s},l=new Set([Q.publicKey.ecdsa,Q.publicKey.eddsaLegacy,Q.publicKey.ed25519,Q.publicKey.ed448]),y=new Set([Q.publicKey.pqc_mldsa_ed25519]);if(l.has(t.algorithm)){const e=function(e,t){switch(e){case Q.publicKey.ecdsa:case Q.publicKey.eddsaLegacy:return Ki(t);case Q.publicKey.ed25519:case Q.publicKey.ed448:return jr(e);default:throw Error("Unknown elliptic signing algo")}}(t.algorithm,t.publicParams.oid),r=u(a),n=Qe(a)>=Qe(e);if(r&&n)return a;{const t=h();return Qe(t)>=Qe(e)?t:e}}if(y.has(t.algorithm)){if(u(a)&&ws(t.algorithm,a))return a;{const e=h();return ws(t.algorithm,e)?e:s}}return u(a)?a:h()}async function Dc(e,t,r,n,i,s,a=[],o=!1,c){if(r.isDummy())throw Error("Cannot sign with a gnu-dummy key.");if(!r.isDecrypted())throw Error("Signing key is not decrypted.");const u=new Fo;return Object.assign(u,n),u.publicKeyAlgorithm=r.algorithm,u.hashAlgorithm=await Pc(t,r,i,s,c),u.rawNotations=[...a],await u.sign(r,e,i,o,c),u}async function xc(e,t,r,n=new Date,i){(e=e[r])&&(t[r].length?await Promise.all(e.map((async function(e){e.isExpired(n)||i&&!await i(e)||t[r].some((function(t){return M.equalsUint8Array(t.writeParams(),e.writeParams())}))||t[r].push(e)}))):t[r]=e)}async function Qc(e,t,r,n,i,s,a=new Date,o){s=s||e;const c=[];return await Promise.all(n.map((async function(e){try{if(!i||e.issuerKeyID.equals(i.issuerKeyID)){const n=![Q.reasonForRevocation.keyRetired,Q.reasonForRevocation.keySuperseded,Q.reasonForRevocation.userIDInvalid].includes(e.reasonForRevocationFlag);await e.verify(s,t,r,n?null:a,!1,o),c.push(e.issuerKeyID)}}catch(e){}}))),i?(i.revoked=!!c.some((e=>e.equals(i.issuerKeyID)))||(i.revoked||!1),i.revoked):c.length>0}function Rc(e,t){let r;return!1===t.keyNeverExpires&&(r=e.created.getTime()+1e3*t.keyExpirationTime),r?new Date(r):1/0}function Tc(e,t={}){if(e.type=e.type||t.type,e.curve=e.curve||t.curve,e.rsaBits=e.rsaBits||t.rsaBits,e.symmetricHash=e.symmetricHash||t.symmetricHash,e.symmetricCipher=e.symmetricCipher||t.symmetricCipher,e.keyExpirationTime=void 0!==e.keyExpirationTime?e.keyExpirationTime:t.keyExpirationTime,e.passphrase=M.isString(e.passphrase)?e.passphrase:t.passphrase,e.date=e.date||t.date,e.sign=e.sign||!1,e.forwarding=e.forwarding||!1,e.sign&&e.forwarding)throw Error('Incompatible options: "sign" and "forwarding" cannot be set together');switch(e.type){case"pqc":e.sign?e.algorithm=Q.publicKey.pqc_mldsa_ed25519:e.algorithm=Q.publicKey.pqc_mlkem_x25519;break;case"ecc":try{e.curve=Q.write(Q.curve,e.curve)}catch(e){throw Error("Unknown curve")}e.curve!==Q.curve.ed25519Legacy&&e.curve!==Q.curve.curve25519Legacy&&"ed25519"!==e.curve&&"curve25519"!==e.curve||(e.curve=e.sign?Q.curve.ed25519Legacy:Q.curve.curve25519Legacy),e.sign?e.algorithm=e.curve===Q.curve.ed25519Legacy?Q.publicKey.eddsaLegacy:Q.publicKey.ecdsa:e.algorithm=Q.publicKey.ecdh;break;case"curve25519":e.algorithm=e.sign?Q.publicKey.ed25519:Q.publicKey.x25519;break;case"curve448":e.algorithm=e.sign?Q.publicKey.ed448:Q.publicKey.x448;break;case"rsa":e.algorithm=Q.publicKey.rsaEncryptSign;break;case"symmetric":if(e.sign){e.algorithm=Q.publicKey.hmac;try{e.symmetric=Q.write(Q.hash,e.symmetricHash)}catch(e){throw Error("Unknown hash algorithm")}}else{e.algorithm=Q.publicKey.aead;try{e.symmetric=Q.write(Q.symmetric,e.symmetricCipher)}catch(e){throw Error("Unknown symmetric algorithm")}}break;default:throw Error("Unsupported key type "+e.type)}return e}function Mc(e,t,r){switch(e.algorithm){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:case Q.publicKey.dsa:case Q.publicKey.ecdsa:case Q.publicKey.eddsaLegacy:case Q.publicKey.ed25519:case Q.publicKey.ed448:case Q.publicKey.hmac:case Q.publicKey.pqc_mldsa_ed25519:if(!t.keyFlags&&!r.allowMissingKeyFlags)throw Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");return!t.keyFlags||!!(t.keyFlags[0]&Q.keyFlags.signData);default:return!1}}function Lc(e,t,r){switch(e.algorithm){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.elgamal:case Q.publicKey.ecdh:case Q.publicKey.x25519:case Q.publicKey.x448:case Q.publicKey.aead:case Q.publicKey.pqc_mlkem_x25519:if(!t.keyFlags&&!r.allowMissingKeyFlags)throw Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");return!t.keyFlags||!!(t.keyFlags[0]&Q.keyFlags.encryptCommunication)||!!(t.keyFlags[0]&Q.keyFlags.encryptStorage);default:return!1}}function Nc(e,t,r){if(!t.keyFlags&&!r.allowMissingKeyFlags)throw Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");switch(e.algorithm){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaEncrypt:case Q.publicKey.elgamal:case Q.publicKey.ecdh:case Q.publicKey.x25519:case Q.publicKey.x448:case Q.publicKey.pqc_mlkem_x25519:return!(!(!t.keyFlags||!!(t.keyFlags[0]&Q.keyFlags.signData))||!r.allowInsecureDecryptionWithSigningKeys)||(!t.keyFlags||!!(t.keyFlags[0]&Q.keyFlags.encryptCommunication)||!!(t.keyFlags[0]&Q.keyFlags.encryptStorage)||r.allowForwardedMessages&&!!(t.keyFlags[0]&Q.keyFlags.forwardedCommunication));default:return!1}}function Fc(e,t){const r=Q.write(Q.publicKey,e.algorithm),n=e.getAlgorithmInfo();if(t.rejectPublicKeyAlgorithms.has(r))throw Error(n.algorithm+" keys are considered too weak.");switch(r){case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:case Q.publicKey.rsaEncrypt:if(n.bits<t.minRSABits)throw Error(`RSA keys shorter than ${t.minRSABits} bits are considered too weak.`);break;case Q.publicKey.ecdsa:case Q.publicKey.eddsaLegacy:case Q.publicKey.ecdh:if(t.rejectCurves.has(n.curve))throw Error(`Support for ${n.algorithm} keys using curve ${n.curve} is disabled.`)}}class Oc{constructor(e,t){this.userID=e.constructor.tag===Q.packet.userID?e:null,this.userAttribute=e.constructor.tag===Q.packet.userAttribute?e:null,this.selfCertifications=[],this.otherCertifications=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){const e=new Vo;return e.push(this.userID||this.userAttribute),e.push(...this.revocationSignatures),e.push(...this.selfCertifications),e.push(...this.otherCertifications),e}clone(){const e=new Oc(this.userID||this.userAttribute,this.mainKey);return e.selfCertifications=[...this.selfCertifications],e.otherCertifications=[...this.otherCertifications],e.revocationSignatures=[...this.revocationSignatures],e}async certify(e,t,r){const n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n},s=new Oc(i.userID||i.userAttribute,this.mainKey);return s.otherCertifications=await Promise.all(e.map((async function(e){if(!e.isPrivate())throw Error("Need private key for signing");if(e.hasSameFingerprintAs(n))throw Error("The user's own key can only be used for self-certifications");const s=await e.getSigningKey(void 0,t,void 0,r);return Dc(i,[e],s.keyPacket,{signatureType:Q.signature.certGeneric,keyFlags:[Q.keyFlags.certifyKeys|Q.keyFlags.signData]},t,void 0,void 0,void 0,r)}))),await s.update(this,t,r),s}async isRevoked(e,t,r=new Date,n=R){const i=this.mainKey.keyPacket;return Qc(i,Q.signature.certRevocation,{key:i,userID:this.userID,userAttribute:this.userAttribute},this.revocationSignatures,e,t,r,n)}async verifyCertificate(e,t,r=new Date,n){const i=this,s=this.mainKey.keyPacket,a={userID:this.userID,userAttribute:this.userAttribute,key:s},{issuerKeyID:o}=e,c=t.filter((e=>e.getKeys(o).length>0));return 0===c.length?null:(await Promise.all(c.map((async t=>{const s=await t.getSigningKey(o,e.created,void 0,n);if(e.revoked||await i.isRevoked(e,s.keyPacket,r,n))throw Error("User certificate is revoked");try{await e.verify(s.keyPacket,Q.signature.certGeneric,a,r,void 0,n)}catch(e){throw M.wrapError("User certificate is invalid",e)}}))),!0)}async verifyAllCertifications(e,t=new Date,r){const n=this,i=this.selfCertifications.concat(this.otherCertifications);return Promise.all(i.map((async i=>({keyID:i.issuerKeyID,valid:await n.verifyCertificate(i,e,t,r).catch((()=>!1))}))))}async verify(e=new Date,t){if(!this.selfCertifications.length)throw Error("No self-certifications found");const r=this,n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n};let s;for(let a=this.selfCertifications.length-1;a>=0;a--)try{const s=this.selfCertifications[a];if(s.revoked||await r.isRevoked(s,void 0,e,t))throw Error("Self-certification is revoked");try{await s.verify(n,Q.signature.certGeneric,i,e,void 0,t)}catch(e){throw M.wrapError("Self-certification is invalid",e)}return!0}catch(e){s=e}throw s}async update(e,t,r){const n=this.mainKey.keyPacket,i={userID:this.userID,userAttribute:this.userAttribute,key:n};await xc(e,this,"selfCertifications",t,(async function(e){try{return await e.verify(n,Q.signature.certGeneric,i,t,!1,r),!0}catch(e){return!1}})),await xc(e,this,"otherCertifications",t),await xc(e,this,"revocationSignatures",t,(function(e){return Qc(n,Q.signature.certRevocation,i,[e],void 0,void 0,t,r)}))}async revoke(e,{flag:t=Q.reasonForRevocation.noReason,string:r=""}={},n=new Date,i=R){const s={userID:this.userID,userAttribute:this.userAttribute,key:e},a=new Oc(s.userID||s.userAttribute,this.mainKey);return a.revocationSignatures.push(await Dc(s,[],e,{signatureType:Q.signature.certRevocation,reasonForRevocationFlag:Q.write(Q.reasonForRevocation,t),reasonForRevocationString:r},n,void 0,void 0,!1,i)),await a.update(this),a}}class Hc{constructor(e,t){this.keyPacket=e,this.bindingSignatures=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){const e=new Vo;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.bindingSignatures),e}clone(){const e=new Hc(this.keyPacket,this.mainKey);return e.bindingSignatures=[...this.bindingSignatures],e.revocationSignatures=[...this.revocationSignatures],e}async isRevoked(e,t,r=new Date,n=R){const i=this.mainKey.keyPacket;return Qc(i,Q.signature.subkeyRevocation,{key:i,bind:this.keyPacket},this.revocationSignatures,e,t,r,n)}async verify(e=new Date,t=R){const r=this.mainKey.keyPacket,n={key:r,bind:this.keyPacket},i=await Kc(this.bindingSignatures,r,Q.signature.subkeyBinding,n,e,t);if(i.revoked||await this.isRevoked(i,null,e,t))throw Error("Subkey is revoked");if(Cc(this.keyPacket,i,e))throw Error("Subkey is expired");return i}async getExpirationTime(e=new Date,t=R){const r=this.mainKey.keyPacket,n={key:r,bind:this.keyPacket};let i;try{i=await Kc(this.bindingSignatures,r,Q.signature.subkeyBinding,n,e,t)}catch(e){return null}const s=Rc(this.keyPacket,i),a=i.getExpirationTime();return s<a?s:a}async update(e,t=new Date,r=R){const n=this.mainKey.keyPacket;if(!this.hasSameFingerprintAs(e))throw Error("Subkey update method: fingerprints of subkeys not equal");this.keyPacket.constructor.tag===Q.packet.publicSubkey&&e.keyPacket.constructor.tag===Q.packet.secretSubkey&&(this.keyPacket=e.keyPacket);const i=this,s={key:n,bind:i.keyPacket};await xc(e,this,"bindingSignatures",t,(async function(e){for(let t=0;t<i.bindingSignatures.length;t++)if(i.bindingSignatures[t].issuerKeyID.equals(e.issuerKeyID))return e.created>i.bindingSignatures[t].created&&(i.bindingSignatures[t]=e),!1;try{return await e.verify(n,Q.signature.subkeyBinding,s,t,void 0,r),!0}catch(e){return!1}})),await xc(e,this,"revocationSignatures",t,(function(e){return Qc(n,Q.signature.subkeyRevocation,s,[e],void 0,void 0,t,r)}))}async revoke(e,{flag:t=Q.reasonForRevocation.noReason,string:r=""}={},n=new Date,i=R){const s={key:e,bind:this.keyPacket},a=new Hc(this.keyPacket,this.mainKey);return a.revocationSignatures.push(await Dc(s,[],e,{signatureType:Q.signature.subkeyRevocation,reasonForRevocationFlag:Q.write(Q.reasonForRevocation,t),reasonForRevocationString:r},n,void 0,void 0,!1,i)),await a.update(this),a}hasSameFingerprintAs(e){return this.keyPacket.hasSameFingerprintAs(e.keyPacket||e)}}["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","isDecrypted"].forEach((e=>{Hc.prototype[e]=function(){return this.keyPacket[e]()}}));const _c=/*#__PURE__*/M.constructAllowedPackets([Fo]),zc=new Set([Q.packet.publicKey,Q.packet.privateKey]),Gc=new Set([Q.packet.publicKey,Q.packet.privateKey,Q.packet.publicSubkey,Q.packet.privateSubkey]);class qc{packetListToStructure(e,t=new Set){let r,n,i,s;for(const a of e){if(a instanceof Wt){Gc.has(a.tag)&&!s&&(s=zc.has(a.tag)?zc:Gc);continue}const e=a.constructor.tag;if(s){if(!s.has(e))continue;s=null}if(t.has(e))throw Error("Unexpected packet type: "+e);switch(e){case Q.packet.publicKey:case Q.packet.secretKey:if(this.keyPacket)throw Error("Key block contains multiple keys");if(this.keyPacket=a,n=this.getKeyID(),!n)throw Error("Missing Key ID");break;case Q.packet.userID:case Q.packet.userAttribute:r=new Oc(a,this),this.users.push(r);break;case Q.packet.publicSubkey:case Q.packet.secretSubkey:r=null,i=new Hc(a,this),this.subkeys.push(i);break;case Q.packet.signature:switch(a.signatureType){case Q.signature.certGeneric:case Q.signature.certPersona:case Q.signature.certCasual:case Q.signature.certPositive:if(!r){M.printDebug("Dropping certification signatures without preceding user packet");continue}a.issuerKeyID.equals(n)?r.selfCertifications.push(a):r.otherCertifications.push(a);break;case Q.signature.certRevocation:r?r.revocationSignatures.push(a):this.directSignatures.push(a);break;case Q.signature.key:this.directSignatures.push(a);break;case Q.signature.subkeyBinding:if(!i){M.printDebug("Dropping subkey binding signature without preceding subkey packet");continue}i.bindingSignatures.push(a);break;case Q.signature.keyRevocation:this.revocationSignatures.push(a);break;case Q.signature.subkeyRevocation:if(!i){M.printDebug("Dropping subkey revocation signature without preceding subkey packet");continue}i.revocationSignatures.push(a)}}}}toPacketList(){const e=new Vo;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.directSignatures),this.users.map((t=>e.push(...t.toPacketList()))),this.subkeys.map((t=>e.push(...t.toPacketList()))),e}clone(e=!1){const t=new this.constructor(this.toPacketList());return e&&t.getKeys().forEach((e=>{if(e.keyPacket=Object.create(Object.getPrototypeOf(e.keyPacket),Object.getOwnPropertyDescriptors(e.keyPacket)),!e.keyPacket.isDecrypted())return;const t={};Object.keys(e.keyPacket.privateParams).forEach((r=>{t[r]=new Uint8Array(e.keyPacket.privateParams[r])})),e.keyPacket.privateParams=t})),t}getSubkeys(e=null){return this.subkeys.filter((t=>!e||t.getKeyID().equals(e,!0)))}getKeys(e=null){const t=[];return e&&!this.getKeyID().equals(e,!0)||t.push(this),t.concat(this.getSubkeys(e))}getKeyIDs(){return this.getKeys().map((e=>e.getKeyID()))}getUserIDs(){return this.users.map((e=>e.userID?e.userID.userID:null)).filter((e=>null!==e))}write(){return this.toPacketList().write()}async getSigningKey(e=null,t=new Date,r={},n=R){await this.verifyPrimaryKey(t,r,n);const i=this.keyPacket;try{Fc(i,n)}catch(e){throw M.wrapError("Could not verify primary key",e)}const s=this.subkeys.slice().sort(((e,t)=>t.keyPacket.created-e.keyPacket.created));let a;for(const r of s)if(!e||r.getKeyID().equals(e))try{await r.verify(t,n);const e={key:i,bind:r.keyPacket},s=await Kc(r.bindingSignatures,i,Q.signature.subkeyBinding,e,t,n);if(!Mc(r.keyPacket,s,n))continue;if(!s.embeddedSignature)throw Error("Missing embedded signature");return await Kc([s.embeddedSignature],r.keyPacket,Q.signature.keyBinding,e,t,n),Fc(r.keyPacket,n),r}catch(e){a=e}try{const s=await this.getPrimarySelfSignature(t,r,n);if((!e||i.getKeyID().equals(e))&&Mc(i,s,n))return Fc(i,n),this}catch(e){a=e}throw M.wrapError("Could not find valid signing key packet in key "+this.getKeyID().toHex(),a)}async getEncryptionKey(e,t=new Date,r={},n=R){await this.verifyPrimaryKey(t,r,n);const i=this.keyPacket;try{Fc(i,n)}catch(e){throw M.wrapError("Could not verify primary key",e)}const s=this.subkeys.slice().sort(((e,t)=>t.keyPacket.created-e.keyPacket.created));let a;for(const r of s)if(!e||r.getKeyID().equals(e))try{await r.verify(t,n);const e={key:i,bind:r.keyPacket},s=await Kc(r.bindingSignatures,i,Q.signature.subkeyBinding,e,t,n);if(Lc(r.keyPacket,s,n))return Fc(r.keyPacket,n),r}catch(e){a=e}try{const s=await this.getPrimarySelfSignature(t,r,n);if((!e||i.getKeyID().equals(e))&&Lc(i,s,n))return Fc(i,n),this}catch(e){a=e}throw M.wrapError("Could not find valid encryption key packet in key "+this.getKeyID().toHex(),a)}async isRevoked(e,t,r=new Date,n=R){return Qc(this.keyPacket,Q.signature.keyRevocation,{key:this.keyPacket},this.revocationSignatures,e,t,r,n)}async verifyPrimaryKey(e=new Date,t={},r=R){const n=this.keyPacket;if(await this.isRevoked(null,null,e,r))throw Error("Primary key is revoked");if(Cc(n,await this.getPrimarySelfSignature(e,t,r),e))throw Error("Primary key is expired");if(6!==n.version){const t=await Kc(this.directSignatures,n,Q.signature.key,{key:n},e,r).catch((()=>{}));if(t&&Cc(n,t,e))throw Error("Primary key is expired")}}async getExpirationTime(e,t=R){let r;try{const n=await this.getPrimarySelfSignature(null,e,t),i=Rc(this.keyPacket,n),s=n.getExpirationTime(),a=6!==this.keyPacket.version&&await Kc(this.directSignatures,this.keyPacket,Q.signature.key,{key:this.keyPacket},null,t).catch((()=>{}));if(a){const e=Rc(this.keyPacket,a);r=Math.min(i,s,e)}else r=i<s?i:s}catch(e){r=null}return M.normalizeDate(r)}async getPrimarySelfSignature(e=new Date,t={},r=R){const n=this.keyPacket;if(6===n.version)return Kc(this.directSignatures,n,Q.signature.key,{key:n},e,r);const{selfCertification:i}=await this.getPrimaryUser(e,t,r);return i}async getPrimaryUser(e=new Date,t={},r=R){const n=this.keyPacket,i=[];let s;for(let a=0;a<this.users.length;a++)try{const s=this.users[a];if(!s.userID)continue;if(void 0!==t.name&&s.userID.name!==t.name||void 0!==t.email&&s.userID.email!==t.email||void 0!==t.comment&&s.userID.comment!==t.comment)throw Error("Could not find user that matches that user ID");const o={userID:s.userID,key:n},c=await Kc(s.selfCertifications,n,Q.signature.certGeneric,o,e,r);i.push({index:a,user:s,selfCertification:c})}catch(e){s=e}if(!i.length)throw s||Error("Could not find primary user");await Promise.all(i.map((async function(t){return t.selfCertification.revoked||t.user.isRevoked(t.selfCertification,null,e,r)})));const a=i.sort((function(e,t){const r=e.selfCertification,n=t.selfCertification;return n.revoked-r.revoked||r.isPrimaryUserID-n.isPrimaryUserID||r.created-n.created})).pop(),{user:o,selfCertification:c}=a;if(c.revoked||await o.isRevoked(c,null,e,r))throw Error("Primary user is revoked");return a}async update(e,t=new Date,r=R){if(!this.hasSameFingerprintAs(e))throw Error("Primary key fingerprints must be equal to update the key");if(!this.isPrivate()&&e.isPrivate()){if(!(this.subkeys.length===e.subkeys.length&&this.subkeys.every((t=>e.subkeys.some((e=>t.hasSameFingerprintAs(e)))))))throw Error("Cannot update public key with private key if subkeys mismatch");return e.update(this,r)}const n=this.clone();return await xc(e,n,"revocationSignatures",t,(i=>Qc(n.keyPacket,Q.signature.keyRevocation,n,[i],null,e.keyPacket,t,r))),await xc(e,n,"directSignatures",t),await Promise.all(e.users.map((async e=>{const i=n.users.filter((t=>e.userID&&e.userID.equals(t.userID)||e.userAttribute&&e.userAttribute.equals(t.userAttribute)));if(i.length>0)await Promise.all(i.map((n=>n.update(e,t,r))));else{const t=e.clone();t.mainKey=n,n.users.push(t)}}))),await Promise.all(e.subkeys.map((async e=>{const i=n.subkeys.filter((t=>t.hasSameFingerprintAs(e)));if(i.length>0)await Promise.all(i.map((n=>n.update(e,t,r))));else{const t=e.clone();t.mainKey=n,n.subkeys.push(t)}}))),n}async getRevocationCertificate(e=new Date,t=R){const r={key:this.keyPacket},n=await Kc(this.revocationSignatures,this.keyPacket,Q.signature.keyRevocation,r,e,t),i=new Vo;i.push(n);const s=6!==this.keyPacket.version;return X(Q.armor.publicKey,i.write(),null,null,"This is a revocation certificate",s,t)}async applyRevocationCertificate(e,t=new Date,r=R){const n=await J(e),i=(await Vo.fromBinary(n.data,_c,r)).findPacket(Q.packet.signature);if(!i||i.signatureType!==Q.signature.keyRevocation)throw Error("Could not find revocation signature packet");if(!i.issuerKeyID.equals(this.getKeyID()))throw Error("Revocation signature does not match key");try{await i.verify(this.keyPacket,Q.signature.keyRevocation,{key:this.keyPacket},t,void 0,r)}catch(e){throw M.wrapError("Could not verify revocation signature",e)}const s=this.clone();return s.revocationSignatures.push(i),s}async signPrimaryUser(e,t,r,n=R){const{index:i,user:s}=await this.getPrimaryUser(t,r,n),a=await s.certify(e,t,n),o=this.clone();return o.users[i]=a,o}async signAllUsers(e,t=new Date,r=R){const n=this.clone();return n.users=await Promise.all(this.users.map((function(n){return n.certify(e,t,r)}))),n}async verifyPrimaryUser(e,t=new Date,r,n=R){const i=this.keyPacket,{user:s}=await this.getPrimaryUser(t,r,n);return e?await s.verifyAllCertifications(e,t,n):[{keyID:i.getKeyID(),valid:await s.verify(t,n).catch((()=>!1))}]}async verifyAllUsers(e,t=new Date,r=R){const n=this.keyPacket,i=[];return await Promise.all(this.users.map((async s=>{const a=e?await s.verifyAllCertifications(e,t,r):[{keyID:n.getKeyID(),valid:await s.verify(t,r).catch((()=>!1))}];i.push(...a.map((e=>({userID:s.userID?s.userID.userID:null,userAttribute:s.userAttribute,keyID:e.keyID,valid:e.valid}))))}))),i}}["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","hasSameFingerprintAs"].forEach((e=>{qc.prototype[e]=Hc.prototype[e]}));class jc extends qc{constructor(e){if(super(),this.keyPacket=null,this.revocationSignatures=[],this.directSignatures=[],this.users=[],this.subkeys=[],e&&(this.packetListToStructure(e,new Set([Q.packet.secretKey,Q.packet.secretSubkey])),!this.keyPacket))throw Error("Invalid key: missing public-key packet")}isPrivate(){return!1}toPublic(){return this}armor(e=R){const t=6!==this.keyPacket.version;return X(Q.armor.publicKey,this.toPacketList().write(),void 0,void 0,void 0,t,e)}}class Vc extends jc{constructor(e){if(super(),this.packetListToStructure(e,new Set([Q.packet.publicKey,Q.packet.publicSubkey])),!this.keyPacket)throw Error("Invalid key: missing private-key packet")}isPrivate(){return!0}toPublic(){const e=new Vo,t=this.toPacketList();let r=!1;for(const n of t)if(!r||n.constructor.tag!==Q.packet.Signature)switch(r&&(r=!1),n.constructor.tag){case Q.packet.secretKey:{if(n.algorithm===Q.publicKey.aead||n.algorithm===Q.publicKey.hmac)throw Error("Cannot create public key from symmetric private");const t=hc.fromSecretKeyPacket(n);e.push(t);break}case Q.packet.secretSubkey:{if(n.algorithm===Q.publicKey.aead||n.algorithm===Q.publicKey.hmac){r=!0;break}const t=pc.fromSecretSubkeyPacket(n);e.push(t);break}default:e.push(n)}return new jc(e)}armor(e=R){const t=6!==this.keyPacket.version;return X(Q.armor.privateKey,this.toPacketList().write(),void 0,void 0,void 0,t,e)}async getDecryptionKeys(e,t=new Date,r={},n=R){const i=this.keyPacket,s=[];let a=null;for(let r=0;r<this.subkeys.length;r++)if(!e||this.subkeys[r].getKeyID().equals(e,!0)){if(this.subkeys[r].keyPacket.isDummy()){a=a||Error("Gnu-dummy key packets cannot be used for decryption");continue}try{const e={key:i,bind:this.subkeys[r].keyPacket},a=await Kc(this.subkeys[r].bindingSignatures,i,Q.signature.subkeyBinding,e,t,n);Nc(this.subkeys[r].keyPacket,a,n)&&s.push(this.subkeys[r])}catch(e){a=e}}const o=await this.getPrimarySelfSignature(t,r,n);if(e&&!i.getKeyID().equals(e,!0)||!Nc(i,o,n)||(i.isDummy()?a=a||Error("Gnu-dummy key packets cannot be used for decryption"):s.push(this)),0===s.length)throw a||Error("No decryption key packets found");return s}isDecrypted(){return this.getKeys().some((({keyPacket:e})=>e.isDecrypted()))}async validate(e=R){if(!this.isPrivate())throw Error("Cannot validate a public key");let t;if(this.keyPacket.isDummy()){const r=await this.getSigningKey(null,null,void 0,{...e,rejectPublicKeyAlgorithms:new Set,minRSABits:0});r&&!r.keyPacket.isDummy()&&(t=r.keyPacket)}else t=this.keyPacket;if(t)return t.validate();{const e=this.getKeys();if(e.map((e=>e.keyPacket.isDummy())).every(Boolean))throw Error("Cannot validate an all-gnu-dummy key");return Promise.all(e.map((async e=>e.keyPacket.validate())))}}clearPrivateParams(){this.getKeys().forEach((({keyPacket:e})=>{e.isDecrypted()&&e.clearPrivateParams()}))}async revoke({flag:e=Q.reasonForRevocation.noReason,string:t=""}={},r=new Date,n=R){if(!this.isPrivate())throw Error("Need private key for revoking");const i={key:this.keyPacket},s=this.clone();return s.revocationSignatures.push(await Dc(i,[],this.keyPacket,{signatureType:Q.signature.keyRevocation,reasonForRevocationFlag:Q.write(Q.reasonForRevocation,e),reasonForRevocationString:t},r,void 0,void 0,void 0,n)),s}async addSubkey(e={}){const t={...R,...e.config};if(e.passphrase)throw Error("Subkey could not be encrypted here, please encrypt whole key");if(e.rsaBits<t.minRSABits)throw Error(`rsaBits should be at least ${t.minRSABits}, got: ${e.rsaBits}`);const r=this.keyPacket;if(r.isDummy())throw Error("Cannot add subkey to gnu-dummy primary key");if(!r.isDecrypted())throw Error("Key is not decrypted");const n=r.getAlgorithmInfo();n.type=function(e){switch(Q.write(Q.publicKey,e)){case Q.publicKey.rsaEncrypt:case Q.publicKey.rsaEncryptSign:case Q.publicKey.rsaSign:case Q.publicKey.dsa:return"rsa";case Q.publicKey.ecdsa:case Q.publicKey.eddsaLegacy:return"ecc";case Q.publicKey.ed25519:return"curve25519";case Q.publicKey.ed448:return"curve448";default:throw Error("Unsupported algorithm")}}(n.algorithm),n.rsaBits=n.bits||4096,n.curve=n.curve||"curve25519Legacy",e=Tc(e,n);const i=await Sc(e,{...t,v6Keys:6===this.keyPacket.version});Fc(i,t);const s=await Uc(i,r,e,t),a=this.toPacketList();return a.push(i,s),new Vc(a)}}const Yc=/*#__PURE__*/M.constructAllowedPackets([hc,pc,dc,mc,wc,gc,Fo]);function Zc(e){for(const t of e)switch(t.constructor.tag){case Q.packet.secretKey:return new Vc(e);case Q.packet.publicKey:return new jc(e)}throw Error("No key packet found")}async function Wc(e,t,r,n){r.passphrase&&await e.encrypt(r.passphrase,n),await Promise.all(t.map((async function(e,t){const i=r.subkeys[t].passphrase;i&&await e.encrypt(i,n)})));const i=new Vo;function s(e,t){return[t,...e.filter((e=>e!==t))]}function a(){const t={};t.keyFlags=[Q.keyFlags.certifyKeys|Q.keyFlags.signData];const i=s([Q.symmetric.aes256,Q.symmetric.aes128],n.preferredSymmetricAlgorithm);if(t.preferredSymmetricAlgorithms=i,n.aeadProtect){const e=s([Q.aead.gcm,Q.aead.eax,Q.aead.ocb],n.preferredAEADAlgorithm);t.preferredCipherSuites=e.flatMap((e=>i.map((t=>[t,e]))))}return t.preferredHashAlgorithms=s([Q.hash.sha512,Q.hash.sha256,...6===e.version?[Q.hash.sha3_512,Q.hash.sha3_256]:[]],n.preferredHashAlgorithm),t.preferredCompressionAlgorithms=s([Q.compression.uncompressed,Q.compression.zlib,Q.compression.zip],n.preferredCompressionAlgorithm),t.features=[0],t.features[0]|=Q.features.modificationDetection,n.aeadProtect&&(t.features[0]|=Q.features.seipdv2),r.keyExpirationTime>0&&(t.keyExpirationTime=r.keyExpirationTime,t.keyNeverExpires=!1),t}if(i.push(e),6===e.version){const t={key:e},s=a();s.signatureType=Q.signature.key;const o=await Dc(t,[],e,s,r.date,void 0,void 0,void 0,n);i.push(o)}await Promise.all(r.userIDs.map((async function(t,i){const s=wc.fromObject(t),o={userID:s,key:e},c=6!==e.version?a():{};c.signatureType=Q.signature.certPositive,0===i&&(c.isPrimaryUserID=!0);return{userIDPacket:s,signaturePacket:await Dc(o,[],e,c,r.date,void 0,void 0,void 0,n)}}))).then((e=>{e.forEach((({userIDPacket:e,signaturePacket:t})=>{i.push(e),i.push(t)}))})),await Promise.all(t.map((async function(t,i){const s=r.subkeys[i];return{secretSubkeyPacket:t,subkeySignaturePacket:await Uc(t,e,s,n)}}))).then((e=>{e.forEach((({secretSubkeyPacket:e,subkeySignaturePacket:t})=>{i.push(e),i.push(t)}))}));const o={key:e};return i.push(await Dc(o,[],e,{signatureType:Q.signature.keyRevocation,reasonForRevocationFlag:Q.reasonForRevocation.noReason,reasonForRevocationString:""},r.date,void 0,void 0,void 0,n)),r.passphrase&&e.clearPrivateParams(),await Promise.all(t.map((async function(e,t){r.subkeys[t].passphrase&&e.clearPrivateParams()}))),new Vc(i)}async function Jc({armoredKey:e,binaryKey:t,config:r,...n}){if(r={...R,...r},!e&&!t)throw Error("readKey: must pass options object containing `armoredKey` or `binaryKey`");if(e&&!M.isString(e))throw Error("readKey: options.armoredKey must be a string");if(t&&!M.isUint8Array(t))throw Error("readKey: options.binaryKey must be a Uint8Array");const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));let s;if(e){const{type:t,data:r}=await J(e);if(t!==Q.armor.publicKey&&t!==Q.armor.privateKey)throw Error("Armored text not of type key");s=r}else s=t;const a=await Vo.fromBinary(s,Yc,r),o=a.indexOfTag(Q.packet.publicKey,Q.packet.secretKey);if(0===o.length)throw Error("No key packet found");return Zc(a.slice(o[0],o[1]))}async function Xc({armoredKey:e,binaryKey:t,config:r,...n}){if(r={...R,...r},!e&&!t)throw Error("readPrivateKey: must pass options object containing `armoredKey` or `binaryKey`");if(e&&!M.isString(e))throw Error("readPrivateKey: options.armoredKey must be a string");if(t&&!M.isUint8Array(t))throw Error("readPrivateKey: options.binaryKey must be a Uint8Array");const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));let s;if(e){const{type:t,data:r}=await J(e);if(t!==Q.armor.privateKey)throw Error("Armored text not of type private key");s=r}else s=t;const a=await Vo.fromBinary(s,Yc,r),o=a.indexOfTag(Q.packet.publicKey,Q.packet.secretKey);for(let e=0;e<o.length;e++){if(a[o[e]].constructor.tag===Q.packet.publicKey)continue;const t=a.slice(o[e],o[e+1]);return new Vc(t)}throw Error("No secret key packet found")}async function $c({armoredKeys:e,binaryKeys:t,config:r,...n}){r={...R,...r};let i=e||t;if(!i)throw Error("readKeys: must pass options object containing `armoredKeys` or `binaryKeys`");if(e&&!M.isString(e))throw Error("readKeys: options.armoredKeys must be a string");if(t&&!M.isUint8Array(t))throw Error("readKeys: options.binaryKeys must be a Uint8Array");const s=Object.keys(n);if(s.length>0)throw Error("Unknown option: "+s.join(", "));if(e){const{type:t,data:r}=await J(e);if(t!==Q.armor.publicKey&&t!==Q.armor.privateKey)throw Error("Armored text not of type key");i=r}const a=[],o=await Vo.fromBinary(i,Yc,r),c=o.indexOfTag(Q.packet.publicKey,Q.packet.secretKey);if(0===c.length)throw Error("No key packet found");for(let e=0;e<c.length;e++){const t=Zc(o.slice(c[e],c[e+1]));a.push(t)}return a}async function eu({armoredKeys:e,binaryKeys:t,config:r}){r={...R,...r};let n=e||t;if(!n)throw Error("readPrivateKeys: must pass options object containing `armoredKeys` or `binaryKeys`");if(e&&!M.isString(e))throw Error("readPrivateKeys: options.armoredKeys must be a string");if(t&&!M.isUint8Array(t))throw Error("readPrivateKeys: options.binaryKeys must be a Uint8Array");if(e){const{type:t,data:r}=await J(e);if(t!==Q.armor.privateKey)throw Error("Armored text not of type private key");n=r}const i=[],s=await Vo.fromBinary(n,Yc,r),a=s.indexOfTag(Q.packet.publicKey,Q.packet.secretKey);for(let e=0;e<a.length;e++){if(s[a[e]].constructor.tag===Q.packet.publicKey)continue;const t=s.slice(a[e],a[e+1]),r=new Vc(t);i.push(r)}if(0===i.length)throw Error("No secret key packet found");return i}const tu=/*#__PURE__*/M.constructAllowedPackets([Ro,Zo,sc,rc,yc,oc,uc,_o,Fo]),ru=/*#__PURE__*/M.constructAllowedPackets([uc]),nu=/*#__PURE__*/M.constructAllowedPackets([Fo]);class iu{constructor(e){this.packets=e||new Vo}getEncryptionKeyIDs(){const e=[];return this.packets.filterByTag(Q.packet.publicKeyEncryptedSessionKey).forEach((function(t){e.push(t.publicKeyID)})),e}getSigningKeyIDs(){const e=this.unwrapCompressed(),t=e.packets.filterByTag(Q.packet.onePassSignature);if(t.length>0)return t.map((e=>e.issuerKeyID));return e.packets.filterByTag(Q.packet.signature).map((e=>e.issuerKeyID))}async decrypt(e,t,r,n=new Date,i=R){const s=this.packets.filterByTag(Q.packet.symmetricallyEncryptedData,Q.packet.symEncryptedIntegrityProtectedData,Q.packet.aeadEncryptedData);if(0===s.length)throw Error("No encrypted data found");const a=s[0],o=a.cipherAlgorithm,c=r||await this.decryptSessionKeys(e,t,o,n,i);let u=null;const h=Promise.all(c.map((async({algorithm:e,data:t})=>{if(!M.isUint8Array(t)||!a.cipherAlgorithm&&!M.isString(e))throw Error("Invalid session key for decryption.");try{const r=a.cipherAlgorithm||Q.write(Q.symmetric,e);await a.decrypt(r,t,i)}catch(e){M.printDebugError(e),u=e}})));if(C(a.encrypted),a.encrypted=null,await h,!a.packets||!a.packets.length)throw u||Error("Decryption failed.");const l=new iu(a.packets);return a.packets=new Vo,l}async decryptSessionKeys(e,t,r,n=new Date,i=R){let s,a=[];if(t){const e=this.packets.filterByTag(Q.packet.symEncryptedSessionKey);if(0===e.length)throw Error("No symmetrically encrypted session key packet found.");await Promise.all(t.map((async function(t,r){let n;n=r?await Vo.fromBinary(e.write(),ru,i):e,await Promise.all(n.map((async function(e){try{await e.decrypt(t),a.push(e)}catch(e){M.printDebugError(e),e instanceof xa&&(s=e)}})))})))}else{if(!e)throw Error("No key or password specified.");{const t=this.packets.filterByTag(Q.packet.publicKeyEncryptedSessionKey);if(0===t.length)throw Error("No public key encrypted session key packet found.");await Promise.all(t.map((async function(t){await Promise.all(e.map((async function(e){let o;try{o=(await e.getDecryptionKeys(t.publicKeyID,null,void 0,i)).map((e=>e.keyPacket))}catch(e){return void(s=e)}let c=[Q.symmetric.aes256,Q.symmetric.aes128,Q.symmetric.tripledes,Q.symmetric.cast5];try{const t=await e.getPrimarySelfSignature(n,void 0,i);t.preferredSymmetricAlgorithms&&(c=c.concat(t.preferredSymmetricAlgorithms))}catch(e){}await Promise.all(o.map((async function(e){if(!e.isDecrypted())throw Error("Decryption key is not decrypted.");if(i.constantTimePKCS1Decryption&&(t.publicKeyAlgorithm===Q.publicKey.rsaEncrypt||t.publicKeyAlgorithm===Q.publicKey.rsaEncryptSign||t.publicKeyAlgorithm===Q.publicKey.rsaSign||t.publicKeyAlgorithm===Q.publicKey.elgamal)){const n=t.write();await Promise.all((r?[r]:Array.from(i.constantTimePKCS1DecryptionSupportedSymmetricAlgorithms)).map((async t=>{const r=new oc;r.read(n);const i={sessionKeyAlgorithm:t,sessionKey:Ka(t)};try{await r.decrypt(e,i),a.push(r)}catch(e){M.printDebugError(e),s=e}})))}else try{await t.decrypt(e);const n=r||t.sessionKeyAlgorithm;if(n&&!c.includes(Q.write(Q.symmetric,n)))throw Error("A non-preferred symmetric algorithm was used.");a.push(t)}catch(e){M.printDebugError(e),s=e}})))}))),C(t.encrypted),t.encrypted=null})))}}if(a.length>0){if(a.length>1){const e=new Set;a=a.filter((t=>{const r=t.sessionKeyAlgorithm+M.uint8ArrayToString(t.sessionKey);return!e.has(r)&&(e.add(r),!0)}))}return a.map((e=>({data:e.sessionKey,algorithm:e.sessionKeyAlgorithm&&Q.read(Q.symmetric,e.sessionKeyAlgorithm)})))}throw s||Error("Session key decryption failed.")}getLiteralData(){const e=this.unwrapCompressed().packets.findPacket(Q.packet.literalData);return e&&e.getBytes()||null}getFilename(){const e=this.unwrapCompressed().packets.findPacket(Q.packet.literalData);return e&&e.getFilename()||null}getText(){const e=this.unwrapCompressed().packets.findPacket(Q.packet.literalData);return e?e.getText():null}static async generateSessionKey(e=[],t=new Date,r=[],n=R){const{symmetricAlgo:i,aeadAlgo:s}=await async function(e=[],t=new Date,r=[],n=R){const i=await Promise.all(e.map(((e,i)=>e.getPrimarySelfSignature(t,r[i],n))));if(e.length?!n.ignoreSEIPDv2FeatureFlag&&i.every((e=>e.features&&e.features[0]&Q.features.seipdv2)):n.aeadProtect){const e={symmetricAlgo:Q.symmetric.aes128,aeadAlgo:Q.aead.ocb},t=[{symmetricAlgo:n.preferredSymmetricAlgorithm,aeadAlgo:n.preferredAEADAlgorithm},{symmetricAlgo:n.preferredSymmetricAlgorithm,aeadAlgo:Q.aead.ocb},{symmetricAlgo:Q.symmetric.aes128,aeadAlgo:n.preferredAEADAlgorithm}];for(const e of t)if(i.every((t=>t.preferredCipherSuites&&t.preferredCipherSuites.some((t=>t[0]===e.symmetricAlgo&&t[1]===e.aeadAlgo)))))return e;return e}const s=Q.symmetric.aes128,a=n.preferredSymmetricAlgorithm;return{symmetricAlgo:i.every((e=>e.preferredSymmetricAlgorithms&&e.preferredSymmetricAlgorithms.includes(a)))?a:s,aeadAlgo:void 0}}(e,t,r,n),a=Q.read(Q.symmetric,i),o=s?Q.read(Q.aead,s):void 0;await Promise.all(e.map((e=>e.getEncryptionKey().catch((()=>null)).then((e=>{if(e&&(e.keyPacket.algorithm===Q.publicKey.x25519||e.keyPacket.algorithm===Q.publicKey.x448)&&!o&&!M.isAES(i))throw Error("Could not generate a session key compatible with the given `encryptionKeys`: X22519 and X448 keys can only be used to encrypt AES session keys; change `config.preferredSymmetricAlgorithm` accordingly.")})))));return{data:Ka(i),algorithm:a,aeadAlgorithm:o}}async encrypt(e,t,r,n=!1,i=[],s=new Date,a=[],o=R){if(r){if(!M.isUint8Array(r.data)||!M.isString(r.algorithm))throw Error("Invalid session key for encryption.")}else if(e&&e.length)r=await iu.generateSessionKey(e,s,a,o);else{if(!t||!t.length)throw Error("No keys, passwords, or session key provided.");r=await iu.generateSessionKey(void 0,void 0,void 0,o)}const{data:c,algorithm:u,aeadAlgorithm:h}=r,l=await iu.encryptSessionKey(c,u,h,e,t,n,i,s,a,o),y=rc.fromObject({version:h?2:1,aeadAlgorithm:h?Q.write(Q.aead,h):null});y.packets=this.packets;const f=Q.write(Q.symmetric,u);return await y.encrypt(f,c,o),l.packets.push(y),y.packets=new Vo,l}static async encryptSessionKey(e,t,r,n,i,s=!1,a=[],o=new Date,c=[],u=R){const h=new Vo,l=Q.write(Q.symmetric,t),y=r&&Q.write(Q.aead,r);if(n){const t=await Promise.all(n.map((async function(t,r){const n=await t.getEncryptionKey(a[r],o,c,u),i=oc.fromObject({version:y?6:3,encryptionKeyPacket:n.keyPacket,anonymousRecipient:s,sessionKey:e,sessionKeyAlgorithm:l});return await i.encrypt(n.keyPacket),delete i.sessionKey,i})));h.push(...t)}if(i){const t=async function(e,t){try{return await e.decrypt(t),1}catch(e){return 0}},r=(e,t)=>e+t,n=async function(e,s,a,o){const c=new uc(u);if(c.sessionKey=e,c.sessionKeyAlgorithm=s,a&&(c.aeadAlgorithm=a),await c.encrypt(o,u),u.passwordCollisionCheck){if(1!==(await Promise.all(i.map((e=>t(c,e))))).reduce(r))return n(e,s,o)}return delete c.sessionKey,c},s=await Promise.all(i.map((t=>n(e,l,y,t))));h.push(...s)}return new iu(h)}async sign(e=[],t=[],r=null,n=[],i=new Date,s=[],a=[],o=[],c=R){const u=new Vo,h=this.packets.findPacket(Q.packet.literalData);if(!h)throw Error("No literal data packet to sign.");const l=await su(h,e,t,r,n,i,s,a,o,!1,c),y=l.map(((e,t)=>_o.fromSignaturePacket(e,0===t))).reverse();return u.push(...y),u.push(h),u.push(...l),new iu(u)}compress(e,t=R){if(e===Q.compression.uncompressed)return this;const r=new Zo(t);r.algorithm=e,r.packets=this.packets;const n=new Vo;return n.push(r),new iu(n)}async signDetached(e=[],t=[],r=null,n=[],i=[],s=new Date,a=[],o=[],c=R){const u=this.packets.findPacket(Q.packet.literalData);if(!u)throw Error("No literal data packet to sign.");return new vc(await su(u,e,t,r,n,i,s,a,o,!0,c))}async verify(e,t=new Date,r=R){const n=this.unwrapCompressed(),i=n.packets.filterByTag(Q.packet.literalData);if(1!==i.length)throw Error("Can only verify message with one literal data packet.");a(n.packets.stream)&&n.packets.push(...await K(n.packets.stream,(e=>e||[])));const s=n.packets.filterByTag(Q.packet.onePassSignature).reverse(),o=n.packets.filterByTag(Q.packet.signature);return s.length&&!o.length&&M.isStream(n.packets.stream)&&!a(n.packets.stream)?(await Promise.all(s.map((async e=>{e.correspondingSig=new Promise(((t,r)=>{e.correspondingSigResolve=t,e.correspondingSigReject=r})),e.signatureData=U((async()=>(await e.correspondingSig).signatureData)),e.hashed=K(await e.hash(e.signatureType,i[0],void 0,!1)),e.hashed.catch((()=>{}))}))),n.packets.stream=k(n.packets.stream,(async(e,t)=>{const r=P(e),n=D(t);try{for(let e=0;e<s.length;e++){const{value:t}=await r.read();s[e].correspondingSigResolve(t)}await r.readToEnd(),await n.ready,await n.close()}catch(e){s.forEach((t=>{t.correspondingSigReject(e)})),await n.abort(e)}})),au(s,i,e,t,!1,r)):au(o,i,e,t,!1,r)}verifyDetached(e,t,r=new Date,n=R){const i=this.unwrapCompressed().packets.filterByTag(Q.packet.literalData);if(1!==i.length)throw Error("Can only verify message with one literal data packet.");return au(e.packets.filterByTag(Q.packet.signature),i,t,r,!0,n)}unwrapCompressed(){const e=this.packets.filterByTag(Q.packet.compressedData);return e.length?new iu(e[0].packets):this}async appendSignature(e,t=R){await this.packets.read(M.isUint8Array(e)?e:(await J(e)).data,nu,t)}write(){return this.packets.write()}armor(e=R){const t=this.packets[this.packets.length-1],r=t.constructor.tag===rc.tag?2!==t.version:this.packets.some((e=>e.constructor.tag===Fo.tag&&6!==e.version));return X(Q.armor.message,this.write(),null,null,null,r,e)}}async function su(e,t,r=[],n=null,i=[],s=new Date,a=[],o=[],c=[],u=!1,h=R){const l=new Vo,y=null===e.text?Q.signature.binary:Q.signature.text;if(await Promise.all(t.map((async(t,n)=>{const l=a[n];if(!t.isPrivate())throw Error("Need private key for signing");const f=await t.getSigningKey(i[n],s,l,h);return Dc(e,r.length?r:[t],f.keyPacket,{signatureType:y},s,o,c,u,h)}))).then((e=>{l.push(...e)})),n){const e=n.packets.filterByTag(Q.packet.signature);l.push(...e)}return l}async function au(e,t,r,n=new Date,i=!1,s=R){return Promise.all(e.filter((function(e){return["text","binary"].includes(Q.read(Q.signature,e.signatureType))})).map((async function(e){return async function(e,t,r,n=new Date,i=!1,s=R){let a,o;for(const t of r){const r=t.getKeys(e.issuerKeyID);if(r.length>0){a=t,o=r[0];break}}const c=e instanceof _o?e.correspondingSig:e,u={keyID:e.issuerKeyID,verified:(async()=>{if(!o)throw Error("Could not find signing key with key ID "+e.issuerKeyID.toHex());await e.verify(o.keyPacket,e.signatureType,t[0],n,i,s);const r=await c;if(o.getCreationTime()>r.created)throw Error("Key is newer than the signature");try{await a.getSigningKey(o.getKeyID(),r.created,void 0,s)}catch(e){if(!s.allowInsecureVerificationWithReformattedKeys||!e.message.match(/Signature creation time is in the future/))throw e;await a.getSigningKey(o.getKeyID(),n,void 0,s)}return!0})(),signature:(async()=>{const e=await c,t=new Vo;return e&&t.push(e),new vc(t)})()};return u.signature.catch((()=>{})),u.verified.catch((()=>{})),u}(e,t,r,n,i,s)})))}async function ou({armoredMessage:e,binaryMessage:t,config:r,...n}){r={...R,...r};let i=e||t;if(!i)throw Error("readMessage: must pass options object containing `armoredMessage` or `binaryMessage`");if(e&&!M.isString(e)&&!M.isStream(e))throw Error("readMessage: options.armoredMessage must be a string or stream");if(t&&!M.isUint8Array(t)&&!M.isStream(t))throw Error("readMessage: options.binaryMessage must be a Uint8Array or stream");const s=Object.keys(n);if(s.length>0)throw Error("Unknown option: "+s.join(", "));const a=M.isStream(i);if(e){const{type:e,data:t}=await J(i);if(e!==Q.armor.message)throw Error("Armored text not of type message");i=t}const o=await Vo.fromBinary(i,tu,r,qo({delayReporting:!1})),c=new iu(o);return c.fromStream=a,c}async function cu({text:e,binary:t,filename:r,date:n=new Date,format:i=(void 0!==e?"utf8":"binary"),...s}){const a=void 0!==e?e:t;if(void 0===a)throw Error("createMessage: must pass options object containing `text` or `binary`");if(e&&!M.isString(e)&&!M.isStream(e))throw Error("createMessage: options.text must be a string or stream");if(t&&!M.isUint8Array(t)&&!M.isStream(t))throw Error("createMessage: options.binary must be a Uint8Array or stream");const o=Object.keys(s);if(o.length>0)throw Error("Unknown option: "+o.join(", "));const c=M.isStream(a),u=new Ro(n);void 0!==e?u.setText(a,Q.write(Q.literal,i)):u.setBytes(a,Q.write(Q.literal,i)),void 0!==r&&u.setFilename(r);const h=new Vo;h.push(u);const l=new iu(h);return l.fromStream=c,l}const uu=/*#__PURE__*/M.constructAllowedPackets([Fo]);class hu{constructor(e,t){if(this.text=M.removeTrailingSpaces(e).replace(/\r?\n/g,"\r\n"),t&&!(t instanceof vc))throw Error("Invalid signature input");this.signature=t||new vc(new Vo)}getSigningKeyIDs(){const e=[];return this.signature.packets.forEach((function(t){e.push(t.issuerKeyID)})),e}async sign(e,t=[],r=null,n=[],i=new Date,s=[],a=[],o=[],c=R){const u=new Ro;u.setText(this.text);const h=new vc(await su(u,e,t,r,n,i,s,a,o,!0,c));return new hu(this.text,h)}verify(e,t=new Date,r=R){const n=this.signature.packets.filterByTag(Q.packet.signature),i=new Ro;return i.setText(this.text),au(n,[i],e,t,!0,r)}getText(){return this.text.replace(/\r\n/g,"\n")}armor(e=R){const t=this.signature.packets.some((e=>6!==e.version)),r={hash:t?Array.from(new Set(this.signature.packets.map((e=>Q.read(Q.hash,e.hashAlgorithm).toUpperCase())))).join():null,text:this.text,data:this.signature.packets.write()};return X(Q.armor.signed,r,void 0,void 0,void 0,t,e)}}async function lu({cleartextMessage:e,config:t,...r}){if(t={...R,...t},!e)throw Error("readCleartextMessage: must pass options object containing `cleartextMessage`");if(!M.isString(e))throw Error("readCleartextMessage: options.cleartextMessage must be a string");const n=Object.keys(r);if(n.length>0)throw Error("Unknown option: "+n.join(", "));const i=await J(e);if(i.type!==Q.armor.signed)throw Error("No cleartext signed message.");const s=await Vo.fromBinary(i.data,uu,t);!function(e,t){const r=function(e){const r=e=>t=>e.hashAlgorithm===t;for(let n=0;n<t.length;n++)if(t[n].constructor.tag===Q.packet.signature&&!e.some(r(t[n])))return!1;return!0},n=[];if(e.forEach((e=>{const t=e.match(/^Hash: (.+)$/);if(!t)throw Error('Only "Hash" header allowed in cleartext signed message');{const e=t[1].replace(/\s/g,"").split(",").map((e=>{try{return Q.write(Q.hash,e.toLowerCase())}catch(t){throw Error("Unknown hash algorithm in armor header: "+e.toLowerCase())}}));n.push(...e)}})),n.length&&!r(n))throw Error("Hash algorithm mismatch in armor header and signature")}(i.headers,s);const a=new vc(s);return new hu(i.text,a)}async function yu({text:e,...t}){if(!e)throw Error("createCleartextMessage: must pass options object containing `text`");if(!M.isString(e))throw Error("createCleartextMessage: options.text must be a string");const r=Object.keys(t);if(r.length>0)throw Error("Unknown option: "+r.join(", "));return new hu(e)}async function fu({userIDs:e=[],passphrase:t,type:r,curve:n,rsaBits:i=4096,symmetricHash:s="sha256",symmetricCipher:a="aes256",keyExpirationTime:o=0,date:c=new Date,subkeys:u=[{}],format:h="armored",config:l,...y}){Uu(l={...R,...l}),r||n?(r=r||"ecc",n=n||"curve25519Legacy"):(r=l.v6Keys?"curve25519":"ecc",n="curve25519Legacy"),e=Pu(e);const f=Object.keys(y);if(f.length>0)throw Error("Unknown option: "+f.join(", "));if(0===e.length&&!l.v6Keys)throw Error("UserIDs are required for V4 keys");if("rsa"===r&&i<l.minRSABits)throw Error(`rsaBits should be at least ${l.minRSABits}, got: ${i}`);const p={userIDs:e,passphrase:t,type:r,rsaBits:i,curve:n,keyExpirationTime:o,date:c,subkeys:u,symmetricHash:s,symmetricCipher:a};try{const{key:e,revocationCertificate:t}=await async function(e,t){e.sign=!0,(e=Tc(e)).subkeys=e.subkeys.map(((t,r)=>Tc(e.subkeys[r],e)));let r=[Ic(e,t)];r=r.concat(e.subkeys.map((e=>Sc(e,t))));const n=await Promise.all(r),i=await Wc(n[0],n.slice(1),e,t),s=await i.getRevocationCertificate(e.date,t);return i.revocationSignatures=[],{key:i,revocationCertificate:s}}(p,l);return e.getKeys().forEach((({keyPacket:e})=>Fc(e,l))),{privateKey:Qu(e,h,l),publicKey:"symmetric"!==r?Qu(e.toPublic(),h,l):null,revocationCertificate:t}}catch(e){throw M.wrapError("Error generating keypair",e)}}async function pu({privateKey:e,userIDs:t=[],passphrase:r,keyExpirationTime:n=0,date:i,format:s="armored",config:a,...o}){Uu(a={...R,...a}),t=Pu(t);const c=Object.keys(o);if(c.length>0)throw Error("Unknown option: "+c.join(", "));if(0===t.length&&6!==e.keyPacket.version)throw Error("UserIDs are required for V4 keys");const u={privateKey:e,userIDs:t,passphrase:r,keyExpirationTime:n,date:i};try{const{key:e,revocationCertificate:t}=await async function(e,t){e=o(e);const{privateKey:r}=e;if(!r.isPrivate())throw Error("Cannot reformat a public key");if(r.keyPacket.isDummy())throw Error("Cannot reformat a gnu-dummy primary key");if(!r.getKeys().every((({keyPacket:e})=>e.isDecrypted())))throw Error("Key is not decrypted");const n=r.keyPacket;e.subkeys||(e.subkeys=await Promise.all(r.subkeys.map((async e=>{const r=e.keyPacket,i={key:n,bind:r},s=await Kc(e.bindingSignatures,n,Q.signature.subkeyBinding,i,null,t).catch((()=>({})));return{sign:s.keyFlags&&s.keyFlags[0]&Q.keyFlags.signData,forwarding:s.keyFlags&&s.keyFlags[0]&Q.keyFlags.forwardedCommunication}}))));const i=r.subkeys.map((e=>e.keyPacket));if(e.subkeys.length!==i.length)throw Error("Number of subkey options does not match number of subkeys");e.subkeys=e.subkeys.map((t=>o(t,e)));const s=await Wc(n,i,e,t),a=await s.getRevocationCertificate(e.date,t);return s.revocationSignatures=[],{key:s,revocationCertificate:a};function o(e,t={}){return e.keyExpirationTime=e.keyExpirationTime||t.keyExpirationTime,e.passphrase=M.isString(e.passphrase)?e.passphrase:t.passphrase,e.date=e.date||t.date,e}}(u,a);return{privateKey:Qu(e,s,a),publicKey:Qu(e.toPublic(),s,a),revocationCertificate:t}}catch(e){throw M.wrapError("Error reformatting keypair",e)}}async function gu({key:e,revocationCertificate:t,reasonForRevocation:r,date:n=new Date,format:i="armored",config:s,...a}){Uu(s={...R,...s});const o=Object.keys(a);if(o.length>0)throw Error("Unknown option: "+o.join(", "));try{const a=t?await e.applyRevocationCertificate(t,n,s):await e.revoke(r,n,s);return a.isPrivate()?{privateKey:Qu(a,i,s),publicKey:Qu(a.toPublic(),i,s)}:{privateKey:null,publicKey:Qu(a,i,s)}}catch(e){throw M.wrapError("Error revoking key",e)}}async function du({privateKey:e,passphrase:t,config:r,...n}){Uu(r={...R,...r});const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));if(!e.isPrivate())throw Error("Cannot decrypt a public key");const s=e.clone(!0),a=M.isArray(t)?t:[t];try{return await Promise.all(s.getKeys().map((e=>M.anyPromise(a.map((t=>e.keyPacket.decrypt(t))))))),await s.validate(r),s}catch(e){throw s.clearPrivateParams(),M.wrapError("Error decrypting private key",e)}}async function Au({privateKey:e,passphrase:t,config:r,...n}){Uu(r={...R,...r});const i=Object.keys(n);if(i.length>0)throw Error("Unknown option: "+i.join(", "));if(!e.isPrivate())throw Error("Cannot encrypt a public key");const s=e.clone(!0),a=s.getKeys(),o=M.isArray(t)?t:Array(a.length).fill(t);if(o.length!==a.length)throw Error("Invalid number of passphrases given for key encryption");try{return await Promise.all(a.map((async(e,t)=>{const{keyPacket:n}=e;await n.encrypt(o[t],r),n.clearPrivateParams()}))),s}catch(e){throw s.clearPrivateParams(),M.wrapError("Error encrypting private key",e)}}async function wu({message:e,encryptionKeys:t,signingKeys:r,passwords:n,sessionKey:i,format:s="armored",signature:a=null,wildcard:o=!1,signingKeyIDs:c=[],encryptionKeyIDs:u=[],date:h=new Date,signingUserIDs:l=[],encryptionUserIDs:y=[],signatureNotations:f=[],config:p,...g}){if(Uu(p={...R,...p}),Su(e),Ku(s),t=Pu(t),r=Pu(r),n=Pu(n),c=Pu(c),u=Pu(u),l=Pu(l),y=Pu(y),f=Pu(f),g.detached)throw Error("The `detached` option has been removed from openpgp.encrypt, separately call openpgp.sign instead. Don't forget to remove the `privateKeys` option as well.");if(g.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.encrypt, pass `encryptionKeys` instead");if(g.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.encrypt, pass `signingKeys` instead");if(void 0!==g.armor)throw Error("The `armor` option has been removed from openpgp.encrypt, pass `format` instead.");const d=Object.keys(g);if(d.length>0)throw Error("Unknown option: "+d.join(", "));r||(r=[]);try{if((r.length||a)&&(e=await e.sign(r,t,a,c,h,l,u,f,p)),e=e.compress(await async function(e=[],t=new Date,r=[],n=R){const i=Q.compression.uncompressed,s=n.preferredCompressionAlgorithm,a=await Promise.all(e.map((async function(e,i){const a=(await e.getPrimarySelfSignature(t,r[i],n)).preferredCompressionAlgorithms;return!!a&&a.indexOf(s)>=0})));return a.every(Boolean)?s:i}(t,h,y,p),p),e=await e.encrypt(t,n,i,o,u,h,y,p),"object"===s)return e;const g="armored"===s?e.armor(p):e.write();return await Du(g)}catch(e){throw M.wrapError("Error encrypting message",e)}}async function mu({message:e,decryptionKeys:t,passwords:r,sessionKeys:n,verificationKeys:i,expectSigned:s=!1,format:a="utf8",signature:o=null,date:c=new Date,config:u,...h}){if(Uu(u={...R,...u}),Su(e),i=Pu(i),t=Pu(t),r=Pu(r),n=Pu(n),h.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.decrypt, pass `decryptionKeys` instead");if(h.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.decrypt, pass `verificationKeys` instead");const l=Object.keys(h);if(l.length>0)throw Error("Unknown option: "+l.join(", "));try{const h=await e.decrypt(t,r,n,c,u);i||(i=[]);const l={};if(l.signatures=o?await h.verifyDetached(o,i,c,u):await h.verify(i,c,u),l.data="binary"===a?h.getLiteralData():h.getText(),l.filename=h.getFilename(),xu(l,e,...new Set([h,h.unwrapCompressed()])),s){if(0===i.length)throw Error("Verification keys are required to verify message signatures");if(0===l.signatures.length)throw Error("Message is not signed");l.data=d([l.data,U((async()=>(await M.anyPromise(l.signatures.map((e=>e.verified))),"binary"===a?new Uint8Array:"")))])}return l.data=await Du(l.data),l}catch(e){throw M.wrapError("Error decrypting message",e)}}async function bu({message:e,signingKeys:t,recipientKeys:r=[],format:n="armored",detached:i=!1,signingKeyIDs:s=[],date:a=new Date,signingUserIDs:o=[],recipientUserIDs:c=[],signatureNotations:u=[],config:h,...l}){if(Uu(h={...R,...h}),Iu(e),Ku(n),t=Pu(t),s=Pu(s),o=Pu(o),r=Pu(r),c=Pu(c),u=Pu(u),l.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.sign, pass `signingKeys` instead");if(void 0!==l.armor)throw Error("The `armor` option has been removed from openpgp.sign, pass `format` instead.");const y=Object.keys(l);if(y.length>0)throw Error("Unknown option: "+y.join(", "));if(e instanceof hu&&"binary"===n)throw Error("Cannot return signed cleartext message in binary format");if(e instanceof hu&&i)throw Error("Cannot detach-sign a cleartext message");if(!t||0===t.length)throw Error("No signing keys provided");try{let l;if(l=i?await e.signDetached(t,r,void 0,s,a,o,c,u,h):await e.sign(t,r,void 0,s,a,o,c,u,h),"object"===n)return l;return l="armored"===n?l.armor(h):l.write(),i&&(l=k(e.packets.write(),(async(e,t)=>{await Promise.all([A(l,t),K(e).catch((()=>{}))])}))),await Du(l)}catch(e){throw M.wrapError("Error signing message",e)}}async function ku({message:e,verificationKeys:t,expectSigned:r=!1,format:n="utf8",signature:i=null,date:s=new Date,config:a,...o}){if(Uu(a={...R,...a}),Iu(e),t=Pu(t),o.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.verify, pass `verificationKeys` instead");const c=Object.keys(o);if(c.length>0)throw Error("Unknown option: "+c.join(", "));if(e instanceof hu&&"binary"===n)throw Error("Can't return cleartext message data as binary");if(e instanceof hu&&i)throw Error("Can't verify detached cleartext signature");try{const o={};if(o.signatures=i?await e.verifyDetached(i,t,s,a):await e.verify(t,s,a),o.data="binary"===n?e.getLiteralData():e.getText(),e.fromStream&&!i&&xu(o,...new Set([e,e.unwrapCompressed()])),r){if(0===o.signatures.length)throw Error("Message is not signed");o.data=d([o.data,U((async()=>(await M.anyPromise(o.signatures.map((e=>e.verified))),"binary"===n?new Uint8Array:"")))])}return o.data=await Du(o.data),o}catch(e){throw M.wrapError("Error verifying signed message",e)}}async function Eu({encryptionKeys:e,date:t=new Date,encryptionUserIDs:r=[],config:n,...i}){if(Uu(n={...R,...n}),e=Pu(e),r=Pu(r),i.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.generateSessionKey, pass `encryptionKeys` instead");const s=Object.keys(i);if(s.length>0)throw Error("Unknown option: "+s.join(", "));try{return await iu.generateSessionKey(e,t,r,n)}catch(e){throw M.wrapError("Error generating session key",e)}}async function vu({data:e,algorithm:t,aeadAlgorithm:r,encryptionKeys:n,passwords:i,format:s="armored",wildcard:a=!1,encryptionKeyIDs:o=[],date:c=new Date,encryptionUserIDs:u=[],config:h,...l}){if(Uu(h={...R,...h}),function(e){if(!M.isUint8Array(e))throw Error("Parameter [data] must be of type Uint8Array")}(e),function(e,t){if(!M.isString(e))throw Error("Parameter ["+t+"] must be of type String")}(t,"algorithm"),Ku(s),n=Pu(n),i=Pu(i),o=Pu(o),u=Pu(u),l.publicKeys)throw Error("The `publicKeys` option has been removed from openpgp.encryptSessionKey, pass `encryptionKeys` instead");const y=Object.keys(l);if(y.length>0)throw Error("Unknown option: "+y.join(", "));if(!(n&&0!==n.length||i&&0!==i.length))throw Error("No encryption keys or passwords provided.");try{return Qu(await iu.encryptSessionKey(e,t,r,n,i,a,o,c,u,h),s,h)}catch(e){throw M.wrapError("Error encrypting session key",e)}}async function Bu({message:e,decryptionKeys:t,passwords:r,date:n=new Date,config:i,...s}){if(Uu(i={...R,...i}),Su(e),t=Pu(t),r=Pu(r),s.privateKeys)throw Error("The `privateKeys` option has been removed from openpgp.decryptSessionKeys, pass `decryptionKeys` instead");const a=Object.keys(s);if(a.length>0)throw Error("Unknown option: "+a.join(", "));try{return await e.decryptSessionKeys(t,r,void 0,n,i)}catch(e){throw M.wrapError("Error decrypting session keys",e)}}function Su(e){if(!(e instanceof iu))throw Error("Parameter [message] needs to be of type Message")}function Iu(e){if(!(e instanceof hu||e instanceof iu))throw Error("Parameter [message] needs to be of type Message or CleartextMessage")}function Ku(e){if("armored"!==e&&"binary"!==e&&"object"!==e)throw Error("Unsupported format "+e)}const Cu=Object.keys(R).length;function Uu(e){const t=Object.keys(e);if(t.length!==Cu)for(const e of t)if(void 0===R[e])throw Error("Unknown config property: "+e)}function Pu(e){return e&&!M.isArray(e)&&(e=[e]),e}async function Du(e){return"array"===M.isStream(e)?K(e):e}function xu(e,t,...r){e.data=k(t.packets.stream,(async(t,n)=>{await A(e.data,n,{preventClose:!0});const i=D(n);try{await K(t,(e=>e)),await Promise.all(r.map((e=>K(e.packets.stream,(e=>e))))),await i.close()}catch(e){await i.abort(e)}}))}function Qu(e,t,r){switch(t){case"object":return e;case"armored":return e.armor(r);case"binary":return e.write();default:throw Error("Unsupported format "+t)}}function Ru(e){if(!Number.isSafeInteger(e)||e<0)throw Error("positive integer expected, got "+e)}function Tu(e,...t){if(!((r=e)instanceof Uint8Array||ArrayBuffer.isView(r)&&"Uint8Array"===r.constructor.name))throw Error("Uint8Array expected");var r;if(t.length>0&&!t.includes(e.length))throw Error("Uint8Array expected of length "+t+", got length="+e.length)}function Mu(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function Lu(e,t){Tu(e);const r=t.outputLen;if(e.length<r)throw Error("digestInto() expects output buffer of length at least "+r)}const Nu="object"==typeof e&&"crypto"in e?e.crypto:void 0,Fu=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),Ou=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Hu=(e,t)=>e<<32-t|e>>>t,_u=(e,t)=>e<<t|e>>>32-t>>>0,zu=/* @__PURE__ */(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();
5
+ /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Gu(e){for(let r=0;r<e.length;r++)e[r]=(t=e[r])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function qu(e){if("string"!=typeof e)throw Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}function ju(e){return"string"==typeof e&&(e=qu(e)),Tu(e),e}function Vu(...e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];Tu(n),t+=n.length}const r=new Uint8Array(t);for(let t=0,n=0;t<e.length;t++){const i=e[t];r.set(i,n),n+=i.length}return r}class Yu{clone(){return this._cloneInto()}}function Zu(e){const t=t=>e().update(ju(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Wu(e=32){if(Nu&&"function"==typeof Nu.getRandomValues)return Nu.getRandomValues(new Uint8Array(e));if(Nu&&"function"==typeof Nu.randomBytes)return Nu.randomBytes(e);throw Error("crypto.getRandomValues must be defined")}const Ju=(e,t,r)=>e&t^~e&r,Xu=(e,t,r)=>e&t^e&r^t&r;class $u extends Yu{constructor(e,t,r,n){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Ou(this.buffer)}update(e){Mu(this);const{view:t,buffer:r,blockLen:n}=this,i=(e=ju(e)).length;for(let s=0;s<i;){const a=Math.min(n-this.pos,i-s);if(a!==n)r.set(e.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===n&&(this.process(t,0),this.pos=0);else{const t=Ou(e);for(;n<=i-s;s+=n)this.process(t,s)}}return this.length+=e.length,this.roundClean(),this}digestInto(e){Mu(this),Lu(e,this),this.finished=!0;const{buffer:t,view:r,blockLen:n,isLE:i}=this;let{pos:s}=this;t[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>n-s&&(this.process(r,0),s=0);for(let e=s;e<n;e++)t[e]=0;!function(e,t,r,n){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,r,n);const i=BigInt(32),s=BigInt(4294967295),a=Number(r>>i&s),o=Number(r&s),c=n?4:0,u=n?0:4;e.setUint32(t+c,a,n),e.setUint32(t+u,o,n)}(r,n-8,BigInt(8*this.length),i),this.process(r,0);const a=Ou(e),o=this.outputLen;if(o%4)throw Error("_sha2: outputLen should be aligned to 32bit");const c=o/4,u=this.get();if(c>u.length)throw Error("_sha2: outputLen bigger than state");for(let e=0;e<c;e++)a.setUint32(4*e,u[e],i)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:r,length:n,finished:i,destroyed:s,pos:a}=this;return e.length=n,e.pos=a,e.finished=i,e.destroyed=s,n%t&&e.buffer.set(r),e}}const eh=/* @__PURE__ */new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),th=/* @__PURE__ */new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),rh=/* @__PURE__ */new Uint32Array(64);class nh extends $u{constructor(){super(64,32,8,!1),this.A=0|th[0],this.B=0|th[1],this.C=0|th[2],this.D=0|th[3],this.E=0|th[4],this.F=0|th[5],this.G=0|th[6],this.H=0|th[7]}get(){const{A:e,B:t,C:r,D:n,E:i,F:s,G:a,H:o}=this;return[e,t,r,n,i,s,a,o]}set(e,t,r,n,i,s,a,o){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n,this.E=0|i,this.F=0|s,this.G=0|a,this.H=0|o}process(e,t){for(let r=0;r<16;r++,t+=4)rh[r]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=rh[e-15],r=rh[e-2],n=Hu(t,7)^Hu(t,18)^t>>>3,i=Hu(r,17)^Hu(r,19)^r>>>10;rh[e]=i+rh[e-7]+n+rh[e-16]|0}let{A:r,B:n,C:i,D:s,E:a,F:o,G:c,H:u}=this;for(let e=0;e<64;e++){const t=u+(Hu(a,6)^Hu(a,11)^Hu(a,25))+Ju(a,o,c)+eh[e]+rh[e]|0,h=(Hu(r,2)^Hu(r,13)^Hu(r,22))+Xu(r,n,i)|0;u=c,c=o,o=a,a=s+t|0,s=i,i=n,n=r,r=t+h|0}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,o=o+this.F|0,c=c+this.G|0,u=u+this.H|0,this.set(r,n,i,s,a,o,c,u)}roundClean(){rh.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}class ih extends nh{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}const sh=/* @__PURE__ */Zu((()=>new nh)),ah=/* @__PURE__ */Zu((()=>new ih));class oh extends Yu{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,function(e){if("function"!=typeof e||"function"!=typeof e.create)throw Error("Hash should be wrapped by utils.wrapConstructor");Ru(e.outputLen),Ru(e.blockLen)}(e);const r=ju(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;const n=this.blockLen,i=new Uint8Array(n);i.set(r.length>n?e.create().update(r).digest():r);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),i.fill(0)}update(e){return Mu(this),this.iHash.update(e),this}digestInto(e){Mu(this),Tu(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:r,finished:n,destroyed:i,blockLen:s,outputLen:a}=this;return e.finished=n,e.destroyed=i,e.blockLen=s,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const ch=(e,t,r)=>new oh(e,t).update(r).digest();ch.create=(e,t)=>new oh(e,t)
6
+ /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */;const uh=/* @__PURE__ */BigInt(0),hh=/* @__PURE__ */BigInt(1),lh=/* @__PURE__ */BigInt(2);function yh(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function fh(e){if(!yh(e))throw Error("Uint8Array expected")}function ph(e,t){if("boolean"!=typeof t)throw Error(e+" boolean expected, got "+t)}const gh=/* @__PURE__ */Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function dh(e){fh(e);let t="";for(let r=0;r<e.length;r++)t+=gh[e[r]];return t}function Ah(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function wh(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);return""===e?uh:BigInt("0x"+e)}const mh={_0:48,_9:57,A:65,F:70,a:97,f:102};function bh(e){return e>=mh._0&&e<=mh._9?e-mh._0:e>=mh.A&&e<=mh.F?e-(mh.A-10):e>=mh.a&&e<=mh.f?e-(mh.a-10):void 0}function kh(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);const t=e.length,r=t/2;if(t%2)throw Error("hex string expected, got unpadded hex of length "+t);const n=new Uint8Array(r);for(let t=0,i=0;t<r;t++,i+=2){const r=bh(e.charCodeAt(i)),s=bh(e.charCodeAt(i+1));if(void 0===r||void 0===s){const t=e[i]+e[i+1];throw Error('hex string expected, got non-hex character "'+t+'" at index '+i)}n[t]=16*r+s}return n}function Eh(e){return wh(dh(e))}function vh(e){return fh(e),wh(dh(Uint8Array.from(e).reverse()))}function Bh(e,t){return kh(e.toString(16).padStart(2*t,"0"))}function Sh(e,t){return Bh(e,t).reverse()}function Ih(e,t,r){let n;if("string"==typeof t)try{n=kh(t)}catch(t){throw Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!yh(t))throw Error(e+" must be hex string or Uint8Array");n=Uint8Array.from(t)}const i=n.length;if("number"==typeof r&&i!==r)throw Error(e+" of length "+r+" expected, got "+i);return n}function Kh(...e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];fh(n),t+=n.length}const r=new Uint8Array(t);for(let t=0,n=0;t<e.length;t++){const i=e[t];r.set(i,n),n+=i.length}return r}const Ch=e=>"bigint"==typeof e&&uh<=e;function Uh(e,t,r){return Ch(e)&&Ch(t)&&Ch(r)&&t<=e&&e<r}function Ph(e,t,r,n){if(!Uh(t,r,n))throw Error("expected valid "+e+": "+r+" <= n < "+n+", got "+t)}function Dh(e){let t;for(t=0;e>uh;e>>=hh,t+=1);return t}const xh=e=>(lh<<BigInt(e-1))-hh,Qh=e=>new Uint8Array(e),Rh=e=>Uint8Array.from(e);function Th(e,t,r){if("number"!=typeof e||e<2)throw Error("hashLen must be a number");if("number"!=typeof t||t<2)throw Error("qByteLen must be a number");if("function"!=typeof r)throw Error("hmacFn must be a function");let n=Qh(e),i=Qh(e),s=0;const a=()=>{n.fill(1),i.fill(0),s=0},o=(...e)=>r(i,n,...e),c=(e=Qh())=>{i=o(Rh([0]),e),n=o(),0!==e.length&&(i=o(Rh([1]),e),n=o())},u=()=>{if(s++>=1e3)throw Error("drbg: tried 1000 values");let e=0;const r=[];for(;e<t;){n=o();const t=n.slice();r.push(t),e+=n.length}return Kh(...r)};return(e,t)=>{let r;for(a(),c(e);!(r=t(u()));)c();return a(),r}}const Mh={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||yh(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function Lh(e,t,r={}){const n=(t,r,n)=>{const i=Mh[r];if("function"!=typeof i)throw Error("invalid validator function");const s=e[t];if(!(n&&void 0===s||i(s,e)))throw Error("param "+t+" is invalid. Expected "+r+", got "+s)};for(const[e,r]of Object.entries(t))n(e,r,!1);for(const[e,t]of Object.entries(r))n(e,t,!0);return e}function Nh(e){const t=new WeakMap;return(r,...n)=>{const i=t.get(r);if(void 0!==i)return i;const s=e(r,...n);return t.set(r,s),s}}var Fh=/*#__PURE__*/Object.freeze({__proto__:null,aInRange:Ph,abool:ph,abytes:fh,bitGet:function(e,t){return e>>BigInt(t)&hh},bitLen:Dh,bitMask:xh,bitSet:function(e,t,r){return e|(r?hh:uh)<<BigInt(t)},bytesToHex:dh,bytesToNumberBE:Eh,bytesToNumberLE:vh,concatBytes:Kh,createHmacDrbg:Th,ensureBytes:Ih,equalBytes:function(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return 0===r},hexToBytes:kh,hexToNumber:wh,inRange:Uh,isBytes:yh,memoized:Nh,notImplemented:()=>{throw Error("not implemented")},numberToBytesBE:Bh,numberToBytesLE:Sh,numberToHexUnpadded:Ah,numberToVarBytesBE:function(e){return kh(Ah(e))},utf8ToBytes:function(e){if("string"!=typeof e)throw Error("string expected");return new Uint8Array((new TextEncoder).encode(e))},validateObject:Lh});
7
+ /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Oh=BigInt(0),Hh=BigInt(1),_h=/* @__PURE__ */BigInt(2),zh=/* @__PURE__ */BigInt(3),Gh=/* @__PURE__ */BigInt(4),qh=/* @__PURE__ */BigInt(5),jh=/* @__PURE__ */BigInt(8);function Vh(e,t){const r=e%t;return r>=Oh?r:t+r}function Yh(e,t,r){if(t<Oh)throw Error("invalid exponent, negatives unsupported");if(r<=Oh)throw Error("invalid modulus");if(r===Hh)return Oh;let n=Hh;for(;t>Oh;)t&Hh&&(n=n*e%r),e=e*e%r,t>>=Hh;return n}function Zh(e,t,r){let n=e;for(;t-- >Oh;)n*=n,n%=r;return n}function Wh(e,t){if(e===Oh)throw Error("invert: expected non-zero number");if(t<=Oh)throw Error("invert: expected positive modulus, got "+t);let r=Vh(e,t),n=t,i=Oh,s=Hh;for(;r!==Oh;){const e=n%r,t=i-s*(n/r);n=r,r=e,i=s,s=t}if(n!==Hh)throw Error("invert: does not exist");return Vh(i,t)}function Jh(e){if(e%Gh===zh){const t=(e+Hh)/Gh;return function(e,r){const n=e.pow(r,t);if(!e.eql(e.sqr(n),r))throw Error("Cannot find square root");return n}}if(e%jh===qh){const t=(e-qh)/jh;return function(e,r){const n=e.mul(r,_h),i=e.pow(n,t),s=e.mul(r,i),a=e.mul(e.mul(s,_h),i),o=e.mul(s,e.sub(a,e.ONE));if(!e.eql(e.sqr(o),r))throw Error("Cannot find square root");return o}}return function(e){const t=(e-Hh)/_h;let r,n,i;for(r=e-Hh,n=0;r%_h===Oh;r/=_h,n++);for(i=_h;i<e&&Yh(i,t,e)!==e-Hh;i++)if(i>1e3)throw Error("Cannot find square root: likely non-prime P");if(1===n){const t=(e+Hh)/Gh;return function(e,r){const n=e.pow(r,t);if(!e.eql(e.sqr(n),r))throw Error("Cannot find square root");return n}}const s=(r+Hh)/_h;return function(e,a){if(e.pow(a,t)===e.neg(e.ONE))throw Error("Cannot find square root");let o=n,c=e.pow(e.mul(e.ONE,i),r),u=e.pow(a,s),h=e.pow(a,r);for(;!e.eql(h,e.ONE);){if(e.eql(h,e.ZERO))return e.ZERO;let t=1;for(let r=e.sqr(h);t<o&&!e.eql(r,e.ONE);t++)r=e.sqr(r);const r=e.pow(c,Hh<<BigInt(o-t-1));c=e.sqr(r),u=e.mul(u,r),h=e.mul(h,c),o=t}return u}}(e)}const Xh=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function $h(e,t){const r=void 0!==t?t:e.toString(2).length;return{nBitLength:r,nByteLength:Math.ceil(r/8)}}function el(e,t,r=!1,n={}){if(e<=Oh)throw Error("invalid field: expected ORDER > 0, got "+e);const{nBitLength:i,nByteLength:s}=$h(e,t);if(s>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let a;const o=Object.freeze({ORDER:e,BITS:i,BYTES:s,MASK:xh(i),ZERO:Oh,ONE:Hh,create:t=>Vh(t,e),isValid:t=>{if("bigint"!=typeof t)throw Error("invalid field element: expected bigint, got "+typeof t);return Oh<=t&&t<e},is0:e=>e===Oh,isOdd:e=>(e&Hh)===Hh,neg:t=>Vh(-t,e),eql:(e,t)=>e===t,sqr:t=>Vh(t*t,e),add:(t,r)=>Vh(t+r,e),sub:(t,r)=>Vh(t-r,e),mul:(t,r)=>Vh(t*r,e),pow:(e,t)=>function(e,t,r){if(r<Oh)throw Error("invalid exponent, negatives unsupported");if(r===Oh)return e.ONE;if(r===Hh)return t;let n=e.ONE,i=t;for(;r>Oh;)r&Hh&&(n=e.mul(n,i)),i=e.sqr(i),r>>=Hh;return n}(o,e,t),div:(t,r)=>Vh(t*Wh(r,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>Wh(t,e),sqrt:n.sqrt||(t=>(a||(a=Jh(e)),a(o,t))),invertBatch:e=>function(e,t){const r=Array(t.length),n=t.reduce(((t,n,i)=>e.is0(n)?t:(r[i]=t,e.mul(t,n))),e.ONE),i=e.inv(n);return t.reduceRight(((t,n,i)=>e.is0(n)?t:(r[i]=e.mul(t,r[i]),e.mul(t,n))),i),r}(o,e),cmov:(e,t,r)=>r?t:e,toBytes:e=>r?Sh(e,s):Bh(e,s),fromBytes:e=>{if(e.length!==s)throw Error("Field.fromBytes: expected "+s+" bytes, got "+e.length);return r?vh(e):Eh(e)}});return Object.freeze(o)}function tl(e){if("bigint"!=typeof e)throw Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function rl(e){const t=tl(e);return t+Math.ceil(t/2)}
8
8
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
9
- const rl=BigInt(0),nl=BigInt(1);function il(e,t){const r=t.negate();return e?r:t}function sl(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw Error("invalid window size, expected [1.."+t+"], got W="+e)}function al(e,t){sl(e,t);return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1)}}const ol=new WeakMap,cl=new WeakMap;function ul(e){return cl.get(e)||1}function hl(e,t){return{constTimeNegate:il,hasPrecomputes:e=>1!==ul(e),unsafeLadder(t,r,n=e.ZERO){let i=t;for(;r>rl;)r&nl&&(n=n.add(i)),i=i.double(),r>>=nl;return n},precomputeWindow(e,r){const{windows:n,windowSize:i}=al(r,t),s=[];let a=e,o=a;for(let e=0;e<n;e++){o=a,s.push(o);for(let e=1;e<i;e++)o=o.add(a),s.push(o);a=o.double()}return s},wNAF(r,n,i){const{windows:s,windowSize:a}=al(r,t);let o=e.ZERO,c=e.BASE;const u=BigInt(2**r-1),h=2**r,l=BigInt(r);for(let e=0;e<s;e++){const t=e*a;let r=Number(i&u);i>>=l,r>a&&(r-=h,i+=nl);const s=t,y=t+Math.abs(r)-1,f=e%2!=0,g=r<0;0===r?c=c.add(il(f,n[s])):o=o.add(il(g,n[y]))}return{p:o,f:c}},wNAFUnsafe(r,n,i,s=e.ZERO){const{windows:a,windowSize:o}=al(r,t),c=BigInt(2**r-1),u=2**r,h=BigInt(r);for(let e=0;e<a;e++){const t=e*o;if(i===rl)break;let r=Number(i&c);if(i>>=h,r>o&&(r-=u,i+=nl),0===r)continue;let a=n[t+Math.abs(r)-1];r<0&&(a=a.negate()),s=s.add(a)}return s},getPrecomputes(e,t,r){let n=ol.get(t);return n||(n=this.precomputeWindow(t,e),1!==e&&ol.set(t,r(n))),n},wNAFCached(e,t,r){const n=ul(e);return this.wNAF(n,this.getPrecomputes(n,e,r),t)},wNAFCachedUnsafe(e,t,r,n){const i=ul(e);return 1===i?this.unsafeLadder(e,t,n):this.wNAFUnsafe(i,this.getPrecomputes(i,e,r),t,n)},setWindowSize(e,r){sl(r,t),cl.set(e,r),ol.delete(e)}}}function ll(e,t,r,n){if(function(e,t){if(!Array.isArray(e))throw Error("array expected");e.forEach(((e,r)=>{if(!(e instanceof t))throw Error("invalid point at index "+r)}))}(r,e),function(e,t){if(!Array.isArray(e))throw Error("array of scalars expected");e.forEach(((e,r)=>{if(!t.isValid(e))throw Error("invalid scalar at index "+r)}))}(n,t),r.length!==n.length)throw Error("arrays of points and scalars must have equal length");const i=e.ZERO,s=Ph(BigInt(r.length)),a=s>12?s-3:s>4?s-2:s?2:1,o=(1<<a)-1,c=Array(o+1).fill(i);let u=i;for(let e=Math.floor((t.BITS-1)/a)*a;e>=0;e-=a){c.fill(i);for(let t=0;t<n.length;t++){const i=n[t],s=Number(i>>BigInt(e)&BigInt(o));c[s]=c[s].add(r[t])}let t=i;for(let e=c.length-1,r=i;e>0;e--)r=r.add(c[e]),t=t.add(r);if(u=u.add(t),0!==e)for(let e=0;e<a;e++)u=u.double()}return u}function yl(e){return Mh(e.Fp,Jh.reduce(((e,t)=>(e[t]="function",e)),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"})),Mh(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Xh(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}
10
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function fl(e){void 0!==e.lowS&&fh("lowS",e.lowS),void 0!==e.prehash&&fh("prehash",e.prehash)}const{bytesToNumberBE:gl,hexToBytes:pl}=Fh,dl={Err:class extends Error{constructor(e=""){super(e)}},_tlv:{encode:(e,t)=>{const{Err:r}=dl;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(1&t.length)throw new r("tlv.encode: unpadded data");const n=t.length/2,i=dh(n);if(i.length/2&128)throw new r("tlv.encode: long form length too big");const s=n>127?dh(i.length/2|128):"";return dh(e)+s+i+t},decode(e,t){const{Err:r}=dl;let n=0;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(t.length<2||t[n++]!==e)throw new r("tlv.decode: wrong tlv");const i=t[n++];let s=0;if(!!(128&i)){const e=127&i;if(!e)throw new r("tlv.decode(long): indefinite length not supported");if(e>4)throw new r("tlv.decode(long): byte length is too big");const a=t.subarray(n,n+e);if(a.length!==e)throw new r("tlv.decode: length bytes not complete");if(0===a[0])throw new r("tlv.decode(long): zero leftmost byte");for(const e of a)s=s<<8|e;if(n+=e,s<128)throw new r("tlv.decode(long): not minimal encoding")}else s=i;const a=t.subarray(n,n+s);if(a.length!==s)throw new r("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+s)}}},_int:{encode(e){const{Err:t}=dl;if(e<Al)throw new t("integer: negative integers are not allowed");let r=dh(e);if(8&Number.parseInt(r[0],16)&&(r="00"+r),1&r.length)throw new t("unexpected DER parsing assertion: unpadded hex");return r},decode(e){const{Err:t}=dl;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return gl(e)}},toSig(e){const{Err:t,_int:r,_tlv:n}=dl,i="string"==typeof e?pl(e):e;yh(i);const{v:s,l:a}=n.decode(48,i);if(a.length)throw new t("invalid signature: left bytes after parsing");const{v:o,l:c}=n.decode(2,s),{v:u,l:h}=n.decode(2,c);if(h.length)throw new t("invalid signature: left bytes after parsing");return{r:r.decode(o),s:r.decode(u)}},hexFromSig(e){const{_tlv:t,_int:r}=dl,n=t.encode(2,r.encode(e.r))+t.encode(2,r.encode(e.s));return t.encode(48,n)}},Al=BigInt(0),wl=BigInt(1);BigInt(2);const ml=BigInt(3);function bl(e){const t=function(e){const t=yl(e);Mh(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:r,Fp:n,a:i}=t;if(r){if(!n.eql(i,n.ZERO))throw Error("invalid endomorphism, can only be defined for Koblitz curves that have a=0");if("object"!=typeof r||"bigint"!=typeof r.beta||"function"!=typeof r.splitScalar)throw Error("invalid endomorphism, expected beta: bigint and splitScalar: function")}return Object.freeze({...t})}(e),{Fp:r}=t,n=$h(t.n,t.nBitLength),i=t.toBytes||((e,t,n)=>{const i=t.toAffine();return Ih(Uint8Array.from([4]),r.toBytes(i.x),r.toBytes(i.y))}),s=t.fromBytes||(e=>{const t=e.subarray(1);return{x:r.fromBytes(t.subarray(0,r.BYTES)),y:r.fromBytes(t.subarray(r.BYTES,2*r.BYTES))}});function a(e){const{a:n,b:i}=t,s=r.sqr(e),a=r.mul(s,e);return r.add(r.add(a,r.mul(e,n)),i)}if(!r.eql(r.sqr(t.Gy),a(t.Gx)))throw Error("bad generator point: equation left != right");function o(e){const{allowedPrivateKeyLengths:r,nByteLength:n,wrapPrivateKey:i,n:s}=t;if(r&&"bigint"!=typeof e){if(lh(e)&&(e=ph(e)),"string"!=typeof e||!r.includes(e.length))throw Error("invalid private key");e=e.padStart(2*n,"0")}let a;try{a="bigint"==typeof e?e:kh(Sh("private key",e,n))}catch(t){throw Error("invalid private key, expected hex or "+n+" bytes, got "+typeof e)}return i&&(a=jh(a,s)),Uh("private key",a,wl,s),a}function c(e){if(!(e instanceof l))throw Error("ProjectivePoint expected")}const u=Lh(((e,t)=>{const{px:n,py:i,pz:s}=e;if(r.eql(s,r.ONE))return{x:n,y:i};const a=e.is0();null==t&&(t=a?r.ONE:r.inv(s));const o=r.mul(n,t),c=r.mul(i,t),u=r.mul(s,t);if(a)return{x:r.ZERO,y:r.ZERO};if(!r.eql(u,r.ONE))throw Error("invZ was invalid");return{x:o,y:c}})),h=Lh((e=>{if(e.is0()){if(t.allowInfinityPoint&&!r.is0(e.py))return;throw Error("bad point: ZERO")}const{x:n,y:i}=e.toAffine();if(!r.isValid(n)||!r.isValid(i))throw Error("bad point: x or y not FE");const s=r.sqr(i),o=a(n);if(!r.eql(s,o))throw Error("bad point: equation left != right");if(!e.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0}));class l{constructor(e,t,n){if(this.px=e,this.py=t,this.pz=n,null==e||!r.isValid(e))throw Error("x required");if(null==t||!r.isValid(t))throw Error("y required");if(null==n||!r.isValid(n))throw Error("z required");Object.freeze(this)}static fromAffine(e){const{x:t,y:n}=e||{};if(!e||!r.isValid(t)||!r.isValid(n))throw Error("invalid affine point");if(e instanceof l)throw Error("projective point not allowed");const i=e=>r.eql(e,r.ZERO);return i(t)&&i(n)?l.ZERO:new l(t,n,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=r.invertBatch(e.map((e=>e.pz)));return e.map(((e,r)=>e.toAffine(t[r]))).map(l.fromAffine)}static fromHex(e){const t=l.fromAffine(s(Sh("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return l.BASE.multiply(o(e))}static msm(e,t){return ll(l,n,e,t)}_setWindowSize(e){f.setWindowSize(this,e)}assertValidity(){h(this)}hasEvenY(){const{y:e}=this.toAffine();if(r.isOdd)return!r.isOdd(e);throw Error("Field doesn't support isOdd")}equals(e){c(e);const{px:t,py:n,pz:i}=this,{px:s,py:a,pz:o}=e,u=r.eql(r.mul(t,o),r.mul(s,i)),h=r.eql(r.mul(n,o),r.mul(a,i));return u&&h}negate(){return new l(this.px,r.neg(this.py),this.pz)}double(){const{a:e,b:n}=t,i=r.mul(n,ml),{px:s,py:a,pz:o}=this;let c=r.ZERO,u=r.ZERO,h=r.ZERO,y=r.mul(s,s),f=r.mul(a,a),g=r.mul(o,o),p=r.mul(s,a);return p=r.add(p,p),h=r.mul(s,o),h=r.add(h,h),c=r.mul(e,h),u=r.mul(i,g),u=r.add(c,u),c=r.sub(f,u),u=r.add(f,u),u=r.mul(c,u),c=r.mul(p,c),h=r.mul(i,h),g=r.mul(e,g),p=r.sub(y,g),p=r.mul(e,p),p=r.add(p,h),h=r.add(y,y),y=r.add(h,y),y=r.add(y,g),y=r.mul(y,p),u=r.add(u,y),g=r.mul(a,o),g=r.add(g,g),y=r.mul(g,p),c=r.sub(c,y),h=r.mul(g,f),h=r.add(h,h),h=r.add(h,h),new l(c,u,h)}add(e){c(e);const{px:n,py:i,pz:s}=this,{px:a,py:o,pz:u}=e;let h=r.ZERO,y=r.ZERO,f=r.ZERO;const g=t.a,p=r.mul(t.b,ml);let d=r.mul(n,a),A=r.mul(i,o),w=r.mul(s,u),m=r.add(n,i),b=r.add(a,o);m=r.mul(m,b),b=r.add(d,A),m=r.sub(m,b),b=r.add(n,s);let k=r.add(a,u);return b=r.mul(b,k),k=r.add(d,w),b=r.sub(b,k),k=r.add(i,s),h=r.add(o,u),k=r.mul(k,h),h=r.add(A,w),k=r.sub(k,h),f=r.mul(g,b),h=r.mul(p,w),f=r.add(h,f),h=r.sub(A,f),f=r.add(A,f),y=r.mul(h,f),A=r.add(d,d),A=r.add(A,d),w=r.mul(g,w),b=r.mul(p,b),A=r.add(A,w),w=r.sub(d,w),w=r.mul(g,w),b=r.add(b,w),d=r.mul(A,b),y=r.add(y,d),d=r.mul(k,b),h=r.mul(m,h),h=r.sub(h,d),d=r.mul(m,A),f=r.mul(k,f),f=r.add(f,d),new l(h,y,f)}subtract(e){return this.add(e.negate())}is0(){return this.equals(l.ZERO)}wNAF(e){return f.wNAFCached(this,e,l.normalizeZ)}multiplyUnsafe(e){const{endo:n,n:i}=t;Uh("scalar",e,Al,i);const s=l.ZERO;if(e===Al)return s;if(this.is0()||e===wl)return this;if(!n||f.hasPrecomputes(this))return f.wNAFCachedUnsafe(this,e,l.normalizeZ);let{k1neg:a,k1:o,k2neg:c,k2:u}=n.splitScalar(e),h=s,y=s,g=this;for(;o>Al||u>Al;)o&wl&&(h=h.add(g)),u&wl&&(y=y.add(g)),g=g.double(),o>>=wl,u>>=wl;return a&&(h=h.negate()),c&&(y=y.negate()),y=new l(r.mul(y.px,n.beta),y.py,y.pz),h.add(y)}multiply(e){const{endo:n,n:i}=t;let s,a;if(Uh("scalar",e,wl,i),n){const{k1neg:t,k1:i,k2neg:o,k2:c}=n.splitScalar(e);let{p:u,f:h}=this.wNAF(i),{p:y,f:g}=this.wNAF(c);u=f.constTimeNegate(t,u),y=f.constTimeNegate(o,y),y=new l(r.mul(y.px,n.beta),y.py,y.pz),s=u.add(y),a=h.add(g)}else{const{p:t,f:r}=this.wNAF(e);s=t,a=r}return l.normalizeZ([s,a])[0]}multiplyAndAddUnsafe(e,t,r){const n=l.BASE,i=(e,t)=>t!==Al&&t!==wl&&e.equals(n)?e.multiply(t):e.multiplyUnsafe(t),s=i(this,t).add(i(e,r));return s.is0()?void 0:s}toAffine(e){return u(this,e)}isTorsionFree(){const{h:e,isTorsionFree:r}=t;if(e===wl)return!0;if(r)return r(l,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:r}=t;return e===wl?this:r?r(l,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return fh("isCompressed",e),this.assertValidity(),i(l,this,e)}toHex(e=!0){return fh("isCompressed",e),ph(this.toRawBytes(e))}}l.BASE=new l(t.Gx,t.Gy,r.ONE),l.ZERO=new l(r.ZERO,r.ONE,r.ZERO);const y=t.nBitLength,f=hl(l,t.endo?Math.ceil(y/2):y);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:o,weierstrassEquation:a,isWithinCurveOrder:function(e){return Ch(e,wl,t.n)}}}function kl(e){const t=function(e){const t=yl(e);return Mh(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}(e),{Fp:r,n}=t,i=r.BYTES+1,s=2*r.BYTES+1;function a(e){return jh(e,n)}function o(e){return Zh(e,n)}const{ProjectivePoint:c,normPrivateKeyToScalar:u,weierstrassEquation:h,isWithinCurveOrder:l}=bl({...t,toBytes(e,t,n){const i=t.toAffine(),s=r.toBytes(i.x),a=Ih;return fh("isCompressed",n),n?a(Uint8Array.from([t.hasEvenY()?2:3]),s):a(Uint8Array.from([4]),s,r.toBytes(i.y))},fromBytes(e){const t=e.length,n=e[0],a=e.subarray(1);if(t!==i||2!==n&&3!==n){if(t===s&&4===n){return{x:r.fromBytes(a.subarray(0,r.BYTES)),y:r.fromBytes(a.subarray(r.BYTES,2*r.BYTES))}}throw Error("invalid Point, expected length of "+i+", or uncompressed "+s+", got "+t)}{const e=kh(a);if(!Ch(e,wl,r.ORDER))throw Error("Point is not on curve");const t=h(e);let i;try{i=r.sqrt(t)}catch(e){const t=e instanceof Error?": "+e.message:"";throw Error("Point is not on curve"+t)}return!(1&~n)!==((i&wl)===wl)&&(i=r.neg(i)),{x:e,y:i}}}}),y=e=>ph(vh(e,t.nByteLength));function f(e){return e>n>>wl}const g=(e,t,r)=>kh(e.slice(t,r));class p{constructor(e,t,r){this.r=e,this.s=t,this.recovery=r,this.assertValidity()}static fromCompact(e){const r=t.nByteLength;return e=Sh("compactSignature",e,2*r),new p(g(e,0,r),g(e,r,2*r))}static fromDER(e){const{r:t,s:r}=dl.toSig(Sh("DER",e));return new p(t,r)}assertValidity(){Uh("r",this.r,wl,n),Uh("s",this.s,wl,n)}addRecoveryBit(e){return new p(this.r,this.s,e)}recoverPublicKey(e){const{r:n,s:i,recovery:s}=this,u=m(Sh("msgHash",e));if(null==s||![0,1,2,3].includes(s))throw Error("recovery id invalid");const h=2===s||3===s?n+t.n:n;if(h>=r.ORDER)throw Error("recovery id 2 or 3 invalid");const l=1&s?"03":"02",f=c.fromHex(l+y(h)),g=o(h),p=a(-u*g),d=a(i*g),A=c.BASE.multiplyAndAddUnsafe(f,p,d);if(!A)throw Error("point at infinify");return A.assertValidity(),A}hasHighS(){return f(this.s)}normalizeS(){return this.hasHighS()?new p(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return bh(this.toDERHex())}toDERHex(){return dl.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return bh(this.toCompactHex())}toCompactHex(){return y(this.r)+y(this.s)}}const d={isValidPrivateKey(e){try{return u(e),!0}catch(e){return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{const e=tl(t.n);return function(e,t,r=!1){const n=e.length,i=el(t),s=tl(t);if(n<16||n<s||n>1024)throw Error("expected "+s+"-1024 bytes of input, got "+n);const a=jh(r?kh(e):Eh(e),t-Oh)+Oh;return r?Bh(a,i):vh(a,i)}(t.randomBytes(e),t.n)},precompute:(e=8,t=c.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function A(e){const t=lh(e),r="string"==typeof e,n=(t||r)&&e.length;return t?n===i||n===s:r?n===2*i||n===2*s:e instanceof c}const w=t.bits2int||function(e){if(e.length>8192)throw Error("input is too large");const r=kh(e),n=8*e.length-t.nBitLength;return n>0?r>>BigInt(n):r},m=t.bits2int_modN||function(e){return a(w(e))},b=Dh(t.nBitLength);function k(e){return Uh("num < 2^"+t.nBitLength,e,Al,b),vh(e,t.nByteLength)}function E(e,n,i=v){if(["recovered","canonical"].some((e=>e in i)))throw Error("sign() legacy options not supported");const{hash:s,randomBytes:h}=t;let{lowS:y,prehash:g,extraEntropy:d}=i;null==y&&(y=!0),e=Sh("msgHash",e),fl(i),g&&(e=Sh("prehashed msgHash",s(e)));const A=m(e),b=u(n),E=[k(b),k(A)];if(null!=d&&!1!==d){const e=!0===d?h(r.BYTES):d;E.push(Sh("extraEntropy",e))}const B=Ih(...E),S=A;return{seed:B,k2sig:function(e){const t=w(e);if(!l(t))return;const r=o(t),n=c.BASE.multiply(t).toAffine(),i=a(n.x);if(i===Al)return;const s=a(r*a(S+i*b));if(s===Al)return;let u=(n.x===i?0:2)|Number(n.y&wl),h=s;return y&&f(s)&&(h=function(e){return f(e)?a(-e):e}(s),u^=1),new p(i,h,u)}}}const v={lowS:t.lowS,prehash:!1},B={lowS:t.lowS,prehash:!1};return c.BASE._setWindowSize(8),{CURVE:t,getPublicKey:function(e,t=!0){return c.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,r=!0){if(A(e))throw Error("first arg must be private key");if(!A(t))throw Error("second arg must be public key");return c.fromHex(t).multiply(u(e)).toRawBytes(r)},sign:function(e,r,n=v){const{seed:i,k2sig:s}=E(e,r,n),a=t;return Rh(a.hash.outputLen,a.nByteLength,a.hmac)(i,s)},verify:function(e,r,n,i=B){const s=e;r=Sh("msgHash",r),n=Sh("publicKey",n);const{lowS:u,prehash:h,format:l}=i;if(fl(i),"strict"in i)throw Error("options.strict was renamed to lowS");if(void 0!==l&&"compact"!==l&&"der"!==l)throw Error("format must be compact or der");const y="string"==typeof s||lh(s),f=!y&&!l&&"object"==typeof s&&null!==s&&"bigint"==typeof s.r&&"bigint"==typeof s.s;if(!y&&!f)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");let g,d;try{if(f&&(g=new p(s.r,s.s)),y){try{"compact"!==l&&(g=p.fromDER(s))}catch(e){if(!(e instanceof dl.Err))throw e}g||"der"===l||(g=p.fromCompact(s))}d=c.fromHex(n)}catch(e){return!1}if(!g)return!1;if(u&&g.hasHighS())return!1;h&&(r=t.hash(r));const{r:A,s:w}=g,b=m(r),k=o(w),E=a(b*k),v=a(A*k),S=c.BASE.multiplyAndAddUnsafe(d,E,v)?.toAffine();return!!S&&a(S.x)===A},ProjectivePoint:c,Signature:p,utils:d}}
11
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function El(e){return{hash:e,hmac:(t,...r)=>oh(e,t,ju(...r)),randomBytes:Zu}}function vl(e,t){const r=t=>kl({...e,...El(t)});return Object.freeze({...r(t),create:r})}
12
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */BigInt(4);const Bl=$h(BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff")),Sl=vl({a:Bl.create(BigInt("-3")),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Fp:Bl,n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"),h:BigInt(1),lowS:!1},ih),Il=/* @__PURE__ */BigInt(2**32-1),Kl=/* @__PURE__ */BigInt(32);function Cl(e,t=!1){return t?{h:Number(e&Il),l:Number(e>>Kl&Il)}:{h:0|Number(e>>Kl&Il),l:0|Number(e&Il)}}function Ul(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:s,l:a}=Cl(e[i],t);[r[i],n[i]]=[s,a]}return[r,n]}const Pl=(e,t,r)=>e<<r|t>>>32-r,Dl=(e,t,r)=>t<<r|e>>>32-r,xl=(e,t,r)=>t<<r-32|e>>>64-r,Ql=(e,t,r)=>e<<r-32|t>>>64-r;const Rl={fromBig:Cl,split:Ul,toBig:(e,t)=>BigInt(e>>>0)<<Kl|BigInt(t>>>0),shrSH:(e,t,r)=>e>>>r,shrSL:(e,t,r)=>e<<32-r|t>>>r,rotrSH:(e,t,r)=>e>>>r|t<<32-r,rotrSL:(e,t,r)=>e<<32-r|t>>>r,rotrBH:(e,t,r)=>e<<64-r|t>>>r-32,rotrBL:(e,t,r)=>e>>>r-32|t<<64-r,rotr32H:(e,t)=>t,rotr32L:(e,t)=>e,rotlSH:Pl,rotlSL:Dl,rotlBH:xl,rotlBL:Ql,add:function(e,t,r,n){const i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:0|i}},add3L:(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),add3H:(e,t,r,n)=>t+r+n+(e/2**32|0)|0,add4L:(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),add4H:(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,add5H:(e,t,r,n,i,s)=>t+r+n+i+s+(e/2**32|0)|0,add5L:(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0)},[Tl,Ml]=/* @__PURE__ */(()=>Rl.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((e=>BigInt(e)))))(),Ll=/* @__PURE__ */new Uint32Array(80),Fl=/* @__PURE__ */new Uint32Array(80);class Nl extends Xu{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:s,Dh:a,Dl:o,Eh:c,El:u,Fh:h,Fl:l,Gh:y,Gl:f,Hh:g,Hl:p}=this;return[e,t,r,n,i,s,a,o,c,u,h,l,y,f,g,p]}set(e,t,r,n,i,s,a,o,c,u,h,l,y,f,g,p){this.Ah=0|e,this.Al=0|t,this.Bh=0|r,this.Bl=0|n,this.Ch=0|i,this.Cl=0|s,this.Dh=0|a,this.Dl=0|o,this.Eh=0|c,this.El=0|u,this.Fh=0|h,this.Fl=0|l,this.Gh=0|y,this.Gl=0|f,this.Hh=0|g,this.Hl=0|p}process(e,t){for(let r=0;r<16;r++,t+=4)Ll[r]=e.getUint32(t),Fl[r]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|Ll[e-15],r=0|Fl[e-15],n=Rl.rotrSH(t,r,1)^Rl.rotrSH(t,r,8)^Rl.shrSH(t,r,7),i=Rl.rotrSL(t,r,1)^Rl.rotrSL(t,r,8)^Rl.shrSL(t,r,7),s=0|Ll[e-2],a=0|Fl[e-2],o=Rl.rotrSH(s,a,19)^Rl.rotrBH(s,a,61)^Rl.shrSH(s,a,6),c=Rl.rotrSL(s,a,19)^Rl.rotrBL(s,a,61)^Rl.shrSL(s,a,6),u=Rl.add4L(i,c,Fl[e-7],Fl[e-16]),h=Rl.add4H(u,n,o,Ll[e-7],Ll[e-16]);Ll[e]=0|h,Fl[e]=0|u}let{Ah:r,Al:n,Bh:i,Bl:s,Ch:a,Cl:o,Dh:c,Dl:u,Eh:h,El:l,Fh:y,Fl:f,Gh:g,Gl:p,Hh:d,Hl:A}=this;for(let e=0;e<80;e++){const t=Rl.rotrSH(h,l,14)^Rl.rotrSH(h,l,18)^Rl.rotrBH(h,l,41),w=Rl.rotrSL(h,l,14)^Rl.rotrSL(h,l,18)^Rl.rotrBL(h,l,41),m=h&y^~h&g,b=l&f^~l&p,k=Rl.add5L(A,w,b,Ml[e],Fl[e]),E=Rl.add5H(k,d,t,m,Tl[e],Ll[e]),v=0|k,B=Rl.rotrSH(r,n,28)^Rl.rotrBH(r,n,34)^Rl.rotrBH(r,n,39),S=Rl.rotrSL(r,n,28)^Rl.rotrBL(r,n,34)^Rl.rotrBL(r,n,39),I=r&i^r&a^i&a,K=n&s^n&o^s&o;d=0|g,A=0|p,g=0|y,p=0|f,y=0|h,f=0|l,({h,l}=Rl.add(0|c,0|u,0|E,0|v)),c=0|a,u=0|o,a=0|i,o=0|s,i=0|r,s=0|n;const C=Rl.add3L(v,S,K);r=Rl.add3H(C,E,B,I),n=0|C}({h:r,l:n}=Rl.add(0|this.Ah,0|this.Al,0|r,0|n)),({h:i,l:s}=Rl.add(0|this.Bh,0|this.Bl,0|i,0|s)),({h:a,l:o}=Rl.add(0|this.Ch,0|this.Cl,0|a,0|o)),({h:c,l:u}=Rl.add(0|this.Dh,0|this.Dl,0|c,0|u)),({h,l}=Rl.add(0|this.Eh,0|this.El,0|h,0|l)),({h:y,l:f}=Rl.add(0|this.Fh,0|this.Fl,0|y,0|f)),({h:g,l:p}=Rl.add(0|this.Gh,0|this.Gl,0|g,0|p)),({h:d,l:A}=Rl.add(0|this.Hh,0|this.Hl,0|d,0|A)),this.set(r,n,i,s,a,o,c,u,h,l,y,f,g,p,d,A)}roundClean(){Ll.fill(0),Fl.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class Ol extends Nl{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}}const _l=/* @__PURE__ */Yu((()=>new Nl)),Hl=/* @__PURE__ */Yu((()=>new Ol)),zl=$h(BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff")),Gl=vl({a:zl.create(BigInt("-3")),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Fp:zl,n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f"),h:BigInt(1),lowS:!1},Hl),ql=$h(BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")),jl={a:ql.create(BigInt("-3")),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Fp:ql,n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650"),h:BigInt(1)},Vl=vl({a:jl.a,b:jl.b,Fp:ql,n:jl.n,Gx:jl.Gx,Gy:jl.Gy,h:jl.h,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},_l),Yl=[],Zl=[],Wl=[],Jl=/* @__PURE__ */BigInt(0),Xl=/* @__PURE__ */BigInt(1),$l=/* @__PURE__ */BigInt(2),ey=/* @__PURE__ */BigInt(7),ty=/* @__PURE__ */BigInt(256),ry=/* @__PURE__ */BigInt(113);for(let e=0,t=Xl,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],Yl.push(2*(5*n+r)),Zl.push((e+1)*(e+2)/2%64);let i=Jl;for(let e=0;e<7;e++)t=(t<<Xl^(t>>ey)*ry)%ty,t&$l&&(i^=Xl<<(Xl<</* @__PURE__ */BigInt(e))-Xl);Wl.push(i)}const[ny,iy]=/* @__PURE__ */Ul(Wl,!0),sy=(e,t,r)=>r>32?xl(e,t,r):Pl(e,t,r),ay=(e,t,r)=>r>32?Ql(e,t,r):Dl(e,t,r);class oy extends Vu{constructor(e,t,r,n=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Qu(r),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=Fu(this.state)}keccak(){Hu||zu(this.state32),function(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const n=(t+8)%10,i=(t+2)%10,s=r[i],a=r[i+1],o=sy(s,a,1)^r[n],c=ay(s,a,1)^r[n+1];for(let r=0;r<50;r+=10)e[t+r]^=o,e[t+r+1]^=c}let t=e[2],i=e[3];for(let r=0;r<24;r++){const n=Zl[r],s=sy(t,i,n),a=ay(t,i,n),o=Yl[r];t=e[o],i=e[o+1],e[o]=s,e[o+1]=a}for(let t=0;t<50;t+=10){for(let n=0;n<10;n++)r[n]=e[t+n];for(let n=0;n<10;n++)e[t+n]^=~r[(n+2)%10]&r[(n+4)%10]}e[0]^=ny[n],e[1]^=iy[n]}r.fill(0)}(this.state32,this.rounds),Hu||zu(this.state32),this.posOut=0,this.pos=0}update(e){Tu(this);const{blockLen:t,state:r}=this,n=(e=qu(e)).length;for(let i=0;i<n;){const s=Math.min(t-this.pos,n-i);for(let t=0;t<s;t++)r[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:r,blockLen:n}=this;e[r]^=t,128&t&&r===n-1&&this.keccak(),e[n-1]^=128,this.keccak()}writeInto(e){Tu(this,!1),Ru(e),this.finish();const t=this.state,{blockLen:r}=this;for(let n=0,i=e.length;n<i;){this.posOut>=r&&this.keccak();const s=Math.min(r-this.posOut,i-n);e.set(t.subarray(this.posOut,this.posOut+s),n),this.posOut+=s,n+=s}return e}xofInto(e){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return Qu(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Mu(e,this),this.finished)throw Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:n,rounds:i,enableXOF:s}=this;return e||(e=new oy(t,r,n,s,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=n,e.enableXOF=s,e.destroyed=this.destroyed,e}}const cy=(e,t,r)=>Yu((()=>new oy(t,e,r))),uy=/* @__PURE__ */cy(6,136,32),hy=/* @__PURE__ */cy(6,72,64),ly=(e,t,r)=>function(e){const t=(t,r)=>e(r).update(qu(t)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=t=>e(t),t}(((n={})=>new oy(t,e,void 0===n.dkLen?r:n.dkLen,!0))),yy=/* @__PURE__ */ly(31,168,16),fy=/* @__PURE__ */ly(31,136,32),gy=BigInt(0),py=BigInt(1),dy=BigInt(2),Ay=BigInt(8),wy={zip215:!0};function my(e){const t=function(e){const t=yl(e);return Mh(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}(e),{Fp:r,n,prehash:i,hash:s,randomBytes:a,nByteLength:o,h:c}=t,u=dy<<BigInt(8*o)-py,h=r.create,l=$h(t.n,t.nBitLength),y=t.uvRatio||((e,t)=>{try{return{isValid:!0,value:r.sqrt(e*r.inv(t))}}catch(e){return{isValid:!1,value:gy}}}),f=t.adjustScalarBytes||(e=>e),g=t.domain||((e,t,r)=>{if(fh("phflag",r),t.length||r)throw Error("Contexts/pre-hash are not supported");return e});function p(e,t){Uh("coordinate "+e,t,gy,u)}function d(e){if(!(e instanceof m))throw Error("ExtendedPoint expected")}const A=Lh(((e,t)=>{const{ex:n,ey:i,ez:s}=e,a=e.is0();null==t&&(t=a?Ay:r.inv(s));const o=h(n*t),c=h(i*t),u=h(s*t);if(a)return{x:gy,y:py};if(u!==py)throw Error("invZ was invalid");return{x:o,y:c}})),w=Lh((e=>{const{a:r,d:n}=t;if(e.is0())throw Error("bad point: ZERO");const{ex:i,ey:s,ez:a,et:o}=e,c=h(i*i),u=h(s*s),l=h(a*a),y=h(l*l),f=h(c*r);if(h(l*h(f+u))!==h(y+h(n*h(c*u))))throw Error("bad point: equation left != right (1)");if(h(i*s)!==h(a*o))throw Error("bad point: equation left != right (2)");return!0}));class m{constructor(e,t,r,n){this.ex=e,this.ey=t,this.ez=r,this.et=n,p("x",e),p("y",t),p("z",r),p("t",n),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(e){if(e instanceof m)throw Error("extended point not allowed");const{x:t,y:r}=e||{};return p("x",t),p("y",r),new m(t,r,py,h(t*r))}static normalizeZ(e){const t=r.invertBatch(e.map((e=>e.ez)));return e.map(((e,r)=>e.toAffine(t[r]))).map(m.fromAffine)}static msm(e,t){return ll(m,l,e,t)}_setWindowSize(e){E.setWindowSize(this,e)}assertValidity(){w(this)}equals(e){d(e);const{ex:t,ey:r,ez:n}=this,{ex:i,ey:s,ez:a}=e,o=h(t*a),c=h(i*n),u=h(r*a),l=h(s*n);return o===c&&u===l}is0(){return this.equals(m.ZERO)}negate(){return new m(h(-this.ex),this.ey,this.ez,h(-this.et))}double(){const{a:e}=t,{ex:r,ey:n,ez:i}=this,s=h(r*r),a=h(n*n),o=h(dy*h(i*i)),c=h(e*s),u=r+n,l=h(h(u*u)-s-a),y=c+a,f=y-o,g=c-a,p=h(l*f),d=h(y*g),A=h(l*g),w=h(f*y);return new m(p,d,w,A)}add(e){d(e);const{a:r,d:n}=t,{ex:i,ey:s,ez:a,et:o}=this,{ex:c,ey:u,ez:l,et:y}=e;if(r===BigInt(-1)){const e=h((s-i)*(u+c)),t=h((s+i)*(u-c)),r=h(t-e);if(r===gy)return this.double();const n=h(a*dy*y),f=h(o*dy*l),g=f+n,p=t+e,d=f-n,A=h(g*r),w=h(p*d),b=h(g*d),k=h(r*p);return new m(A,w,k,b)}const f=h(i*c),g=h(s*u),p=h(o*n*y),A=h(a*l),w=h((i+s)*(c+u)-f-g),b=A-p,k=A+p,E=h(g-r*f),v=h(w*b),B=h(k*E),S=h(w*E),I=h(b*k);return new m(v,B,I,S)}subtract(e){return this.add(e.negate())}wNAF(e){return E.wNAFCached(this,e,m.normalizeZ)}multiply(e){const t=e;Uh("scalar",t,py,n);const{p:r,f:i}=this.wNAF(t);return m.normalizeZ([r,i])[0]}multiplyUnsafe(e,t=m.ZERO){const r=e;return Uh("scalar",r,gy,n),r===gy?k:this.is0()||r===py?this:E.wNAFCachedUnsafe(this,r,m.normalizeZ,t)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return E.unsafeLadder(this,n).is0()}toAffine(e){return A(this,e)}clearCofactor(){const{h:e}=t;return e===py?this:this.multiplyUnsafe(e)}static fromHex(e,n=!1){const{d:i,a:s}=t,a=r.BYTES;e=Sh("pointHex",e,a),fh("zip215",n);const o=e.slice(),c=e[a-1];o[a-1]=-129&c;const l=Eh(o),f=n?u:r.ORDER;Uh("pointHex.y",l,gy,f);const g=h(l*l),p=h(g-py),d=h(i*g-s);let{isValid:A,value:w}=y(p,d);if(!A)throw Error("Point.fromHex: invalid y coordinate");const b=(w&py)===py,k=!!(128&c);if(!n&&w===gy&&k)throw Error("Point.fromHex: x=0 and x_0=1");return k!==b&&(w=h(-w)),m.fromAffine({x:w,y:l})}static fromPrivateKey(e){return S(e).point}toRawBytes(){const{x:e,y:t}=this.toAffine(),n=Bh(t,r.BYTES);return n[n.length-1]|=e&py?128:0,n}toHex(){return ph(this.toRawBytes())}}m.BASE=new m(t.Gx,t.Gy,py,h(t.Gx*t.Gy)),m.ZERO=new m(gy,py,py,gy);const{BASE:b,ZERO:k}=m,E=hl(m,8*o);function v(e){return jh(e,n)}function B(e){return v(Eh(e))}function S(e){const t=r.BYTES;e=Sh("private key",e,t);const n=Sh("hashed private key",s(e),2*t),i=f(n.slice(0,t)),a=n.slice(t,2*t),o=B(i),c=b.multiply(o),u=c.toRawBytes();return{head:i,prefix:a,scalar:o,point:c,pointBytes:u}}function I(e=new Uint8Array,...t){const r=Ih(...t);return B(s(g(r,Sh("context",e),!!i)))}const K=wy;b._setWindowSize(8);return{CURVE:t,getPublicKey:function(e){return S(e).pointBytes},sign:function(e,t,s={}){e=Sh("message",e),i&&(e=i(e));const{prefix:a,scalar:o,pointBytes:c}=S(t),u=I(s.context,a,e),h=b.multiply(u).toRawBytes(),l=v(u+I(s.context,h,c,e)*o);return Uh("signature.s",l,gy,n),Sh("result",Ih(h,Bh(l,r.BYTES)),2*r.BYTES)},verify:function(e,t,n,s=K){const{context:a,zip215:o}=s,c=r.BYTES;e=Sh("signature",e,2*c),t=Sh("message",t),n=Sh("publicKey",n,c),void 0!==o&&fh("zip215",o),i&&(t=i(t));const u=Eh(e.slice(c,2*c));let h,l,y;try{h=m.fromHex(n,o),l=m.fromHex(e.slice(0,c),o),y=b.multiplyUnsafe(u)}catch(e){return!1}if(!o&&h.isSmallOrder())return!1;const f=I(a,l.toRawBytes(),h.toRawBytes(),t);return l.add(h.multiplyUnsafe(f)).subtract(y).clearCofactor().equals(m.ZERO)},ExtendedPoint:m,utils:{getExtendedPublicKey:S,randomPrivateKey:()=>a(r.BYTES),precompute:(e=8,t=m.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)}}}
13
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const by=BigInt(0),ky=BigInt(1);function Ey(e){const t=(Mh(r=e,{a:"bigint"},{montgomeryBits:"isSafeInteger",nByteLength:"isSafeInteger",adjustScalarBytes:"function",domain:"function",powPminus2:"function",Gu:"bigint"}),Object.freeze({...r}));var r;const{P:n}=t,i=e=>jh(e,n),s=t.montgomeryBits,a=Math.ceil(s/8),o=t.nByteLength,c=t.adjustScalarBytes||(e=>e),u=t.powPminus2||(e=>Vh(e,n-BigInt(2),n));function h(e,t,r){const n=i(e*(t-r));return[t=i(t-n),r=i(r+n)]}const l=(t.a-BigInt(2))/BigInt(4);function y(e){return Bh(i(e),a)}function f(e,t){const r=function(e){const t=Sh("u coordinate",e,a);return 32===o&&(t[31]&=127),Eh(t)}(t),f=function(e){const t=Sh("scalar",e),r=t.length;if(r!==a&&r!==o)throw Error("invalid scalar, expected "+a+" or "+o+" bytes, got "+r);return Eh(c(t))}(e),g=function(e,t){Uh("u",e,by,n),Uh("scalar",t,by,n);const r=t,a=e;let o,c=ky,y=by,f=e,g=ky,p=by;for(let e=BigInt(s-1);e>=by;e--){const t=r>>e&ky;p^=t,o=h(p,c,f),c=o[0],f=o[1],o=h(p,y,g),y=o[0],g=o[1],p=t;const n=c+y,s=i(n*n),u=c-y,d=i(u*u),A=s-d,w=f+g,m=i((f-g)*n),b=i(w*u),k=m+b,E=m-b;f=i(k*k),g=i(a*i(E*E)),c=i(s*d),y=i(A*(s+i(l*A)))}o=h(p,c,f),c=o[0],f=o[1],o=h(p,y,g),y=o[0],g=o[1];const d=u(y);return i(c*d)}(r,f);if(g===by)throw Error("invalid private or public key received");return y(g)}const g=y(t.Gu);function p(e){return f(e,g)}return{scalarMult:f,scalarMultBase:p,getSharedSecret:(e,t)=>f(e,t),getPublicKey:e=>p(e),utils:{randomPrivateKey:()=>t.randomBytes(t.nByteLength)},GuBytes:g}}
14
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const vy=Yu((()=>fy.create({dkLen:114}))),By=(Yu((()=>fy.create({dkLen:64}))),BigInt("726838724295606890549323807888004534353641360687318060281490199180612328166730772686396383698676545930088884461843637361053498018365439")),Sy=BigInt(1),Iy=BigInt(2),Ky=BigInt(3);BigInt(4);const Cy=BigInt(11),Uy=BigInt(22),Py=BigInt(44),Dy=BigInt(88),xy=BigInt(223);function Qy(e){const t=By,r=e*e*e%t,n=r*r*e%t,i=Yh(n,Ky,t)*n%t,s=Yh(i,Ky,t)*n%t,a=Yh(s,Iy,t)*r%t,o=Yh(a,Cy,t)*a%t,c=Yh(o,Uy,t)*o%t,u=Yh(c,Py,t)*c%t,h=Yh(u,Dy,t)*u%t,l=Yh(h,Py,t)*c%t,y=Yh(l,Iy,t)*r%t,f=Yh(y,Sy,t)*e%t;return Yh(f,xy,t)*y%t}function Ry(e){return e[0]&=252,e[55]|=128,e[56]=0,e}const Ty=$h(By,456,!0),My={a:BigInt(1),d:BigInt("726838724295606890549323807888004534353641360687318060281490199180612328166730772686396383698676545930088884461843637361053498018326358"),Fp:Ty,n:BigInt("181709681073901722637330951972001133588410340171829515070372549795146003961539585716195755291692375963310293709091662304773755859649779"),nBitLength:456,h:BigInt(4),Gx:BigInt("224580040295924300187604334099896036246789641632564134246125461686950415467406032909029192869357953282578032075146446173674602635247710"),Gy:BigInt("298819210078481492676017930443930673437544040154080242095928241372331506189835876003536878655418784733982303233503462500531545062832660"),hash:vy,randomBytes:Zu,adjustScalarBytes:Ry,domain:(e,t,r)=>{if(t.length>255)throw Error("context must be smaller than 255, got: "+t.length);return ju(Gu("SigEd448"),new Uint8Array([r?1:0,t.length]),t,e)},uvRatio:function(e,t){const r=By,n=jh(e*e*t,r),i=jh(n*e,r),s=jh(i*n*t,r),a=jh(i*Qy(s),r),o=jh(a*a,r);return{isValid:jh(o*t,r)===e,value:a}}},Ly=/* @__PURE__ */my(My),Fy=/* @__PURE__ */(()=>Ey({a:BigInt(156326),montgomeryBits:448,nByteLength:56,P:By,Gu:BigInt(5),powPminus2:e=>{const t=By;return jh(Yh(Qy(e),BigInt(2),t)*e,t)},adjustScalarBytes:Ry,randomBytes:Zu}))();Ty.ORDER,BigInt(3),BigInt(4),BigInt(156326),BigInt("39082"),BigInt("78163"),BigInt("98944233647732219769177004876929019128417576295529901074099889598043702116001257856802131563896515373927712232092845883226922417596214"),BigInt("315019913931389607337177038330951043522456072897266928557328499619017160722351061360252776265186336876723201881398623946864393857820716"),BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
9
+ const nl=BigInt(0),il=BigInt(1);function sl(e,t){const r=t.negate();return e?r:t}function al(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw Error("invalid window size, expected [1.."+t+"], got W="+e)}function ol(e,t){al(e,t);return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1)}}const cl=new WeakMap,ul=new WeakMap;function hl(e){return ul.get(e)||1}function ll(e,t){return{constTimeNegate:sl,hasPrecomputes:e=>1!==hl(e),unsafeLadder(t,r,n=e.ZERO){let i=t;for(;r>nl;)r&il&&(n=n.add(i)),i=i.double(),r>>=il;return n},precomputeWindow(e,r){const{windows:n,windowSize:i}=ol(r,t),s=[];let a=e,o=a;for(let e=0;e<n;e++){o=a,s.push(o);for(let e=1;e<i;e++)o=o.add(a),s.push(o);a=o.double()}return s},wNAF(r,n,i){const{windows:s,windowSize:a}=ol(r,t);let o=e.ZERO,c=e.BASE;const u=BigInt(2**r-1),h=2**r,l=BigInt(r);for(let e=0;e<s;e++){const t=e*a;let r=Number(i&u);i>>=l,r>a&&(r-=h,i+=il);const s=t,y=t+Math.abs(r)-1,f=e%2!=0,p=r<0;0===r?c=c.add(sl(f,n[s])):o=o.add(sl(p,n[y]))}return{p:o,f:c}},wNAFUnsafe(r,n,i,s=e.ZERO){const{windows:a,windowSize:o}=ol(r,t),c=BigInt(2**r-1),u=2**r,h=BigInt(r);for(let e=0;e<a;e++){const t=e*o;if(i===nl)break;let r=Number(i&c);if(i>>=h,r>o&&(r-=u,i+=il),0===r)continue;let a=n[t+Math.abs(r)-1];r<0&&(a=a.negate()),s=s.add(a)}return s},getPrecomputes(e,t,r){let n=cl.get(t);return n||(n=this.precomputeWindow(t,e),1!==e&&cl.set(t,r(n))),n},wNAFCached(e,t,r){const n=hl(e);return this.wNAF(n,this.getPrecomputes(n,e,r),t)},wNAFCachedUnsafe(e,t,r,n){const i=hl(e);return 1===i?this.unsafeLadder(e,t,n):this.wNAFUnsafe(i,this.getPrecomputes(i,e,r),t,n)},setWindowSize(e,r){al(r,t),ul.set(e,r),cl.delete(e)}}}function yl(e,t,r,n){if(function(e,t){if(!Array.isArray(e))throw Error("array expected");e.forEach(((e,r)=>{if(!(e instanceof t))throw Error("invalid point at index "+r)}))}(r,e),function(e,t){if(!Array.isArray(e))throw Error("array of scalars expected");e.forEach(((e,r)=>{if(!t.isValid(e))throw Error("invalid scalar at index "+r)}))}(n,t),r.length!==n.length)throw Error("arrays of points and scalars must have equal length");const i=e.ZERO,s=Dh(BigInt(r.length)),a=s>12?s-3:s>4?s-2:s?2:1,o=(1<<a)-1,c=Array(o+1).fill(i);let u=i;for(let e=Math.floor((t.BITS-1)/a)*a;e>=0;e-=a){c.fill(i);for(let t=0;t<n.length;t++){const i=n[t],s=Number(i>>BigInt(e)&BigInt(o));c[s]=c[s].add(r[t])}let t=i;for(let e=c.length-1,r=i;e>0;e--)r=r.add(c[e]),t=t.add(r);if(u=u.add(t),0!==e)for(let e=0;e<a;e++)u=u.double()}return u}function fl(e){return Lh(e.Fp,Xh.reduce(((e,t)=>(e[t]="function",e)),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"})),Lh(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...$h(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}
10
+ /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function pl(e){void 0!==e.lowS&&ph("lowS",e.lowS),void 0!==e.prehash&&ph("prehash",e.prehash)}const{bytesToNumberBE:gl,hexToBytes:dl}=Fh,Al={Err:class extends Error{constructor(e=""){super(e)}},_tlv:{encode:(e,t)=>{const{Err:r}=Al;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(1&t.length)throw new r("tlv.encode: unpadded data");const n=t.length/2,i=Ah(n);if(i.length/2&128)throw new r("tlv.encode: long form length too big");const s=n>127?Ah(i.length/2|128):"";return Ah(e)+s+i+t},decode(e,t){const{Err:r}=Al;let n=0;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(t.length<2||t[n++]!==e)throw new r("tlv.decode: wrong tlv");const i=t[n++];let s=0;if(!!(128&i)){const e=127&i;if(!e)throw new r("tlv.decode(long): indefinite length not supported");if(e>4)throw new r("tlv.decode(long): byte length is too big");const a=t.subarray(n,n+e);if(a.length!==e)throw new r("tlv.decode: length bytes not complete");if(0===a[0])throw new r("tlv.decode(long): zero leftmost byte");for(const e of a)s=s<<8|e;if(n+=e,s<128)throw new r("tlv.decode(long): not minimal encoding")}else s=i;const a=t.subarray(n,n+s);if(a.length!==s)throw new r("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+s)}}},_int:{encode(e){const{Err:t}=Al;if(e<wl)throw new t("integer: negative integers are not allowed");let r=Ah(e);if(8&Number.parseInt(r[0],16)&&(r="00"+r),1&r.length)throw new t("unexpected DER parsing assertion: unpadded hex");return r},decode(e){const{Err:t}=Al;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return gl(e)}},toSig(e){const{Err:t,_int:r,_tlv:n}=Al,i="string"==typeof e?dl(e):e;fh(i);const{v:s,l:a}=n.decode(48,i);if(a.length)throw new t("invalid signature: left bytes after parsing");const{v:o,l:c}=n.decode(2,s),{v:u,l:h}=n.decode(2,c);if(h.length)throw new t("invalid signature: left bytes after parsing");return{r:r.decode(o),s:r.decode(u)}},hexFromSig(e){const{_tlv:t,_int:r}=Al,n=t.encode(2,r.encode(e.r))+t.encode(2,r.encode(e.s));return t.encode(48,n)}},wl=BigInt(0),ml=BigInt(1);BigInt(2);const bl=BigInt(3);function kl(e){const t=function(e){const t=fl(e);Lh(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:r,Fp:n,a:i}=t;if(r){if(!n.eql(i,n.ZERO))throw Error("invalid endomorphism, can only be defined for Koblitz curves that have a=0");if("object"!=typeof r||"bigint"!=typeof r.beta||"function"!=typeof r.splitScalar)throw Error("invalid endomorphism, expected beta: bigint and splitScalar: function")}return Object.freeze({...t})}(e),{Fp:r}=t,n=el(t.n,t.nBitLength),i=t.toBytes||((e,t,n)=>{const i=t.toAffine();return Kh(Uint8Array.from([4]),r.toBytes(i.x),r.toBytes(i.y))}),s=t.fromBytes||(e=>{const t=e.subarray(1);return{x:r.fromBytes(t.subarray(0,r.BYTES)),y:r.fromBytes(t.subarray(r.BYTES,2*r.BYTES))}});function a(e){const{a:n,b:i}=t,s=r.sqr(e),a=r.mul(s,e);return r.add(r.add(a,r.mul(e,n)),i)}if(!r.eql(r.sqr(t.Gy),a(t.Gx)))throw Error("bad generator point: equation left != right");function o(e){const{allowedPrivateKeyLengths:r,nByteLength:n,wrapPrivateKey:i,n:s}=t;if(r&&"bigint"!=typeof e){if(yh(e)&&(e=dh(e)),"string"!=typeof e||!r.includes(e.length))throw Error("invalid private key");e=e.padStart(2*n,"0")}let a;try{a="bigint"==typeof e?e:Eh(Ih("private key",e,n))}catch(t){throw Error("invalid private key, expected hex or "+n+" bytes, got "+typeof e)}return i&&(a=Vh(a,s)),Ph("private key",a,ml,s),a}function c(e){if(!(e instanceof l))throw Error("ProjectivePoint expected")}const u=Nh(((e,t)=>{const{px:n,py:i,pz:s}=e;if(r.eql(s,r.ONE))return{x:n,y:i};const a=e.is0();null==t&&(t=a?r.ONE:r.inv(s));const o=r.mul(n,t),c=r.mul(i,t),u=r.mul(s,t);if(a)return{x:r.ZERO,y:r.ZERO};if(!r.eql(u,r.ONE))throw Error("invZ was invalid");return{x:o,y:c}})),h=Nh((e=>{if(e.is0()){if(t.allowInfinityPoint&&!r.is0(e.py))return;throw Error("bad point: ZERO")}const{x:n,y:i}=e.toAffine();if(!r.isValid(n)||!r.isValid(i))throw Error("bad point: x or y not FE");const s=r.sqr(i),o=a(n);if(!r.eql(s,o))throw Error("bad point: equation left != right");if(!e.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0}));class l{constructor(e,t,n){if(this.px=e,this.py=t,this.pz=n,null==e||!r.isValid(e))throw Error("x required");if(null==t||!r.isValid(t))throw Error("y required");if(null==n||!r.isValid(n))throw Error("z required");Object.freeze(this)}static fromAffine(e){const{x:t,y:n}=e||{};if(!e||!r.isValid(t)||!r.isValid(n))throw Error("invalid affine point");if(e instanceof l)throw Error("projective point not allowed");const i=e=>r.eql(e,r.ZERO);return i(t)&&i(n)?l.ZERO:new l(t,n,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=r.invertBatch(e.map((e=>e.pz)));return e.map(((e,r)=>e.toAffine(t[r]))).map(l.fromAffine)}static fromHex(e){const t=l.fromAffine(s(Ih("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return l.BASE.multiply(o(e))}static msm(e,t){return yl(l,n,e,t)}_setWindowSize(e){f.setWindowSize(this,e)}assertValidity(){h(this)}hasEvenY(){const{y:e}=this.toAffine();if(r.isOdd)return!r.isOdd(e);throw Error("Field doesn't support isOdd")}equals(e){c(e);const{px:t,py:n,pz:i}=this,{px:s,py:a,pz:o}=e,u=r.eql(r.mul(t,o),r.mul(s,i)),h=r.eql(r.mul(n,o),r.mul(a,i));return u&&h}negate(){return new l(this.px,r.neg(this.py),this.pz)}double(){const{a:e,b:n}=t,i=r.mul(n,bl),{px:s,py:a,pz:o}=this;let c=r.ZERO,u=r.ZERO,h=r.ZERO,y=r.mul(s,s),f=r.mul(a,a),p=r.mul(o,o),g=r.mul(s,a);return g=r.add(g,g),h=r.mul(s,o),h=r.add(h,h),c=r.mul(e,h),u=r.mul(i,p),u=r.add(c,u),c=r.sub(f,u),u=r.add(f,u),u=r.mul(c,u),c=r.mul(g,c),h=r.mul(i,h),p=r.mul(e,p),g=r.sub(y,p),g=r.mul(e,g),g=r.add(g,h),h=r.add(y,y),y=r.add(h,y),y=r.add(y,p),y=r.mul(y,g),u=r.add(u,y),p=r.mul(a,o),p=r.add(p,p),y=r.mul(p,g),c=r.sub(c,y),h=r.mul(p,f),h=r.add(h,h),h=r.add(h,h),new l(c,u,h)}add(e){c(e);const{px:n,py:i,pz:s}=this,{px:a,py:o,pz:u}=e;let h=r.ZERO,y=r.ZERO,f=r.ZERO;const p=t.a,g=r.mul(t.b,bl);let d=r.mul(n,a),A=r.mul(i,o),w=r.mul(s,u),m=r.add(n,i),b=r.add(a,o);m=r.mul(m,b),b=r.add(d,A),m=r.sub(m,b),b=r.add(n,s);let k=r.add(a,u);return b=r.mul(b,k),k=r.add(d,w),b=r.sub(b,k),k=r.add(i,s),h=r.add(o,u),k=r.mul(k,h),h=r.add(A,w),k=r.sub(k,h),f=r.mul(p,b),h=r.mul(g,w),f=r.add(h,f),h=r.sub(A,f),f=r.add(A,f),y=r.mul(h,f),A=r.add(d,d),A=r.add(A,d),w=r.mul(p,w),b=r.mul(g,b),A=r.add(A,w),w=r.sub(d,w),w=r.mul(p,w),b=r.add(b,w),d=r.mul(A,b),y=r.add(y,d),d=r.mul(k,b),h=r.mul(m,h),h=r.sub(h,d),d=r.mul(m,A),f=r.mul(k,f),f=r.add(f,d),new l(h,y,f)}subtract(e){return this.add(e.negate())}is0(){return this.equals(l.ZERO)}wNAF(e){return f.wNAFCached(this,e,l.normalizeZ)}multiplyUnsafe(e){const{endo:n,n:i}=t;Ph("scalar",e,wl,i);const s=l.ZERO;if(e===wl)return s;if(this.is0()||e===ml)return this;if(!n||f.hasPrecomputes(this))return f.wNAFCachedUnsafe(this,e,l.normalizeZ);let{k1neg:a,k1:o,k2neg:c,k2:u}=n.splitScalar(e),h=s,y=s,p=this;for(;o>wl||u>wl;)o&ml&&(h=h.add(p)),u&ml&&(y=y.add(p)),p=p.double(),o>>=ml,u>>=ml;return a&&(h=h.negate()),c&&(y=y.negate()),y=new l(r.mul(y.px,n.beta),y.py,y.pz),h.add(y)}multiply(e){const{endo:n,n:i}=t;let s,a;if(Ph("scalar",e,ml,i),n){const{k1neg:t,k1:i,k2neg:o,k2:c}=n.splitScalar(e);let{p:u,f:h}=this.wNAF(i),{p:y,f:p}=this.wNAF(c);u=f.constTimeNegate(t,u),y=f.constTimeNegate(o,y),y=new l(r.mul(y.px,n.beta),y.py,y.pz),s=u.add(y),a=h.add(p)}else{const{p:t,f:r}=this.wNAF(e);s=t,a=r}return l.normalizeZ([s,a])[0]}multiplyAndAddUnsafe(e,t,r){const n=l.BASE,i=(e,t)=>t!==wl&&t!==ml&&e.equals(n)?e.multiply(t):e.multiplyUnsafe(t),s=i(this,t).add(i(e,r));return s.is0()?void 0:s}toAffine(e){return u(this,e)}isTorsionFree(){const{h:e,isTorsionFree:r}=t;if(e===ml)return!0;if(r)return r(l,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:r}=t;return e===ml?this:r?r(l,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return ph("isCompressed",e),this.assertValidity(),i(l,this,e)}toHex(e=!0){return ph("isCompressed",e),dh(this.toRawBytes(e))}}l.BASE=new l(t.Gx,t.Gy,r.ONE),l.ZERO=new l(r.ZERO,r.ONE,r.ZERO);const y=t.nBitLength,f=ll(l,t.endo?Math.ceil(y/2):y);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:o,weierstrassEquation:a,isWithinCurveOrder:function(e){return Uh(e,ml,t.n)}}}function El(e){const t=function(e){const t=fl(e);return Lh(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}(e),{Fp:r,n}=t,i=r.BYTES+1,s=2*r.BYTES+1;function a(e){return Vh(e,n)}function o(e){return Wh(e,n)}const{ProjectivePoint:c,normPrivateKeyToScalar:u,weierstrassEquation:h,isWithinCurveOrder:l}=kl({...t,toBytes(e,t,n){const i=t.toAffine(),s=r.toBytes(i.x),a=Kh;return ph("isCompressed",n),n?a(Uint8Array.from([t.hasEvenY()?2:3]),s):a(Uint8Array.from([4]),s,r.toBytes(i.y))},fromBytes(e){const t=e.length,n=e[0],a=e.subarray(1);if(t!==i||2!==n&&3!==n){if(t===s&&4===n){return{x:r.fromBytes(a.subarray(0,r.BYTES)),y:r.fromBytes(a.subarray(r.BYTES,2*r.BYTES))}}throw Error("invalid Point, expected length of "+i+", or uncompressed "+s+", got "+t)}{const e=Eh(a);if(!Uh(e,ml,r.ORDER))throw Error("Point is not on curve");const t=h(e);let i;try{i=r.sqrt(t)}catch(e){const t=e instanceof Error?": "+e.message:"";throw Error("Point is not on curve"+t)}return!(1&~n)!==((i&ml)===ml)&&(i=r.neg(i)),{x:e,y:i}}}}),y=e=>dh(Bh(e,t.nByteLength));function f(e){return e>n>>ml}const p=(e,t,r)=>Eh(e.slice(t,r));class g{constructor(e,t,r){this.r=e,this.s=t,this.recovery=r,this.assertValidity()}static fromCompact(e){const r=t.nByteLength;return e=Ih("compactSignature",e,2*r),new g(p(e,0,r),p(e,r,2*r))}static fromDER(e){const{r:t,s:r}=Al.toSig(Ih("DER",e));return new g(t,r)}assertValidity(){Ph("r",this.r,ml,n),Ph("s",this.s,ml,n)}addRecoveryBit(e){return new g(this.r,this.s,e)}recoverPublicKey(e){const{r:n,s:i,recovery:s}=this,u=m(Ih("msgHash",e));if(null==s||![0,1,2,3].includes(s))throw Error("recovery id invalid");const h=2===s||3===s?n+t.n:n;if(h>=r.ORDER)throw Error("recovery id 2 or 3 invalid");const l=1&s?"03":"02",f=c.fromHex(l+y(h)),p=o(h),g=a(-u*p),d=a(i*p),A=c.BASE.multiplyAndAddUnsafe(f,g,d);if(!A)throw Error("point at infinify");return A.assertValidity(),A}hasHighS(){return f(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return kh(this.toDERHex())}toDERHex(){return Al.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return kh(this.toCompactHex())}toCompactHex(){return y(this.r)+y(this.s)}}const d={isValidPrivateKey(e){try{return u(e),!0}catch(e){return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{const e=rl(t.n);return function(e,t,r=!1){const n=e.length,i=tl(t),s=rl(t);if(n<16||n<s||n>1024)throw Error("expected "+s+"-1024 bytes of input, got "+n);const a=Vh(r?Eh(e):vh(e),t-Hh)+Hh;return r?Sh(a,i):Bh(a,i)}(t.randomBytes(e),t.n)},precompute:(e=8,t=c.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function A(e){const t=yh(e),r="string"==typeof e,n=(t||r)&&e.length;return t?n===i||n===s:r?n===2*i||n===2*s:e instanceof c}const w=t.bits2int||function(e){if(e.length>8192)throw Error("input is too large");const r=Eh(e),n=8*e.length-t.nBitLength;return n>0?r>>BigInt(n):r},m=t.bits2int_modN||function(e){return a(w(e))},b=xh(t.nBitLength);function k(e){return Ph("num < 2^"+t.nBitLength,e,wl,b),Bh(e,t.nByteLength)}function E(e,n,i=v){if(["recovered","canonical"].some((e=>e in i)))throw Error("sign() legacy options not supported");const{hash:s,randomBytes:h}=t;let{lowS:y,prehash:p,extraEntropy:d}=i;null==y&&(y=!0),e=Ih("msgHash",e),pl(i),p&&(e=Ih("prehashed msgHash",s(e)));const A=m(e),b=u(n),E=[k(b),k(A)];if(null!=d&&!1!==d){const e=!0===d?h(r.BYTES):d;E.push(Ih("extraEntropy",e))}const B=Kh(...E),S=A;return{seed:B,k2sig:function(e){const t=w(e);if(!l(t))return;const r=o(t),n=c.BASE.multiply(t).toAffine(),i=a(n.x);if(i===wl)return;const s=a(r*a(S+i*b));if(s===wl)return;let u=(n.x===i?0:2)|Number(n.y&ml),h=s;return y&&f(s)&&(h=function(e){return f(e)?a(-e):e}(s),u^=1),new g(i,h,u)}}}const v={lowS:t.lowS,prehash:!1},B={lowS:t.lowS,prehash:!1};return c.BASE._setWindowSize(8),{CURVE:t,getPublicKey:function(e,t=!0){return c.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,r=!0){if(A(e))throw Error("first arg must be private key");if(!A(t))throw Error("second arg must be public key");return c.fromHex(t).multiply(u(e)).toRawBytes(r)},sign:function(e,r,n=v){const{seed:i,k2sig:s}=E(e,r,n),a=t;return Th(a.hash.outputLen,a.nByteLength,a.hmac)(i,s)},verify:function(e,r,n,i=B){const s=e;r=Ih("msgHash",r),n=Ih("publicKey",n);const{lowS:u,prehash:h,format:l}=i;if(pl(i),"strict"in i)throw Error("options.strict was renamed to lowS");if(void 0!==l&&"compact"!==l&&"der"!==l)throw Error("format must be compact or der");const y="string"==typeof s||yh(s),f=!y&&!l&&"object"==typeof s&&null!==s&&"bigint"==typeof s.r&&"bigint"==typeof s.s;if(!y&&!f)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");let p,d;try{if(f&&(p=new g(s.r,s.s)),y){try{"compact"!==l&&(p=g.fromDER(s))}catch(e){if(!(e instanceof Al.Err))throw e}p||"der"===l||(p=g.fromCompact(s))}d=c.fromHex(n)}catch(e){return!1}if(!p)return!1;if(u&&p.hasHighS())return!1;h&&(r=t.hash(r));const{r:A,s:w}=p,b=m(r),k=o(w),E=a(b*k),v=a(A*k),S=c.BASE.multiplyAndAddUnsafe(d,E,v)?.toAffine();return!!S&&a(S.x)===A},ProjectivePoint:c,Signature:g,utils:d}}
11
+ /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function vl(e){return{hash:e,hmac:(t,...r)=>ch(e,t,Vu(...r)),randomBytes:Wu}}function Bl(e,t){const r=t=>El({...e,...vl(t)});return Object.freeze({...r(t),create:r})}
12
+ /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */BigInt(4);const Sl=el(BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff")),Il=Bl({a:Sl.create(BigInt("-3")),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Fp:Sl,n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"),h:BigInt(1),lowS:!1},sh),Kl=/* @__PURE__ */BigInt(2**32-1),Cl=/* @__PURE__ */BigInt(32);function Ul(e,t=!1){return t?{h:Number(e&Kl),l:Number(e>>Cl&Kl)}:{h:0|Number(e>>Cl&Kl),l:0|Number(e&Kl)}}function Pl(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:s,l:a}=Ul(e[i],t);[r[i],n[i]]=[s,a]}return[r,n]}const Dl=(e,t,r)=>e<<r|t>>>32-r,xl=(e,t,r)=>t<<r|e>>>32-r,Ql=(e,t,r)=>t<<r-32|e>>>64-r,Rl=(e,t,r)=>e<<r-32|t>>>64-r;const Tl={fromBig:Ul,split:Pl,toBig:(e,t)=>BigInt(e>>>0)<<Cl|BigInt(t>>>0),shrSH:(e,t,r)=>e>>>r,shrSL:(e,t,r)=>e<<32-r|t>>>r,rotrSH:(e,t,r)=>e>>>r|t<<32-r,rotrSL:(e,t,r)=>e<<32-r|t>>>r,rotrBH:(e,t,r)=>e<<64-r|t>>>r-32,rotrBL:(e,t,r)=>e>>>r-32|t<<64-r,rotr32H:(e,t)=>t,rotr32L:(e,t)=>e,rotlSH:Dl,rotlSL:xl,rotlBH:Ql,rotlBL:Rl,add:function(e,t,r,n){const i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:0|i}},add3L:(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),add3H:(e,t,r,n)=>t+r+n+(e/2**32|0)|0,add4L:(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),add4H:(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,add5H:(e,t,r,n,i,s)=>t+r+n+i+s+(e/2**32|0)|0,add5L:(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0)},[Ml,Ll]=/* @__PURE__ */(()=>Tl.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((e=>BigInt(e)))))(),Nl=/* @__PURE__ */new Uint32Array(80),Fl=/* @__PURE__ */new Uint32Array(80);class Ol extends $u{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:s,Dh:a,Dl:o,Eh:c,El:u,Fh:h,Fl:l,Gh:y,Gl:f,Hh:p,Hl:g}=this;return[e,t,r,n,i,s,a,o,c,u,h,l,y,f,p,g]}set(e,t,r,n,i,s,a,o,c,u,h,l,y,f,p,g){this.Ah=0|e,this.Al=0|t,this.Bh=0|r,this.Bl=0|n,this.Ch=0|i,this.Cl=0|s,this.Dh=0|a,this.Dl=0|o,this.Eh=0|c,this.El=0|u,this.Fh=0|h,this.Fl=0|l,this.Gh=0|y,this.Gl=0|f,this.Hh=0|p,this.Hl=0|g}process(e,t){for(let r=0;r<16;r++,t+=4)Nl[r]=e.getUint32(t),Fl[r]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|Nl[e-15],r=0|Fl[e-15],n=Tl.rotrSH(t,r,1)^Tl.rotrSH(t,r,8)^Tl.shrSH(t,r,7),i=Tl.rotrSL(t,r,1)^Tl.rotrSL(t,r,8)^Tl.shrSL(t,r,7),s=0|Nl[e-2],a=0|Fl[e-2],o=Tl.rotrSH(s,a,19)^Tl.rotrBH(s,a,61)^Tl.shrSH(s,a,6),c=Tl.rotrSL(s,a,19)^Tl.rotrBL(s,a,61)^Tl.shrSL(s,a,6),u=Tl.add4L(i,c,Fl[e-7],Fl[e-16]),h=Tl.add4H(u,n,o,Nl[e-7],Nl[e-16]);Nl[e]=0|h,Fl[e]=0|u}let{Ah:r,Al:n,Bh:i,Bl:s,Ch:a,Cl:o,Dh:c,Dl:u,Eh:h,El:l,Fh:y,Fl:f,Gh:p,Gl:g,Hh:d,Hl:A}=this;for(let e=0;e<80;e++){const t=Tl.rotrSH(h,l,14)^Tl.rotrSH(h,l,18)^Tl.rotrBH(h,l,41),w=Tl.rotrSL(h,l,14)^Tl.rotrSL(h,l,18)^Tl.rotrBL(h,l,41),m=h&y^~h&p,b=l&f^~l&g,k=Tl.add5L(A,w,b,Ll[e],Fl[e]),E=Tl.add5H(k,d,t,m,Ml[e],Nl[e]),v=0|k,B=Tl.rotrSH(r,n,28)^Tl.rotrBH(r,n,34)^Tl.rotrBH(r,n,39),S=Tl.rotrSL(r,n,28)^Tl.rotrBL(r,n,34)^Tl.rotrBL(r,n,39),I=r&i^r&a^i&a,K=n&s^n&o^s&o;d=0|p,A=0|g,p=0|y,g=0|f,y=0|h,f=0|l,({h,l}=Tl.add(0|c,0|u,0|E,0|v)),c=0|a,u=0|o,a=0|i,o=0|s,i=0|r,s=0|n;const C=Tl.add3L(v,S,K);r=Tl.add3H(C,E,B,I),n=0|C}({h:r,l:n}=Tl.add(0|this.Ah,0|this.Al,0|r,0|n)),({h:i,l:s}=Tl.add(0|this.Bh,0|this.Bl,0|i,0|s)),({h:a,l:o}=Tl.add(0|this.Ch,0|this.Cl,0|a,0|o)),({h:c,l:u}=Tl.add(0|this.Dh,0|this.Dl,0|c,0|u)),({h,l}=Tl.add(0|this.Eh,0|this.El,0|h,0|l)),({h:y,l:f}=Tl.add(0|this.Fh,0|this.Fl,0|y,0|f)),({h:p,l:g}=Tl.add(0|this.Gh,0|this.Gl,0|p,0|g)),({h:d,l:A}=Tl.add(0|this.Hh,0|this.Hl,0|d,0|A)),this.set(r,n,i,s,a,o,c,u,h,l,y,f,p,g,d,A)}roundClean(){Nl.fill(0),Fl.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class Hl extends Ol{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}}const _l=/* @__PURE__ */Zu((()=>new Ol)),zl=/* @__PURE__ */Zu((()=>new Hl)),Gl=el(BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff")),ql=Bl({a:Gl.create(BigInt("-3")),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Fp:Gl,n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f"),h:BigInt(1),lowS:!1},zl),jl=el(BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")),Vl={a:jl.create(BigInt("-3")),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Fp:jl,n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650"),h:BigInt(1)},Yl=Bl({a:Vl.a,b:Vl.b,Fp:jl,n:Vl.n,Gx:Vl.Gx,Gy:Vl.Gy,h:Vl.h,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},_l),Zl=[],Wl=[],Jl=[],Xl=/* @__PURE__ */BigInt(0),$l=/* @__PURE__ */BigInt(1),ey=/* @__PURE__ */BigInt(2),ty=/* @__PURE__ */BigInt(7),ry=/* @__PURE__ */BigInt(256),ny=/* @__PURE__ */BigInt(113);for(let e=0,t=$l,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],Zl.push(2*(5*n+r)),Wl.push((e+1)*(e+2)/2%64);let i=Xl;for(let e=0;e<7;e++)t=(t<<$l^(t>>ty)*ny)%ry,t&ey&&(i^=$l<<($l<</* @__PURE__ */BigInt(e))-$l);Jl.push(i)}const[iy,sy]=/* @__PURE__ */Pl(Jl,!0),ay=(e,t,r)=>r>32?Ql(e,t,r):Dl(e,t,r),oy=(e,t,r)=>r>32?Rl(e,t,r):xl(e,t,r);class cy extends Yu{constructor(e,t,r,n=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Ru(r),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=Fu(this.state)}keccak(){zu||Gu(this.state32),function(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const n=(t+8)%10,i=(t+2)%10,s=r[i],a=r[i+1],o=ay(s,a,1)^r[n],c=oy(s,a,1)^r[n+1];for(let r=0;r<50;r+=10)e[t+r]^=o,e[t+r+1]^=c}let t=e[2],i=e[3];for(let r=0;r<24;r++){const n=Wl[r],s=ay(t,i,n),a=oy(t,i,n),o=Zl[r];t=e[o],i=e[o+1],e[o]=s,e[o+1]=a}for(let t=0;t<50;t+=10){for(let n=0;n<10;n++)r[n]=e[t+n];for(let n=0;n<10;n++)e[t+n]^=~r[(n+2)%10]&r[(n+4)%10]}e[0]^=iy[n],e[1]^=sy[n]}r.fill(0)}(this.state32,this.rounds),zu||Gu(this.state32),this.posOut=0,this.pos=0}update(e){Mu(this);const{blockLen:t,state:r}=this,n=(e=ju(e)).length;for(let i=0;i<n;){const s=Math.min(t-this.pos,n-i);for(let t=0;t<s;t++)r[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:r,blockLen:n}=this;e[r]^=t,128&t&&r===n-1&&this.keccak(),e[n-1]^=128,this.keccak()}writeInto(e){Mu(this,!1),Tu(e),this.finish();const t=this.state,{blockLen:r}=this;for(let n=0,i=e.length;n<i;){this.posOut>=r&&this.keccak();const s=Math.min(r-this.posOut,i-n);e.set(t.subarray(this.posOut,this.posOut+s),n),this.posOut+=s,n+=s}return e}xofInto(e){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return Ru(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Lu(e,this),this.finished)throw Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:n,rounds:i,enableXOF:s}=this;return e||(e=new cy(t,r,n,s,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=n,e.enableXOF=s,e.destroyed=this.destroyed,e}}const uy=(e,t,r)=>Zu((()=>new cy(t,e,r))),hy=/* @__PURE__ */uy(6,136,32),ly=/* @__PURE__ */uy(6,72,64),yy=(e,t,r)=>function(e){const t=(t,r)=>e(r).update(ju(t)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=t=>e(t),t}(((n={})=>new cy(t,e,void 0===n.dkLen?r:n.dkLen,!0))),fy=/* @__PURE__ */yy(31,168,16),py=/* @__PURE__ */yy(31,136,32),gy=BigInt(0),dy=BigInt(1),Ay=BigInt(2),wy=BigInt(8),my={zip215:!0};function by(e){const t=function(e){const t=fl(e);return Lh(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}(e),{Fp:r,n,prehash:i,hash:s,randomBytes:a,nByteLength:o,h:c}=t,u=Ay<<BigInt(8*o)-dy,h=r.create,l=el(t.n,t.nBitLength),y=t.uvRatio||((e,t)=>{try{return{isValid:!0,value:r.sqrt(e*r.inv(t))}}catch(e){return{isValid:!1,value:gy}}}),f=t.adjustScalarBytes||(e=>e),p=t.domain||((e,t,r)=>{if(ph("phflag",r),t.length||r)throw Error("Contexts/pre-hash are not supported");return e});function g(e,t){Ph("coordinate "+e,t,gy,u)}function d(e){if(!(e instanceof m))throw Error("ExtendedPoint expected")}const A=Nh(((e,t)=>{const{ex:n,ey:i,ez:s}=e,a=e.is0();null==t&&(t=a?wy:r.inv(s));const o=h(n*t),c=h(i*t),u=h(s*t);if(a)return{x:gy,y:dy};if(u!==dy)throw Error("invZ was invalid");return{x:o,y:c}})),w=Nh((e=>{const{a:r,d:n}=t;if(e.is0())throw Error("bad point: ZERO");const{ex:i,ey:s,ez:a,et:o}=e,c=h(i*i),u=h(s*s),l=h(a*a),y=h(l*l),f=h(c*r);if(h(l*h(f+u))!==h(y+h(n*h(c*u))))throw Error("bad point: equation left != right (1)");if(h(i*s)!==h(a*o))throw Error("bad point: equation left != right (2)");return!0}));class m{constructor(e,t,r,n){this.ex=e,this.ey=t,this.ez=r,this.et=n,g("x",e),g("y",t),g("z",r),g("t",n),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(e){if(e instanceof m)throw Error("extended point not allowed");const{x:t,y:r}=e||{};return g("x",t),g("y",r),new m(t,r,dy,h(t*r))}static normalizeZ(e){const t=r.invertBatch(e.map((e=>e.ez)));return e.map(((e,r)=>e.toAffine(t[r]))).map(m.fromAffine)}static msm(e,t){return yl(m,l,e,t)}_setWindowSize(e){E.setWindowSize(this,e)}assertValidity(){w(this)}equals(e){d(e);const{ex:t,ey:r,ez:n}=this,{ex:i,ey:s,ez:a}=e,o=h(t*a),c=h(i*n),u=h(r*a),l=h(s*n);return o===c&&u===l}is0(){return this.equals(m.ZERO)}negate(){return new m(h(-this.ex),this.ey,this.ez,h(-this.et))}double(){const{a:e}=t,{ex:r,ey:n,ez:i}=this,s=h(r*r),a=h(n*n),o=h(Ay*h(i*i)),c=h(e*s),u=r+n,l=h(h(u*u)-s-a),y=c+a,f=y-o,p=c-a,g=h(l*f),d=h(y*p),A=h(l*p),w=h(f*y);return new m(g,d,w,A)}add(e){d(e);const{a:r,d:n}=t,{ex:i,ey:s,ez:a,et:o}=this,{ex:c,ey:u,ez:l,et:y}=e;if(r===BigInt(-1)){const e=h((s-i)*(u+c)),t=h((s+i)*(u-c)),r=h(t-e);if(r===gy)return this.double();const n=h(a*Ay*y),f=h(o*Ay*l),p=f+n,g=t+e,d=f-n,A=h(p*r),w=h(g*d),b=h(p*d),k=h(r*g);return new m(A,w,k,b)}const f=h(i*c),p=h(s*u),g=h(o*n*y),A=h(a*l),w=h((i+s)*(c+u)-f-p),b=A-g,k=A+g,E=h(p-r*f),v=h(w*b),B=h(k*E),S=h(w*E),I=h(b*k);return new m(v,B,I,S)}subtract(e){return this.add(e.negate())}wNAF(e){return E.wNAFCached(this,e,m.normalizeZ)}multiply(e){const t=e;Ph("scalar",t,dy,n);const{p:r,f:i}=this.wNAF(t);return m.normalizeZ([r,i])[0]}multiplyUnsafe(e,t=m.ZERO){const r=e;return Ph("scalar",r,gy,n),r===gy?k:this.is0()||r===dy?this:E.wNAFCachedUnsafe(this,r,m.normalizeZ,t)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return E.unsafeLadder(this,n).is0()}toAffine(e){return A(this,e)}clearCofactor(){const{h:e}=t;return e===dy?this:this.multiplyUnsafe(e)}static fromHex(e,n=!1){const{d:i,a:s}=t,a=r.BYTES;e=Ih("pointHex",e,a),ph("zip215",n);const o=e.slice(),c=e[a-1];o[a-1]=-129&c;const l=vh(o),f=n?u:r.ORDER;Ph("pointHex.y",l,gy,f);const p=h(l*l),g=h(p-dy),d=h(i*p-s);let{isValid:A,value:w}=y(g,d);if(!A)throw Error("Point.fromHex: invalid y coordinate");const b=(w&dy)===dy,k=!!(128&c);if(!n&&w===gy&&k)throw Error("Point.fromHex: x=0 and x_0=1");return k!==b&&(w=h(-w)),m.fromAffine({x:w,y:l})}static fromPrivateKey(e){return S(e).point}toRawBytes(){const{x:e,y:t}=this.toAffine(),n=Sh(t,r.BYTES);return n[n.length-1]|=e&dy?128:0,n}toHex(){return dh(this.toRawBytes())}}m.BASE=new m(t.Gx,t.Gy,dy,h(t.Gx*t.Gy)),m.ZERO=new m(gy,dy,dy,gy);const{BASE:b,ZERO:k}=m,E=ll(m,8*o);function v(e){return Vh(e,n)}function B(e){return v(vh(e))}function S(e){const t=r.BYTES;e=Ih("private key",e,t);const n=Ih("hashed private key",s(e),2*t),i=f(n.slice(0,t)),a=n.slice(t,2*t),o=B(i),c=b.multiply(o),u=c.toRawBytes();return{head:i,prefix:a,scalar:o,point:c,pointBytes:u}}function I(e=new Uint8Array,...t){const r=Kh(...t);return B(s(p(r,Ih("context",e),!!i)))}const K=my;b._setWindowSize(8);return{CURVE:t,getPublicKey:function(e){return S(e).pointBytes},sign:function(e,t,s={}){e=Ih("message",e),i&&(e=i(e));const{prefix:a,scalar:o,pointBytes:c}=S(t),u=I(s.context,a,e),h=b.multiply(u).toRawBytes(),l=v(u+I(s.context,h,c,e)*o);return Ph("signature.s",l,gy,n),Ih("result",Kh(h,Sh(l,r.BYTES)),2*r.BYTES)},verify:function(e,t,n,s=K){const{context:a,zip215:o}=s,c=r.BYTES;e=Ih("signature",e,2*c),t=Ih("message",t),n=Ih("publicKey",n,c),void 0!==o&&ph("zip215",o),i&&(t=i(t));const u=vh(e.slice(c,2*c));let h,l,y;try{h=m.fromHex(n,o),l=m.fromHex(e.slice(0,c),o),y=b.multiplyUnsafe(u)}catch(e){return!1}if(!o&&h.isSmallOrder())return!1;const f=I(a,l.toRawBytes(),h.toRawBytes(),t);return l.add(h.multiplyUnsafe(f)).subtract(y).clearCofactor().equals(m.ZERO)},ExtendedPoint:m,utils:{getExtendedPublicKey:S,randomPrivateKey:()=>a(r.BYTES),precompute:(e=8,t=m.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)}}}
13
+ /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ky=BigInt(0),Ey=BigInt(1);function vy(e){const t=(Lh(r=e,{a:"bigint"},{montgomeryBits:"isSafeInteger",nByteLength:"isSafeInteger",adjustScalarBytes:"function",domain:"function",powPminus2:"function",Gu:"bigint"}),Object.freeze({...r}));var r;const{P:n}=t,i=e=>Vh(e,n),s=t.montgomeryBits,a=Math.ceil(s/8),o=t.nByteLength,c=t.adjustScalarBytes||(e=>e),u=t.powPminus2||(e=>Yh(e,n-BigInt(2),n));function h(e,t,r){const n=i(e*(t-r));return[t=i(t-n),r=i(r+n)]}const l=(t.a-BigInt(2))/BigInt(4);function y(e){return Sh(i(e),a)}function f(e,t){const r=function(e){const t=Ih("u coordinate",e,a);return 32===o&&(t[31]&=127),vh(t)}(t),f=function(e){const t=Ih("scalar",e),r=t.length;if(r!==a&&r!==o)throw Error("invalid scalar, expected "+a+" or "+o+" bytes, got "+r);return vh(c(t))}(e),p=function(e,t){Ph("u",e,ky,n),Ph("scalar",t,ky,n);const r=t,a=e;let o,c=Ey,y=ky,f=e,p=Ey,g=ky;for(let e=BigInt(s-1);e>=ky;e--){const t=r>>e&Ey;g^=t,o=h(g,c,f),c=o[0],f=o[1],o=h(g,y,p),y=o[0],p=o[1],g=t;const n=c+y,s=i(n*n),u=c-y,d=i(u*u),A=s-d,w=f+p,m=i((f-p)*n),b=i(w*u),k=m+b,E=m-b;f=i(k*k),p=i(a*i(E*E)),c=i(s*d),y=i(A*(s+i(l*A)))}o=h(g,c,f),c=o[0],f=o[1],o=h(g,y,p),y=o[0],p=o[1];const d=u(y);return i(c*d)}(r,f);if(p===ky)throw Error("invalid private or public key received");return y(p)}const p=y(t.Gu);function g(e){return f(e,p)}return{scalarMult:f,scalarMultBase:g,getSharedSecret:(e,t)=>f(e,t),getPublicKey:e=>g(e),utils:{randomPrivateKey:()=>t.randomBytes(t.nByteLength)},GuBytes:p}}
14
+ /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const By=Zu((()=>py.create({dkLen:114}))),Sy=(Zu((()=>py.create({dkLen:64}))),BigInt("726838724295606890549323807888004534353641360687318060281490199180612328166730772686396383698676545930088884461843637361053498018365439")),Iy=BigInt(1),Ky=BigInt(2),Cy=BigInt(3);BigInt(4);const Uy=BigInt(11),Py=BigInt(22),Dy=BigInt(44),xy=BigInt(88),Qy=BigInt(223);function Ry(e){const t=Sy,r=e*e*e%t,n=r*r*e%t,i=Zh(n,Cy,t)*n%t,s=Zh(i,Cy,t)*n%t,a=Zh(s,Ky,t)*r%t,o=Zh(a,Uy,t)*a%t,c=Zh(o,Py,t)*o%t,u=Zh(c,Dy,t)*c%t,h=Zh(u,xy,t)*u%t,l=Zh(h,Dy,t)*c%t,y=Zh(l,Ky,t)*r%t,f=Zh(y,Iy,t)*e%t;return Zh(f,Qy,t)*y%t}function Ty(e){return e[0]&=252,e[55]|=128,e[56]=0,e}const My=el(Sy,456,!0),Ly={a:BigInt(1),d:BigInt("726838724295606890549323807888004534353641360687318060281490199180612328166730772686396383698676545930088884461843637361053498018326358"),Fp:My,n:BigInt("181709681073901722637330951972001133588410340171829515070372549795146003961539585716195755291692375963310293709091662304773755859649779"),nBitLength:456,h:BigInt(4),Gx:BigInt("224580040295924300187604334099896036246789641632564134246125461686950415467406032909029192869357953282578032075146446173674602635247710"),Gy:BigInt("298819210078481492676017930443930673437544040154080242095928241372331506189835876003536878655418784733982303233503462500531545062832660"),hash:By,randomBytes:Wu,adjustScalarBytes:Ty,domain:(e,t,r)=>{if(t.length>255)throw Error("context must be smaller than 255, got: "+t.length);return Vu(qu("SigEd448"),new Uint8Array([r?1:0,t.length]),t,e)},uvRatio:function(e,t){const r=Sy,n=Vh(e*e*t,r),i=Vh(n*e,r),s=Vh(i*n*t,r),a=Vh(i*Ry(s),r),o=Vh(a*a,r);return{isValid:Vh(o*t,r)===e,value:a}}},Ny=/* @__PURE__ */by(Ly),Fy=/* @__PURE__ */(()=>vy({a:BigInt(156326),montgomeryBits:448,nByteLength:56,P:Sy,Gu:BigInt(5),powPminus2:e=>{const t=Sy;return Vh(Zh(Ry(e),BigInt(2),t)*e,t)},adjustScalarBytes:Ty,randomBytes:Wu}))();My.ORDER,BigInt(3),BigInt(4),BigInt(156326),BigInt("39082"),BigInt("78163"),BigInt("98944233647732219769177004876929019128417576295529901074099889598043702116001257856802131563896515373927712232092845883226922417596214"),BigInt("315019913931389607337177038330951043522456072897266928557328499619017160722351061360252776265186336876723201881398623946864393857820716"),BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
15
15
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
16
- const Ny=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Oy=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),_y=BigInt(1),Hy=BigInt(2),zy=(e,t)=>(e+t/Hy)/t;const Gy=$h(Ny,void 0,void 0,{sqrt:function(e){const t=Ny,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),a=BigInt(23),o=BigInt(44),c=BigInt(88),u=e*e*e%t,h=u*u*e%t,l=Yh(h,r,t)*h%t,y=Yh(l,r,t)*h%t,f=Yh(y,Hy,t)*u%t,g=Yh(f,i,t)*f%t,p=Yh(g,s,t)*g%t,d=Yh(p,o,t)*p%t,A=Yh(d,c,t)*d%t,w=Yh(A,o,t)*p%t,m=Yh(w,r,t)*h%t,b=Yh(m,a,t)*g%t,k=Yh(b,n,t)*u%t,E=Yh(k,Hy,t);if(!Gy.eql(Gy.sqr(E),e))throw Error("Cannot find square root");return E}}),qy=vl({a:BigInt(0),b:BigInt(7),Fp:Gy,n:Oy,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=Oy,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-_y*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,a=BigInt("0x100000000000000000000000000000000"),o=zy(s*e,t),c=zy(-n*e,t);let u=jh(e-o*r-c*i,t),h=jh(-o*n-c*s,t);const l=u>a,y=h>a;if(l&&(u=t-u),y&&(h=t-h),u>a||h>a)throw Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:u,k2neg:y,k2:h}}}},ih);BigInt(0),qy.ProjectivePoint;const jy=$h(BigInt("0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377")),Vy=vl({a:jy.create(BigInt("0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9")),b:BigInt("0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6"),Fp:jy,n:BigInt("0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7"),Gx:BigInt("0x8bd2aeb9cb7e57cb2c4b482ffc81b7afb9de27e1e3bd23c23a4453bd9ace3262"),Gy:BigInt("0x547ef835c3dac4fd97f8461a14611dc9c27745132ded8e545c1d54c72f046997"),h:BigInt(1),lowS:!1},ih),Yy=$h(BigInt("0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53")),Zy=vl({a:Yy.create(BigInt("0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826")),b:BigInt("0x04a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11"),Fp:Yy,n:BigInt("0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565"),Gx:BigInt("0x1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e"),Gy:BigInt("0x8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315"),h:BigInt(1),lowS:!1},Hl),Wy=$h(BigInt("0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3")),Jy=vl({a:Wy.create(BigInt("0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94ca")),b:BigInt("0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723"),Fp:Wy,n:BigInt("0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069"),Gx:BigInt("0x81aee4bdd82ed9645a21322e9c4c6a9385ed9f70b5d916c1b43b62eef4d0098eff3b1f78e2d0d48d50d1687b93b97d5f7c6d5047406a5e688b352209bcb9f822"),Gy:BigInt("0x7dde385d566332ecc0eabfa9cf7822fdf209f70024a57b1aa000c55b881f8111b2dcde494a5f485e5bca4bd88a2763aed1ca2b2fa8f0540678cd1e0f3ad80892"),h:BigInt(1),lowS:!1},_l),Xy=new Map(Object.entries({nistP256:Sl,nistP384:Gl,nistP521:Vl,brainpoolP256r1:Vy,brainpoolP384r1:Zy,brainpoolP512r1:Jy,secp256k1:qy,x448:Fy,ed448:Ly}));var $y=/*#__PURE__*/Object.freeze({__proto__:null,nobleCurves:Xy});const ef=/* @__PURE__ */new Uint32Array([1732584193,4023233417,2562383102,271733878,3285377520]),tf=/* @__PURE__ */new Uint32Array(80);class rf extends Xu{constructor(){super(64,20,8,!1),this.A=0|ef[0],this.B=0|ef[1],this.C=0|ef[2],this.D=0|ef[3],this.E=0|ef[4]}get(){const{A:e,B:t,C:r,D:n,E:i}=this;return[e,t,r,n,i]}set(e,t,r,n,i){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n,this.E=0|i}process(e,t){for(let r=0;r<16;r++,t+=4)tf[r]=e.getUint32(t,!1);for(let e=16;e<80;e++)tf[e]=_u(tf[e-3]^tf[e-8]^tf[e-14]^tf[e-16],1);let{A:r,B:n,C:i,D:s,E:a}=this;for(let e=0;e<80;e++){let t,o;e<20?(t=Wu(n,i,s),o=1518500249):e<40?(t=n^i^s,o=1859775393):e<60?(t=Ju(n,i,s),o=2400959708):(t=n^i^s,o=3395469782);const c=_u(r,5)+t+a+o+tf[e]|0;a=s,s=i,i=_u(n,30),n=r,r=c}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,this.set(r,n,i,s,a)}roundClean(){tf.fill(0)}destroy(){this.set(0,0,0,0,0),this.buffer.fill(0)}}const nf=/* @__PURE__ */Yu((()=>new rf)),sf=/* @__PURE__ */new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),af=/* @__PURE__ */new Uint8Array(Array(16).fill(0).map(((e,t)=>t))),of=/* @__PURE__ */af.map((e=>(9*e+5)%16));let cf=[af],uf=[of];for(let e=0;e<4;e++)for(let t of[cf,uf])t.push(t[e].map((e=>sf[e])));const hf=/* @__PURE__ */[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((e=>new Uint8Array(e))),lf=/* @__PURE__ */cf.map(((e,t)=>e.map((e=>hf[t][e])))),yf=/* @__PURE__ */uf.map(((e,t)=>e.map((e=>hf[t][e])))),ff=/* @__PURE__ */new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),gf=/* @__PURE__ */new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]);function pf(e,t,r,n){return 0===e?t^r^n:1===e?t&r|~t&n:2===e?(t|~r)^n:3===e?t&n|r&~n:t^(r|~n)}const df=/* @__PURE__ */new Uint32Array(16);class Af extends Xu{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:e,h1:t,h2:r,h3:n,h4:i}=this;return[e,t,r,n,i]}set(e,t,r,n,i){this.h0=0|e,this.h1=0|t,this.h2=0|r,this.h3=0|n,this.h4=0|i}process(e,t){for(let r=0;r<16;r++,t+=4)df[r]=e.getUint32(t,!0);let r=0|this.h0,n=r,i=0|this.h1,s=i,a=0|this.h2,o=a,c=0|this.h3,u=c,h=0|this.h4,l=h;for(let e=0;e<5;e++){const t=4-e,y=ff[e],f=gf[e],g=cf[e],p=uf[e],d=lf[e],A=yf[e];for(let t=0;t<16;t++){const n=_u(r+pf(e,i,a,c)+df[g[t]]+y,d[t])+h|0;r=h,h=c,c=0|_u(a,10),a=i,i=n}for(let e=0;e<16;e++){const r=_u(n+pf(t,s,o,u)+df[p[e]]+f,A[e])+l|0;n=l,l=u,u=0|_u(o,10),o=s,s=r}}this.set(this.h1+a+u|0,this.h2+c+l|0,this.h3+h+n|0,this.h4+r+s|0,this.h0+i+o|0)}roundClean(){df.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}const wf=/* @__PURE__ */Yu((()=>new Af)),mf=Array.from({length:64},((e,t)=>Math.floor(2**32*Math.abs(Math.sin(t+1))))),bf=(e,t,r)=>e&t^~e&r,kf=/* @__PURE__ */new Uint32Array([1732584193,4023233417,2562383102,271733878]),Ef=/* @__PURE__ */new Uint32Array(16);class vf extends Xu{constructor(){super(64,16,8,!0),this.A=0|kf[0],this.B=0|kf[1],this.C=0|kf[2],this.D=0|kf[3]}get(){const{A:e,B:t,C:r,D:n}=this;return[e,t,r,n]}set(e,t,r,n){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n}process(e,t){for(let r=0;r<16;r++,t+=4)Ef[r]=e.getUint32(t,!0);let{A:r,B:n,C:i,D:s}=this;for(let e=0;e<64;e++){let t,a,o;e<16?(t=bf(n,i,s),a=e,o=[7,12,17,22]):e<32?(t=bf(s,n,i),a=(5*e+1)%16,o=[5,9,14,20]):e<48?(t=n^i^s,a=(3*e+5)%16,o=[4,11,16,23]):(t=i^(n|~s),a=7*e%16,o=[6,10,15,21]),t=t+r+mf[e]+Ef[a],r=s,s=i,i=n,n+=_u(t,o[e%4])}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,s=s+this.D|0,this.set(r,n,i,s)}roundClean(){Ef.fill(0)}destroy(){this.set(0,0,0,0),this.buffer.fill(0)}}const Bf=new Map(Object.entries({md5:/* @__PURE__ */Yu((()=>new vf)),sha1:nf,sha224:sh,sha256:ih,sha384:Hl,sha512:_l,sha3_256:uy,sha3_512:hy,ripemd160:wf}));var Sf=/*#__PURE__*/Object.freeze({__proto__:null,nobleHashes:Bf});function If(e,t,r,n,i,s){const a=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],o=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],c=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],u=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],h=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],l=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],y=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],f=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];let g,p,d,A,w,m,b,k,E,v,B=0,S=t.length;const I=32===e.length?3:9;k=3===I?r?[0,32,2]:[30,-2,-2]:r?[0,32,2,62,30,-2,64,96,2]:[94,62,-2,32,64,2,30,-2,-2],r&&(t=function(e){const t=8-e.length%8;let r;if(!(t<8)){if(8===t)return e;throw Error("des: invalid padding")}r=0;const n=new Uint8Array(e.length+t);for(let t=0;t<e.length;t++)n[t]=e[t];for(let i=0;i<t;i++)n[e.length+i]=r;return n}(t),S=t.length);let K=new Uint8Array(S),C=0;for(;B<S;){for(m=t[B++]<<24|t[B++]<<16|t[B++]<<8|t[B++],b=t[B++]<<24|t[B++]<<16|t[B++]<<8|t[B++],d=252645135&(m>>>4^b),b^=d,m^=d<<4,d=65535&(m>>>16^b),b^=d,m^=d<<16,d=858993459&(b>>>2^m),m^=d,b^=d<<2,d=16711935&(b>>>8^m),m^=d,b^=d<<8,d=1431655765&(m>>>1^b),b^=d,m^=d<<1,m=m<<1|m>>>31,b=b<<1|b>>>31,p=0;p<I;p+=3){for(E=k[p+1],v=k[p+2],g=k[p];g!==E;g+=v)A=b^e[g],w=(b>>>4|b<<28)^e[g+1],d=m,m=b,b=d^(o[A>>>24&63]|u[A>>>16&63]|l[A>>>8&63]|f[63&A]|a[w>>>24&63]|c[w>>>16&63]|h[w>>>8&63]|y[63&w]);d=m,m=b,b=d}m=m>>>1|m<<31,b=b>>>1|b<<31,d=1431655765&(m>>>1^b),b^=d,m^=d<<1,d=16711935&(b>>>8^m),m^=d,b^=d<<8,d=858993459&(b>>>2^m),m^=d,b^=d<<2,d=65535&(m>>>16^b),b^=d,m^=d<<16,d=252645135&(m>>>4^b),b^=d,m^=d<<4,K[C++]=m>>>24,K[C++]=m>>>16&255,K[C++]=m>>>8&255,K[C++]=255&m,K[C++]=b>>>24,K[C++]=b>>>16&255,K[C++]=b>>>8&255,K[C++]=255&b}return r||(K=function(e){let t,r=null;if(t=0,!r){for(r=1;e[e.length-r]===t;)r++;r--}return e.subarray(0,e.length-r)}(K)),K}function Kf(e){const t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],a=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],o=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],h=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],l=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],y=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],f=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],g=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],p=e.length>8?3:1,d=Array(32*p),A=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0];let w,m,b,k=0,E=0;for(let v=0;v<p;v++){let p=e[k++]<<24|e[k++]<<16|e[k++]<<8|e[k++],v=e[k++]<<24|e[k++]<<16|e[k++]<<8|e[k++];b=252645135&(p>>>4^v),v^=b,p^=b<<4,b=65535&(v>>>-16^p),p^=b,v^=b<<-16,b=858993459&(p>>>2^v),v^=b,p^=b<<2,b=65535&(v>>>-16^p),p^=b,v^=b<<-16,b=1431655765&(p>>>1^v),v^=b,p^=b<<1,b=16711935&(v>>>8^p),p^=b,v^=b<<8,b=1431655765&(p>>>1^v),v^=b,p^=b<<1,b=p<<8|v>>>20&240,p=v<<24|v<<8&16711680|v>>>8&65280|v>>>24&240,v=b;for(let e=0;e<16;e++)A[e]?(p=p<<2|p>>>26,v=v<<2|v>>>26):(p=p<<1|p>>>27,v=v<<1|v>>>27),p&=-15,v&=-15,w=t[p>>>28]|r[p>>>24&15]|n[p>>>20&15]|i[p>>>16&15]|s[p>>>12&15]|a[p>>>8&15]|o[p>>>4&15],m=c[v>>>28]|u[v>>>24&15]|h[v>>>20&15]|l[v>>>16&15]|y[v>>>12&15]|f[v>>>8&15]|g[v>>>4&15],b=65535&(m>>>16^w),d[E++]=w^b,d[E++]=m^b<<16}return d}function Cf(e){this.key=[];for(let t=0;t<3;t++)this.key.push(new Uint8Array(e.subarray(8*t,8*t+8)));this.encrypt=function(e){return If(Kf(this.key[2]),If(Kf(this.key[1]),If(Kf(this.key[0]),e,!0),!1),!0)}}function Uf(){this.BlockSize=8,this.KeySize=16,this.setKey=function(e){if(this.masking=Array(16),this.rotate=Array(16),this.reset(),e.length!==this.KeySize)throw Error("CAST-128: keys must be 16 bytes");return this.keySchedule(e),!0},this.reset=function(){for(let e=0;e<16;e++)this.masking[e]=0,this.rotate[e]=0},this.getBlockSize=function(){return this.BlockSize},this.encrypt=function(e){const t=Array(e.length);for(let s=0;s<e.length;s+=8){let a,o=e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3],c=e[s+4]<<24|e[s+5]<<16|e[s+6]<<8|e[s+7];a=c,c=o^r(c,this.masking[0],this.rotate[0]),o=a,a=c,c=o^n(c,this.masking[1],this.rotate[1]),o=a,a=c,c=o^i(c,this.masking[2],this.rotate[2]),o=a,a=c,c=o^r(c,this.masking[3],this.rotate[3]),o=a,a=c,c=o^n(c,this.masking[4],this.rotate[4]),o=a,a=c,c=o^i(c,this.masking[5],this.rotate[5]),o=a,a=c,c=o^r(c,this.masking[6],this.rotate[6]),o=a,a=c,c=o^n(c,this.masking[7],this.rotate[7]),o=a,a=c,c=o^i(c,this.masking[8],this.rotate[8]),o=a,a=c,c=o^r(c,this.masking[9],this.rotate[9]),o=a,a=c,c=o^n(c,this.masking[10],this.rotate[10]),o=a,a=c,c=o^i(c,this.masking[11],this.rotate[11]),o=a,a=c,c=o^r(c,this.masking[12],this.rotate[12]),o=a,a=c,c=o^n(c,this.masking[13],this.rotate[13]),o=a,a=c,c=o^i(c,this.masking[14],this.rotate[14]),o=a,a=c,c=o^r(c,this.masking[15],this.rotate[15]),o=a,t[s]=c>>>24&255,t[s+1]=c>>>16&255,t[s+2]=c>>>8&255,t[s+3]=255&c,t[s+4]=o>>>24&255,t[s+5]=o>>>16&255,t[s+6]=o>>>8&255,t[s+7]=255&o}return t},this.decrypt=function(e){const t=Array(e.length);for(let s=0;s<e.length;s+=8){let a,o=e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3],c=e[s+4]<<24|e[s+5]<<16|e[s+6]<<8|e[s+7];a=c,c=o^r(c,this.masking[15],this.rotate[15]),o=a,a=c,c=o^i(c,this.masking[14],this.rotate[14]),o=a,a=c,c=o^n(c,this.masking[13],this.rotate[13]),o=a,a=c,c=o^r(c,this.masking[12],this.rotate[12]),o=a,a=c,c=o^i(c,this.masking[11],this.rotate[11]),o=a,a=c,c=o^n(c,this.masking[10],this.rotate[10]),o=a,a=c,c=o^r(c,this.masking[9],this.rotate[9]),o=a,a=c,c=o^i(c,this.masking[8],this.rotate[8]),o=a,a=c,c=o^n(c,this.masking[7],this.rotate[7]),o=a,a=c,c=o^r(c,this.masking[6],this.rotate[6]),o=a,a=c,c=o^i(c,this.masking[5],this.rotate[5]),o=a,a=c,c=o^n(c,this.masking[4],this.rotate[4]),o=a,a=c,c=o^r(c,this.masking[3],this.rotate[3]),o=a,a=c,c=o^i(c,this.masking[2],this.rotate[2]),o=a,a=c,c=o^n(c,this.masking[1],this.rotate[1]),o=a,a=c,c=o^r(c,this.masking[0],this.rotate[0]),o=a,t[s]=c>>>24&255,t[s+1]=c>>>16&255,t[s+2]=c>>>8&255,t[s+3]=255&c,t[s+4]=o>>>24&255,t[s+5]=o>>16&255,t[s+6]=o>>8&255,t[s+7]=255&o}return t};const e=[,,,,];e[0]=[,,,,],e[0][0]=[4,0,13,15,12,14,8],e[0][1]=[5,2,16,18,17,19,10],e[0][2]=[6,3,23,22,21,20,9],e[0][3]=[7,1,26,25,27,24,11],e[1]=[,,,,],e[1][0]=[0,6,21,23,20,22,16],e[1][1]=[1,4,0,2,1,3,18],e[1][2]=[2,5,7,6,5,4,17],e[1][3]=[3,7,10,9,11,8,19],e[2]=[,,,,],e[2][0]=[4,0,13,15,12,14,8],e[2][1]=[5,2,16,18,17,19,10],e[2][2]=[6,3,23,22,21,20,9],e[2][3]=[7,1,26,25,27,24,11],e[3]=[,,,,],e[3][0]=[0,6,21,23,20,22,16],e[3][1]=[1,4,0,2,1,3,18],e[3][2]=[2,5,7,6,5,4,17],e[3][3]=[3,7,10,9,11,8,19];const t=[,,,,];function r(e,t,r){const n=t+e,i=n<<r|n>>>32-r;return(s[0][i>>>24]^s[1][i>>>16&255])-s[2][i>>>8&255]+s[3][255&i]}function n(e,t,r){const n=t^e,i=n<<r|n>>>32-r;return s[0][i>>>24]-s[1][i>>>16&255]+s[2][i>>>8&255]^s[3][255&i]}function i(e,t,r){const n=t-e,i=n<<r|n>>>32-r;return(s[0][i>>>24]+s[1][i>>>16&255]^s[2][i>>>8&255])-s[3][255&i]}t[0]=[,,,,],t[0][0]=[24,25,23,22,18],t[0][1]=[26,27,21,20,22],t[0][2]=[28,29,19,18,25],t[0][3]=[30,31,17,16,28],t[1]=[,,,,],t[1][0]=[3,2,12,13,8],t[1][1]=[1,0,14,15,13],t[1][2]=[7,6,8,9,3],t[1][3]=[5,4,10,11,7],t[2]=[,,,,],t[2][0]=[19,18,28,29,25],t[2][1]=[17,16,30,31,28],t[2][2]=[23,22,24,25,18],t[2][3]=[21,20,26,27,22],t[3]=[,,,,],t[3][0]=[8,9,7,6,3],t[3][1]=[10,11,5,4,7],t[3][2]=[12,13,3,2,8],t[3][3]=[14,15,1,0,13],this.keySchedule=function(r){const n=[,,,,,,,,],i=Array(32);let a;for(let e=0;e<4;e++)a=4*e,n[e]=r[a]<<24|r[a+1]<<16|r[a+2]<<8|r[a+3];const o=[6,7,4,5];let c,u=0;for(let r=0;r<2;r++)for(let r=0;r<4;r++){for(a=0;a<4;a++){const t=e[r][a];c=n[t[1]],c^=s[4][n[t[2]>>>2]>>>24-8*(3&t[2])&255],c^=s[5][n[t[3]>>>2]>>>24-8*(3&t[3])&255],c^=s[6][n[t[4]>>>2]>>>24-8*(3&t[4])&255],c^=s[7][n[t[5]>>>2]>>>24-8*(3&t[5])&255],c^=s[o[a]][n[t[6]>>>2]>>>24-8*(3&t[6])&255],n[t[0]]=c}for(a=0;a<4;a++){const e=t[r][a];c=s[4][n[e[0]>>>2]>>>24-8*(3&e[0])&255],c^=s[5][n[e[1]>>>2]>>>24-8*(3&e[1])&255],c^=s[6][n[e[2]>>>2]>>>24-8*(3&e[2])&255],c^=s[7][n[e[3]>>>2]>>>24-8*(3&e[3])&255],c^=s[4+a][n[e[4]>>>2]>>>24-8*(3&e[4])&255],i[u]=c,u++}}for(let e=0;e<16;e++)this.masking[e]=i[e],this.rotate[e]=31&i[16+e]};const s=[,,,,,,,,];s[0]=[821772500,2678128395,1810681135,1059425402,505495343,2617265619,1610868032,3483355465,3218386727,2294005173,3791863952,2563806837,1852023008,365126098,3269944861,584384398,677919599,3229601881,4280515016,2002735330,1136869587,3744433750,2289869850,2731719981,2714362070,879511577,1639411079,575934255,717107937,2857637483,576097850,2731753936,1725645e3,2810460463,5111599,767152862,2543075244,1251459544,1383482551,3052681127,3089939183,3612463449,1878520045,1510570527,2189125840,2431448366,582008916,3163445557,1265446783,1354458274,3529918736,3202711853,3073581712,3912963487,3029263377,1275016285,4249207360,2905708351,3304509486,1442611557,3585198765,2712415662,2731849581,3248163920,2283946226,208555832,2766454743,1331405426,1447828783,3315356441,3108627284,2957404670,2981538698,3339933917,1669711173,286233437,1465092821,1782121619,3862771680,710211251,980974943,1651941557,430374111,2051154026,704238805,4128970897,3144820574,2857402727,948965521,3333752299,2227686284,718756367,2269778983,2731643755,718440111,2857816721,3616097120,1113355533,2478022182,410092745,1811985197,1944238868,2696854588,1415722873,1682284203,1060277122,1998114690,1503841958,82706478,2315155686,1068173648,845149890,2167947013,1768146376,1993038550,3566826697,3390574031,940016341,3355073782,2328040721,904371731,1205506512,4094660742,2816623006,825647681,85914773,2857843460,1249926541,1417871568,3287612,3211054559,3126306446,1975924523,1353700161,2814456437,2438597621,1800716203,722146342,2873936343,1151126914,4160483941,2877670899,458611604,2866078500,3483680063,770352098,2652916994,3367839148,3940505011,3585973912,3809620402,718646636,2504206814,2914927912,3631288169,2857486607,2860018678,575749918,2857478043,718488780,2069512688,3548183469,453416197,1106044049,3032691430,52586708,3378514636,3459808877,3211506028,1785789304,218356169,3571399134,3759170522,1194783844,1523787992,3007827094,1975193539,2555452411,1341901877,3045838698,3776907964,3217423946,2802510864,2889438986,1057244207,1636348243,3761863214,1462225785,2632663439,481089165,718503062,24497053,3332243209,3344655856,3655024856,3960371065,1195698900,2971415156,3710176158,2115785917,4027663609,3525578417,2524296189,2745972565,3564906415,1372086093,1452307862,2780501478,1476592880,3389271281,18495466,2378148571,901398090,891748256,3279637769,3157290713,2560960102,1447622437,4284372637,216884176,2086908623,1879786977,3588903153,2242455666,2938092967,3559082096,2810645491,758861177,1121993112,215018983,642190776,4169236812,1196255959,2081185372,3508738393,941322904,4124243163,2877523539,1848581667,2205260958,3180453958,2589345134,3694731276,550028657,2519456284,3789985535,2973870856,2093648313,443148163,46942275,2734146937,1117713533,1115362972,1523183689,3717140224,1551984063],s[1]=[522195092,4010518363,1776537470,960447360,4267822970,4005896314,1435016340,1929119313,2913464185,1310552629,3579470798,3724818106,2579771631,1594623892,417127293,2715217907,2696228731,1508390405,3994398868,3925858569,3695444102,4019471449,3129199795,3770928635,3520741761,990456497,4187484609,2783367035,21106139,3840405339,631373633,3783325702,532942976,396095098,3548038825,4267192484,2564721535,2011709262,2039648873,620404603,3776170075,2898526339,3612357925,4159332703,1645490516,223693667,1567101217,3362177881,1029951347,3470931136,3570957959,1550265121,119497089,972513919,907948164,3840628539,1613718692,3594177948,465323573,2659255085,654439692,2575596212,2699288441,3127702412,277098644,624404830,4100943870,2717858591,546110314,2403699828,3655377447,1321679412,4236791657,1045293279,4010672264,895050893,2319792268,494945126,1914543101,2777056443,3894764339,2219737618,311263384,4275257268,3458730721,669096869,3584475730,3835122877,3319158237,3949359204,2005142349,2713102337,2228954793,3769984788,569394103,3855636576,1425027204,108000370,2736431443,3671869269,3043122623,1750473702,2211081108,762237499,3972989403,2798899386,3061857628,2943854345,867476300,964413654,1591880597,1594774276,2179821409,552026980,3026064248,3726140315,2283577634,3110545105,2152310760,582474363,1582640421,1383256631,2043843868,3322775884,1217180674,463797851,2763038571,480777679,2718707717,2289164131,3118346187,214354409,200212307,3810608407,3025414197,2674075964,3997296425,1847405948,1342460550,510035443,4080271814,815934613,833030224,1620250387,1945732119,2703661145,3966000196,1388869545,3456054182,2687178561,2092620194,562037615,1356438536,3409922145,3261847397,1688467115,2150901366,631725691,3840332284,549916902,3455104640,394546491,837744717,2114462948,751520235,2221554606,2415360136,3999097078,2063029875,803036379,2702586305,821456707,3019566164,360699898,4018502092,3511869016,3677355358,2402471449,812317050,49299192,2570164949,3259169295,2816732080,3331213574,3101303564,2156015656,3705598920,3546263921,143268808,3200304480,1638124008,3165189453,3341807610,578956953,2193977524,3638120073,2333881532,807278310,658237817,2969561766,1641658566,11683945,3086995007,148645947,1138423386,4158756760,1981396783,2401016740,3699783584,380097457,2680394679,2803068651,3334260286,441530178,4016580796,1375954390,761952171,891809099,2183123478,157052462,3683840763,1592404427,341349109,2438483839,1417898363,644327628,2233032776,2353769706,2201510100,220455161,1815641738,182899273,2995019788,3627381533,3702638151,2890684138,1052606899,588164016,1681439879,4038439418,2405343923,4229449282,167996282,1336969661,1688053129,2739224926,1543734051,1046297529,1138201970,2121126012,115334942,1819067631,1902159161,1941945968,2206692869,1159982321],s[2]=[2381300288,637164959,3952098751,3893414151,1197506559,916448331,2350892612,2932787856,3199334847,4009478890,3905886544,1373570990,2450425862,4037870920,3778841987,2456817877,286293407,124026297,3001279700,1028597854,3115296800,4208886496,2691114635,2188540206,1430237888,1218109995,3572471700,308166588,570424558,2187009021,2455094765,307733056,1310360322,3135275007,1384269543,2388071438,863238079,2359263624,2801553128,3380786597,2831162807,1470087780,1728663345,4072488799,1090516929,532123132,2389430977,1132193179,2578464191,3051079243,1670234342,1434557849,2711078940,1241591150,3314043432,3435360113,3091448339,1812415473,2198440252,267246943,796911696,3619716990,38830015,1526438404,2806502096,374413614,2943401790,1489179520,1603809326,1920779204,168801282,260042626,2358705581,1563175598,2397674057,1356499128,2217211040,514611088,2037363785,2186468373,4022173083,2792511869,2913485016,1173701892,4200428547,3896427269,1334932762,2455136706,602925377,2835607854,1613172210,41346230,2499634548,2457437618,2188827595,41386358,4172255629,1313404830,2405527007,3801973774,2217704835,873260488,2528884354,2478092616,4012915883,2555359016,2006953883,2463913485,575479328,2218240648,2099895446,660001756,2341502190,3038761536,3888151779,3848713377,3286851934,1022894237,1620365795,3449594689,1551255054,15374395,3570825345,4249311020,4151111129,3181912732,310226346,1133119310,530038928,136043402,2476768958,3107506709,2544909567,1036173560,2367337196,1681395281,1758231547,3641649032,306774401,1575354324,3716085866,1990386196,3114533736,2455606671,1262092282,3124342505,2768229131,4210529083,1833535011,423410938,660763973,2187129978,1639812e3,3508421329,3467445492,310289298,272797111,2188552562,2456863912,310240523,677093832,1013118031,901835429,3892695601,1116285435,3036471170,1337354835,243122523,520626091,277223598,4244441197,4194248841,1766575121,594173102,316590669,742362309,3536858622,4176435350,3838792410,2501204839,1229605004,3115755532,1552908988,2312334149,979407927,3959474601,1148277331,176638793,3614686272,2083809052,40992502,1340822838,2731552767,3535757508,3560899520,1354035053,122129617,7215240,2732932949,3118912700,2718203926,2539075635,3609230695,3725561661,1928887091,2882293555,1988674909,2063640240,2491088897,1459647954,4189817080,2302804382,1113892351,2237858528,1927010603,4002880361,1856122846,1594404395,2944033133,3855189863,3474975698,1643104450,4054590833,3431086530,1730235576,2984608721,3084664418,2131803598,4178205752,267404349,1617849798,1616132681,1462223176,736725533,2327058232,551665188,2945899023,1749386277,2575514597,1611482493,674206544,2201269090,3642560800,728599968,1680547377,2620414464,1388111496,453204106,4156223445,1094905244,2754698257,2201108165,3757000246,2704524545,3922940700,3996465027],s[3]=[2645754912,532081118,2814278639,3530793624,1246723035,1689095255,2236679235,4194438865,2116582143,3859789411,157234593,2045505824,4245003587,1687664561,4083425123,605965023,672431967,1336064205,3376611392,214114848,4258466608,3232053071,489488601,605322005,3998028058,264917351,1912574028,756637694,436560991,202637054,135989450,85393697,2152923392,3896401662,2895836408,2145855233,3535335007,115294817,3147733898,1922296357,3464822751,4117858305,1037454084,2725193275,2127856640,1417604070,1148013728,1827919605,642362335,2929772533,909348033,1346338451,3547799649,297154785,1917849091,4161712827,2883604526,3968694238,1469521537,3780077382,3375584256,1763717519,136166297,4290970789,1295325189,2134727907,2798151366,1566297257,3672928234,2677174161,2672173615,965822077,2780786062,289653839,1133871874,3491843819,35685304,1068898316,418943774,672553190,642281022,2346158704,1954014401,3037126780,4079815205,2030668546,3840588673,672283427,1776201016,359975446,3750173538,555499703,2769985273,1324923,69110472,152125443,3176785106,3822147285,1340634837,798073664,1434183902,15393959,216384236,1303690150,3881221631,3711134124,3960975413,106373927,2578434224,1455997841,1801814300,1578393881,1854262133,3188178946,3258078583,2302670060,1539295533,3505142565,3078625975,2372746020,549938159,3278284284,2620926080,181285381,2865321098,3970029511,68876850,488006234,1728155692,2608167508,836007927,2435231793,919367643,3339422534,3655756360,1457871481,40520939,1380155135,797931188,234455205,2255801827,3990488299,397000196,739833055,3077865373,2871719860,4022553888,772369276,390177364,3853951029,557662966,740064294,1640166671,1699928825,3535942136,622006121,3625353122,68743880,1742502,219489963,1664179233,1577743084,1236991741,410585305,2366487942,823226535,1050371084,3426619607,3586839478,212779912,4147118561,1819446015,1911218849,530248558,3486241071,3252585495,2886188651,3410272728,2342195030,20547779,2982490058,3032363469,3631753222,312714466,1870521650,1493008054,3491686656,615382978,4103671749,2534517445,1932181,2196105170,278426614,6369430,3274544417,2913018367,697336853,2143000447,2946413531,701099306,1558357093,2805003052,3500818408,2321334417,3567135975,216290473,3591032198,23009561,1996984579,3735042806,2024298078,3739440863,569400510,2339758983,3016033873,3097871343,3639523026,3844324983,3256173865,795471839,2951117563,4101031090,4091603803,3603732598,971261452,534414648,428311343,3389027175,2844869880,694888862,1227866773,2456207019,3043454569,2614353370,3749578031,3676663836,459166190,4132644070,1794958188,51825668,2252611902,3084671440,2036672799,3436641603,1099053433,2469121526,3059204941,1323291266,2061838604,1018778475,2233344254,2553501054,334295216,3556750194,1065731521,183467730],s[4]=[2127105028,745436345,2601412319,2788391185,3093987327,500390133,1155374404,389092991,150729210,3891597772,3523549952,1935325696,716645080,946045387,2901812282,1774124410,3869435775,4039581901,3293136918,3438657920,948246080,363898952,3867875531,1286266623,1598556673,68334250,630723836,1104211938,1312863373,613332731,2377784574,1101634306,441780740,3129959883,1917973735,2510624549,3238456535,2544211978,3308894634,1299840618,4076074851,1756332096,3977027158,297047435,3790297736,2265573040,3621810518,1311375015,1667687725,47300608,3299642885,2474112369,201668394,1468347890,576830978,3594690761,3742605952,1958042578,1747032512,3558991340,1408974056,3366841779,682131401,1033214337,1545599232,4265137049,206503691,103024618,2855227313,1337551222,2428998917,2963842932,4015366655,3852247746,2796956967,3865723491,3747938335,247794022,3755824572,702416469,2434691994,397379957,851939612,2314769512,218229120,1380406772,62274761,214451378,3170103466,2276210409,3845813286,28563499,446592073,1693330814,3453727194,29968656,3093872512,220656637,2470637031,77972100,1667708854,1358280214,4064765667,2395616961,325977563,4277240721,4220025399,3605526484,3355147721,811859167,3069544926,3962126810,652502677,3075892249,4132761541,3498924215,1217549313,3250244479,3858715919,3053989961,1538642152,2279026266,2875879137,574252750,3324769229,2651358713,1758150215,141295887,2719868960,3515574750,4093007735,4194485238,1082055363,3417560400,395511885,2966884026,179534037,3646028556,3738688086,1092926436,2496269142,257381841,3772900718,1636087230,1477059743,2499234752,3811018894,2675660129,3285975680,90732309,1684827095,1150307763,1723134115,3237045386,1769919919,1240018934,815675215,750138730,2239792499,1234303040,1995484674,138143821,675421338,1145607174,1936608440,3238603024,2345230278,2105974004,323969391,779555213,3004902369,2861610098,1017501463,2098600890,2628620304,2940611490,2682542546,1171473753,3656571411,3687208071,4091869518,393037935,159126506,1662887367,1147106178,391545844,3452332695,1891500680,3016609650,1851642611,546529401,1167818917,3194020571,2848076033,3953471836,575554290,475796850,4134673196,450035699,2351251534,844027695,1080539133,86184846,1554234488,3692025454,1972511363,2018339607,1491841390,1141460869,1061690759,4244549243,2008416118,2351104703,2868147542,1598468138,722020353,1027143159,212344630,1387219594,1725294528,3745187956,2500153616,458938280,4129215917,1828119673,544571780,3503225445,2297937496,1241802790,267843827,2694610800,1397140384,1558801448,3782667683,1806446719,929573330,2234912681,400817706,616011623,4121520928,3603768725,1761550015,1968522284,4053731006,4192232858,4005120285,872482584,3140537016,3894607381,2287405443,1963876937,3663887957,1584857e3,2975024454,1833426440,4025083860],s[5]=[4143615901,749497569,1285769319,3795025788,2514159847,23610292,3974978748,844452780,3214870880,3751928557,2213566365,1676510905,448177848,3730751033,4086298418,2307502392,871450977,3222878141,4110862042,3831651966,2735270553,1310974780,2043402188,1218528103,2736035353,4274605013,2702448458,3936360550,2693061421,162023535,2827510090,687910808,23484817,3784910947,3371371616,779677500,3503626546,3473927188,4157212626,3500679282,4248902014,2466621104,3899384794,1958663117,925738300,1283408968,3669349440,1840910019,137959847,2679828185,1239142320,1315376211,1547541505,1690155329,739140458,3128809933,3933172616,3876308834,905091803,1548541325,4040461708,3095483362,144808038,451078856,676114313,2861728291,2469707347,993665471,373509091,2599041286,4025009006,4170239449,2149739950,3275793571,3749616649,2794760199,1534877388,572371878,2590613551,1753320020,3467782511,1405125690,4270405205,633333386,3026356924,3475123903,632057672,2846462855,1404951397,3882875879,3915906424,195638627,2385783745,3902872553,1233155085,3355999740,2380578713,2702246304,2144565621,3663341248,3894384975,2502479241,4248018925,3094885567,1594115437,572884632,3385116731,767645374,1331858858,1475698373,3793881790,3532746431,1321687957,619889600,1121017241,3440213920,2070816767,2833025776,1933951238,4095615791,890643334,3874130214,859025556,360630002,925594799,1764062180,3920222280,4078305929,979562269,2810700344,4087740022,1949714515,546639971,1165388173,3069891591,1495988560,922170659,1291546247,2107952832,1813327274,3406010024,3306028637,4241950635,153207855,2313154747,1608695416,1150242611,1967526857,721801357,1220138373,3691287617,3356069787,2112743302,3281662835,1111556101,1778980689,250857638,2298507990,673216130,2846488510,3207751581,3562756981,3008625920,3417367384,2198807050,529510932,3547516680,3426503187,2364944742,102533054,2294910856,1617093527,1204784762,3066581635,1019391227,1069574518,1317995090,1691889997,3661132003,510022745,3238594800,1362108837,1817929911,2184153760,805817662,1953603311,3699844737,120799444,2118332377,207536705,2282301548,4120041617,145305846,2508124933,3086745533,3261524335,1877257368,2977164480,3160454186,2503252186,4221677074,759945014,254147243,2767453419,3801518371,629083197,2471014217,907280572,3900796746,940896768,2751021123,2625262786,3161476951,3661752313,3260732218,1425318020,2977912069,1496677566,3988592072,2140652971,3126511541,3069632175,977771578,1392695845,1698528874,1411812681,1369733098,1343739227,3620887944,1142123638,67414216,3102056737,3088749194,1626167401,2546293654,3941374235,697522451,33404913,143560186,2595682037,994885535,1247667115,3859094837,2699155541,3547024625,4114935275,2968073508,3199963069,2732024527,1237921620,951448369,1898488916,1211705605,2790989240,2233243581,3598044975],s[6]=[2246066201,858518887,1714274303,3485882003,713916271,2879113490,3730835617,539548191,36158695,1298409750,419087104,1358007170,749914897,2989680476,1261868530,2995193822,2690628854,3443622377,3780124940,3796824509,2976433025,4259637129,1551479e3,512490819,1296650241,951993153,2436689437,2460458047,144139966,3136204276,310820559,3068840729,643875328,1969602020,1680088954,2185813161,3283332454,672358534,198762408,896343282,276269502,3014846926,84060815,197145886,376173866,3943890818,3813173521,3545068822,1316698879,1598252827,2633424951,1233235075,859989710,2358460855,3503838400,3409603720,1203513385,1193654839,2792018475,2060853022,207403770,1144516871,3068631394,1121114134,177607304,3785736302,326409831,1929119770,2983279095,4183308101,3474579288,3200513878,3228482096,119610148,1170376745,3378393471,3163473169,951863017,3337026068,3135789130,2907618374,1183797387,2015970143,4045674555,2182986399,2952138740,3928772205,384012900,2454997643,10178499,2879818989,2596892536,111523738,2995089006,451689641,3196290696,235406569,1441906262,3890558523,3013735005,4158569349,1644036924,376726067,1006849064,3664579700,2041234796,1021632941,1374734338,2566452058,371631263,4007144233,490221539,206551450,3140638584,1053219195,1853335209,3412429660,3562156231,735133835,1623211703,3104214392,2738312436,4096837757,3366392578,3110964274,3956598718,3196820781,2038037254,3877786376,2339753847,300912036,3766732888,2372630639,1516443558,4200396704,1574567987,4069441456,4122592016,2699739776,146372218,2748961456,2043888151,35287437,2596680554,655490400,1132482787,110692520,1031794116,2188192751,1324057718,1217253157,919197030,686247489,3261139658,1028237775,3135486431,3059715558,2460921700,986174950,2661811465,4062904701,2752986992,3709736643,367056889,1353824391,731860949,1650113154,1778481506,784341916,357075625,3608602432,1074092588,2480052770,3811426202,92751289,877911070,3600361838,1231880047,480201094,3756190983,3094495953,434011822,87971354,363687820,1717726236,1901380172,3926403882,2481662265,400339184,1490350766,2661455099,1389319756,2558787174,784598401,1983468483,30828846,3550527752,2716276238,3841122214,1765724805,1955612312,1277890269,1333098070,1564029816,2704417615,1026694237,3287671188,1260819201,3349086767,1016692350,1582273796,1073413053,1995943182,694588404,1025494639,3323872702,3551898420,4146854327,453260480,1316140391,1435673405,3038941953,3486689407,1622062951,403978347,817677117,950059133,4246079218,3278066075,1486738320,1417279718,481875527,2549965225,3933690356,760697757,1452955855,3897451437,1177426808,1702951038,4085348628,2447005172,1084371187,3516436277,3068336338,1073369276,1027665953,3284188590,1230553676,1368340146,2226246512,267243139,2274220762,4070734279,2497715176,2423353163,2504755875],s[7]=[3793104909,3151888380,2817252029,895778965,2005530807,3871412763,237245952,86829237,296341424,3851759377,3974600970,2475086196,709006108,1994621201,2972577594,937287164,3734691505,168608556,3189338153,2225080640,3139713551,3033610191,3025041904,77524477,185966941,1208824168,2344345178,1721625922,3354191921,1066374631,1927223579,1971335949,2483503697,1551748602,2881383779,2856329572,3003241482,48746954,1398218158,2050065058,313056748,4255789917,393167848,1912293076,940740642,3465845460,3091687853,2522601570,2197016661,1727764327,364383054,492521376,1291706479,3264136376,1474851438,1685747964,2575719748,1619776915,1814040067,970743798,1561002147,2925768690,2123093554,1880132620,3151188041,697884420,2550985770,2607674513,2659114323,110200136,1489731079,997519150,1378877361,3527870668,478029773,2766872923,1022481122,431258168,1112503832,897933369,2635587303,669726182,3383752315,918222264,163866573,3246985393,3776823163,114105080,1903216136,761148244,3571337562,1690750982,3166750252,1037045171,1888456500,2010454850,642736655,616092351,365016990,1185228132,4174898510,1043824992,2023083429,2241598885,3863320456,3279669087,3674716684,108438443,2132974366,830746235,606445527,4173263986,2204105912,1844756978,2532684181,4245352700,2969441100,3796921661,1335562986,4061524517,2720232303,2679424040,634407289,885462008,3294724487,3933892248,2094100220,339117932,4048830727,3202280980,1458155303,2689246273,1022871705,2464987878,3714515309,353796843,2822958815,4256850100,4052777845,551748367,618185374,3778635579,4020649912,1904685140,3069366075,2670879810,3407193292,2954511620,4058283405,2219449317,3135758300,1120655984,3447565834,1474845562,3577699062,550456716,3466908712,2043752612,881257467,869518812,2005220179,938474677,3305539448,3850417126,1315485940,3318264702,226533026,965733244,321539988,1136104718,804158748,573969341,3708209826,937399083,3290727049,2901666755,1461057207,4013193437,4066861423,3242773476,2421326174,1581322155,3028952165,786071460,3900391652,3918438532,1485433313,4023619836,3708277595,3678951060,953673138,1467089153,1930354364,1533292819,2492563023,1346121658,1685000834,1965281866,3765933717,4190206607,2052792609,3515332758,690371149,3125873887,2180283551,2903598061,3933952357,436236910,289419410,14314871,1242357089,2904507907,1616633776,2666382180,585885352,3471299210,2699507360,1432659641,277164553,3354103607,770115018,2303809295,3741942315,3177781868,2853364978,2269453327,3774259834,987383833,1290892879,225909803,1741533526,890078084,1496906255,1111072499,916028167,243534141,1252605537,2204162171,531204876,290011180,3916834213,102027703,237315147,209093447,1486785922,220223953,2758195998,4175039106,82940208,3127791296,2569425252,518464269,1353887104,3941492737,2377294467,3935040926]}function Pf(e){this.cast5=new Uf,this.cast5.setKey(e),this.encrypt=function(e){return this.cast5.encrypt(e)}}Cf.keySize=Cf.prototype.keySize=24,Cf.blockSize=Cf.prototype.blockSize=8,Pf.blockSize=Pf.prototype.blockSize=8,Pf.keySize=Pf.prototype.keySize=16;const Df=4294967295;function xf(e,t){return(e<<t|e>>>32-t)&Df}function Qf(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24}function Rf(e,t,r){e.splice(t,4,255&r,r>>>8&255,r>>>16&255,r>>>24&255)}function Tf(e,t){return e>>>8*t&255}function Mf(e){this.tf=function(){let e=null,t=null,r=-1,n=[],i=[[],[],[],[]];function s(e){return i[0][Tf(e,0)]^i[1][Tf(e,1)]^i[2][Tf(e,2)]^i[3][Tf(e,3)]}function a(e){return i[0][Tf(e,3)]^i[1][Tf(e,0)]^i[2][Tf(e,1)]^i[3][Tf(e,2)]}function o(e,t){let r=s(t[0]),i=a(t[1]);t[2]=xf(t[2]^r+i+n[4*e+8]&Df,31),t[3]=xf(t[3],1)^r+2*i+n[4*e+9]&Df,r=s(t[2]),i=a(t[3]),t[0]=xf(t[0]^r+i+n[4*e+10]&Df,31),t[1]=xf(t[1],1)^r+2*i+n[4*e+11]&Df}function c(e,t){let r=s(t[0]),i=a(t[1]);t[2]=xf(t[2],1)^r+i+n[4*e+10]&Df,t[3]=xf(t[3]^r+2*i+n[4*e+11]&Df,31),r=s(t[2]),i=a(t[3]),t[0]=xf(t[0],1)^r+i+n[4*e+8]&Df,t[1]=xf(t[1]^r+2*i+n[4*e+9]&Df,31)}return{name:"twofish",blocksize:16,open:function(t){let r,s,a,o,c;e=t;const u=[],h=[],l=[];let y;const f=[];let g,p,d;const A=[[8,1,7,13,6,15,3,2,0,11,5,9,14,12,10,4],[2,8,11,13,15,7,6,14,3,1,9,4,0,10,12,5]],w=[[14,12,11,8,1,2,3,5,15,4,10,6,7,0,9,13],[1,14,2,11,4,12,3,7,6,13,10,5,15,9,0,8]],m=[[11,10,5,14,6,13,9,0,12,8,15,3,2,4,7,1],[4,12,7,5,1,6,9,10,0,14,13,8,2,11,3,15]],b=[[13,7,15,4,1,2,6,14,9,11,3,0,8,5,12,10],[11,9,5,1,12,3,13,14,6,4,7,15,2,0,8,10]],k=[0,8,1,9,2,10,3,11,4,12,5,13,6,14,7,15],E=[0,9,2,11,4,13,6,15,8,1,10,3,12,5,14,7],v=[[],[]],B=[[],[],[],[]];function S(e){return e^e>>2^[0,90,180,238][3&e]}function I(e){return e^e>>1^e>>2^[0,238,180,90][3&e]}function K(e,t){let r,n,i;for(r=0;r<8;r++)n=t>>>24,t=t<<8&Df|e>>>24,e=e<<8&Df,i=n<<1,128&n&&(i^=333),t^=n^i<<16,i^=n>>>1,1&n&&(i^=166),t^=i<<24|i<<8;return t}function C(e,t){const r=t>>4,n=15&t,i=A[e][r^n],s=w[e][k[n]^E[r]];return b[e][k[s]^E[i]]<<4|m[e][i^s]}function U(e,t){let r=Tf(e,0),n=Tf(e,1),i=Tf(e,2),s=Tf(e,3);switch(y){case 4:r=v[1][r]^Tf(t[3],0),n=v[0][n]^Tf(t[3],1),i=v[0][i]^Tf(t[3],2),s=v[1][s]^Tf(t[3],3);case 3:r=v[1][r]^Tf(t[2],0),n=v[1][n]^Tf(t[2],1),i=v[0][i]^Tf(t[2],2),s=v[0][s]^Tf(t[2],3);case 2:r=v[0][v[0][r]^Tf(t[1],0)]^Tf(t[0],0),n=v[0][v[1][n]^Tf(t[1],1)]^Tf(t[0],1),i=v[1][v[0][i]^Tf(t[1],2)]^Tf(t[0],2),s=v[1][v[1][s]^Tf(t[1],3)]^Tf(t[0],3)}return B[0][r]^B[1][n]^B[2][i]^B[3][s]}for(e=e.slice(0,32),r=e.length;16!==r&&24!==r&&32!==r;)e[r++]=0;for(r=0;r<e.length;r+=4)l[r>>2]=Qf(e,r);for(r=0;r<256;r++)v[0][r]=C(0,r),v[1][r]=C(1,r);for(r=0;r<256;r++)g=v[1][r],p=S(g),d=I(g),B[0][r]=g+(p<<8)+(d<<16)+(d<<24),B[2][r]=p+(d<<8)+(g<<16)+(d<<24),g=v[0][r],p=S(g),d=I(g),B[1][r]=d+(d<<8)+(p<<16)+(g<<24),B[3][r]=p+(g<<8)+(d<<16)+(p<<24);for(y=l.length/2,r=0;r<y;r++)s=l[r+r],u[r]=s,a=l[r+r+1],h[r]=a,f[y-r-1]=K(s,a);for(r=0;r<40;r+=2)s=16843009*r,a=s+16843009,s=U(s,u),a=xf(U(a,h),8),n[r]=s+a&Df,n[r+1]=xf(s+2*a,9);for(r=0;r<256;r++)switch(s=a=o=c=r,y){case 4:s=v[1][s]^Tf(f[3],0),a=v[0][a]^Tf(f[3],1),o=v[0][o]^Tf(f[3],2),c=v[1][c]^Tf(f[3],3);case 3:s=v[1][s]^Tf(f[2],0),a=v[1][a]^Tf(f[2],1),o=v[0][o]^Tf(f[2],2),c=v[0][c]^Tf(f[2],3);case 2:i[0][r]=B[0][v[0][v[0][s]^Tf(f[1],0)]^Tf(f[0],0)],i[1][r]=B[1][v[0][v[1][a]^Tf(f[1],1)]^Tf(f[0],1)],i[2][r]=B[2][v[1][v[0][o]^Tf(f[1],2)]^Tf(f[0],2)],i[3][r]=B[3][v[1][v[1][c]^Tf(f[1],3)]^Tf(f[0],3)]}},close:function(){n=[],i=[[],[],[],[]]},encrypt:function(e,i){t=e,r=i;const s=[Qf(t,r)^n[0],Qf(t,r+4)^n[1],Qf(t,r+8)^n[2],Qf(t,r+12)^n[3]];for(let e=0;e<8;e++)o(e,s);return Rf(t,r,s[2]^n[4]),Rf(t,r+4,s[3]^n[5]),Rf(t,r+8,s[0]^n[6]),Rf(t,r+12,s[1]^n[7]),r+=16,t},decrypt:function(e,i){t=e,r=i;const s=[Qf(t,r)^n[4],Qf(t,r+4)^n[5],Qf(t,r+8)^n[6],Qf(t,r+12)^n[7]];for(let e=7;e>=0;e--)c(e,s);Rf(t,r,s[2]^n[0]),Rf(t,r+4,s[3]^n[1]),Rf(t,r+8,s[0]^n[2]),Rf(t,r+12,s[1]^n[3]),r+=16},finalize:function(){return t}}}(),this.tf.open(Array.from(e),0),this.encrypt=function(e){return this.tf.encrypt(Array.from(e),0)}}function Lf(){}function Ff(e){this.bf=new Lf,this.bf.init(e),this.encrypt=function(e){return this.bf.encryptBlock(e)}}Mf.keySize=Mf.prototype.keySize=32,Mf.blockSize=Mf.prototype.blockSize=16,Lf.prototype.BLOCKSIZE=8,Lf.prototype.SBOXES=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]],Lf.prototype.PARRAY=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],Lf.prototype.NN=16,Lf.prototype._clean=function(e){if(e<0){e=(2147483647&e)+2147483648}return e},Lf.prototype._F=function(e){let t;const r=255&e,n=255&(e>>>=8),i=255&(e>>>=8),s=255&(e>>>=8);return t=this.sboxes[0][s]+this.sboxes[1][i],t^=this.sboxes[2][n],t+=this.sboxes[3][r],t},Lf.prototype._encryptBlock=function(e){let t,r=e[0],n=e[1];for(t=0;t<this.NN;++t){r^=this.parray[t],n=this._F(r)^n;const e=r;r=n,n=e}r^=this.parray[this.NN+0],n^=this.parray[this.NN+1],e[0]=this._clean(n),e[1]=this._clean(r)},Lf.prototype.encryptBlock=function(e){let t;const r=[0,0],n=this.BLOCKSIZE/2;for(t=0;t<this.BLOCKSIZE/2;++t)r[0]=r[0]<<8|255&e[t+0],r[1]=r[1]<<8|255&e[t+n];this._encryptBlock(r);const i=[];for(t=0;t<this.BLOCKSIZE/2;++t)i[t+0]=r[0]>>>24-8*t&255,i[t+n]=r[1]>>>24-8*t&255;return i},Lf.prototype._decryptBlock=function(e){let t,r=e[0],n=e[1];for(t=this.NN+1;t>1;--t){r^=this.parray[t],n=this._F(r)^n;const e=r;r=n,n=e}r^=this.parray[1],n^=this.parray[0],e[0]=this._clean(n),e[1]=this._clean(r)},Lf.prototype.init=function(e){let t,r=0;for(this.parray=[],t=0;t<this.NN+2;++t){let n=0;for(let t=0;t<4;++t)n=n<<8|255&e[r],++r>=e.length&&(r=0);this.parray[t]=this.PARRAY[t]^n}for(this.sboxes=[],t=0;t<4;++t)for(this.sboxes[t]=[],r=0;r<256;++r)this.sboxes[t][r]=this.SBOXES[t][r];const n=[0,0];for(t=0;t<this.NN+2;t+=2)this._encryptBlock(n),this.parray[t+0]=n[0],this.parray[t+1]=n[1];for(t=0;t<4;++t)for(r=0;r<256;r+=2)this._encryptBlock(n),this.sboxes[t][r+0]=n[0],this.sboxes[t][r+1]=n[1]},Ff.keySize=Ff.prototype.keySize=16,Ff.blockSize=Ff.prototype.blockSize=8;const Nf=new Map(Object.entries({tripledes:Cf,cast5:Pf,twofish:Mf,blowfish:Ff}));var Of=/*#__PURE__*/Object.freeze({__proto__:null,legacyCiphers:Nf});
17
- /*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */const _f=Ru,Hf=Zu;function zf(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return 0===r}function Gf(...e){const t=e=>"number"==typeof e?e:e.bytesLen,r=e.reduce(((e,r)=>e+t(r)),0);return{bytesLen:r,encode:n=>{const i=new Uint8Array(r);for(let r=0,s=0;r<e.length;r++){const a=e[r],o=t(a),c="number"==typeof a?n[r]:a.encode(n[r]);_f(c,o),i.set(c,s),"number"!=typeof a&&c.fill(0),s+=o}return i},decode:n=>{_f(n,r);const i=[];for(const r of e){const e=t(r),s=n.subarray(0,e);i.push("number"==typeof r?s:r.decode(s)),n=n.subarray(e)}return i}}}function qf(e,t){const r=t*e.bytesLen;return{bytesLen:r,encode:n=>{if(n.length!==t)throw Error(`vecCoder.encode: wrong length=${n.length}. Expected: ${t}`);const i=new Uint8Array(r);for(let t=0,r=0;t<n.length;t++){const s=e.encode(n[t]);i.set(s,r),s.fill(0),r+=s.length}return i},decode:t=>{_f(t,r);const n=[];for(let r=0;r<t.length;r+=e.bytesLen)n.push(e.decode(t.subarray(r,r+e.bytesLen)));return n}}}function jf(...e){for(const t of e)if(Array.isArray(t))for(const e of t)e.fill(0);else t.fill(0)}function Vf(e){return(1<<e)-1}
18
- /*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */function Yf(e,t=8){const r=e.toString(2).padStart(8,"0").slice(-t).padStart(7,"0").split("").reverse().join("");return Number.parseInt(r,2)}const Zf=e=>{const{newPoly:t,N:r,Q:n,F:i,ROOT_OF_UNITY:s,brvBits:a,isKyber:o}=e,c=(e,t=n)=>{const r=e%t|0;return 0|(r>=0?r:t+r)};const u=function(){const e=t(r);for(let t=0;t<r;t++){const r=Yf(t,a),i=BigInt(s)**BigInt(r)%BigInt(n);e[t]=0|Number(i)}return e}(),h=o?128:r,l=o?1:0,y={encode:e=>{for(let t=1,n=128;n>l;n>>=1)for(let i=0;i<r;i+=2*n){const r=u[t++];for(let t=i;t<i+n;t++){const i=c(r*e[t+n]);e[t+n]=0|c(e[t]-i),e[t]=0|c(e[t]+i)}}return e},decode:e=>{for(let t=h-1,n=1+l;n<h+l;n<<=1)for(let i=0;i<r;i+=2*n){const r=u[t--];for(let t=i;t<i+n;t++){const i=e[t];e[t]=c(i+e[t+n]),e[t+n]=c(r*(e[t+n]-i))}}for(let t=0;t<e.length;t++)e[t]=c(i*e[t]);return e}};return{mod:c,smod:(e,t=n)=>{const r=0|c(e,t);return 0|(r>t>>1?r-t:r)},nttZetas:u,NTT:y,bitsCoder:(e,n)=>{const i=Vf(e),s=e*(r/8);return{bytesLen:s,encode:t=>{const r=new Uint8Array(s);for(let s=0,a=0,o=0,c=0;s<t.length;s++)for(a|=(n.encode(t[s])&i)<<o,o+=e;o>=8;o-=8,a>>=8)r[c++]=a&Vf(o);return r},decode:s=>{const a=t(r);for(let t=0,r=0,o=0,c=0;t<s.length;t++)for(r|=s[t]<<o,o+=8;o>=e;o-=e,r>>=e)a[c++]=n.decode(r&i);return a}}}}},Wf=e=>(t,r)=>{r||(r=e.blockLen);const n=new Uint8Array(t.length+2);n.set(t);const i=t.length,s=new Uint8Array(r);let a=e.create({}),o=0,c=0;return{stats:()=>({calls:o,xofs:c}),get:(t,r)=>(n[i+0]=t,n[i+1]=r,a.destroy(),a=e.create({}).update(n),o++,()=>(c++,a.xofInto(s))),clean:()=>{a.destroy(),s.fill(0),n.fill(0)}}},Jf=/* @__PURE__ */Wf(yy),Xf=/* @__PURE__ */Wf(fy),$f=256,eg=3329,{mod:tg,nttZetas:rg,NTT:ng,bitsCoder:ig}=Zf({N:$f,Q:eg,F:3303,ROOT_OF_UNITY:17,newPoly:e=>new Uint16Array(e),brvBits:7,isKyber:!0}),sg=e=>ig(e,(e=>{if(e>=12)return{encode:e=>e,decode:e=>e};const t=2**(e-1);return{encode:t=>((t<<e)+eg/2)/eg,decode:r=>r*eg+t>>>e}})(e));function ag(e,t){for(let r=0;r<$f;r++)e[r]=tg(e[r]+t[r])}function og(e,t){for(let a=0;a<128;a++){let o=rg[64+(a>>1)];1&a&&(o=-o);const{c0:c,c1:u}=(r=e[2*a+0],n=e[2*a+1],i=t[2*a+0],s=t[2*a+1],{c0:tg(n*s*o+r*i),c1:tg(r*s+n*i)});e[2*a+0]=c,e[2*a+1]=u}var r,n,i,s;return e}function cg(e){const t=new Uint16Array($f);for(let r=0;r<$f;){const n=e();if(n.length%3)throw Error("SampleNTT: unaligned block");for(let e=0;r<$f&&e+3<=n.length;e+=3){const i=4095&(n[e+0]|n[e+1]<<8),s=4095&(n[e+1]>>4|n[e+2]<<4);i<eg&&(t[r++]=i),r<$f&&s<eg&&(t[r++]=s)}}return t}function ug(e,t,r,n){const i=e(n*$f/4,t,r),s=new Uint16Array($f),a=Fu(i);let o=0;for(let e=0,t=0,r=0,i=0;e<a.length;e++){let c=a[e];for(let e=0;e<32;e++)r+=1&c,c>>=1,o+=1,o===n?(i=r,r=0):o===2*n&&(s[t++]=tg(i-r),r=0,o=0)}if(o)throw Error("sampleCBD: leftover bits: "+o);return s}const hg=e=>{const{K:t,PRF:r,XOF:n,HASH512:i,ETA1:s,ETA2:a,du:o,dv:c}=e,u=sg(1),h=sg(c),l=sg(o),y=Gf(qf(sg(12),t),32),f=qf(sg(12),t),g=Gf(qf(l,t),h),p=Gf(32,32);return{secretCoder:f,secretKeyLen:f.bytesLen,publicKeyLen:y.bytesLen,cipherTextLen:g.bytesLen,keygen:e=>{const a=new Uint8Array(33);a.set(e),a[32]=t;const o=i(a),[c,u]=p.decode(o),h=[],l=[];for(let e=0;e<t;e++)h.push(ng.encode(ug(r,u,e,s)));const g=n(c);for(let e=0;e<t;e++){const n=ng.encode(ug(r,u,t+e,s));for(let r=0;r<t;r++){ag(n,og(cg(g.get(r,e)),h[r]))}l.push(n)}g.clean();const d={publicKey:y.encode([l,c]),secretKey:f.encode(h)};return jf(c,u,h,l,a,o),d},encrypt:(e,i,o)=>{const[c,h]=y.decode(e),l=[];for(let e=0;e<t;e++)l.push(ng.encode(ug(r,o,e,s)));const f=n(h),p=new Uint16Array($f),d=[];for(let e=0;e<t;e++){const n=ug(r,o,t+e,a),i=new Uint16Array($f);for(let r=0;r<t;r++){ag(i,og(cg(f.get(e,r)),l[r]))}ag(n,ng.decode(i)),d.push(n),ag(p,og(c[e],l[e])),i.fill(0)}f.clean();const A=ug(r,o,2*t,a);ag(A,ng.decode(p));const w=u.decode(i);return ag(w,A),jf(c,l,p,A),g.encode([d,w])},decrypt:(e,r)=>{const[n,i]=g.decode(e),s=f.decode(r),a=new Uint16Array($f);for(let e=0;e<t;e++)ag(a,og(s[e],ng.encode(n[e])));return function(e,t){for(let r=0;r<$f;r++)e[r]=tg(e[r]-t[r])}(i,ng.decode(a)),jf(a,s,n),u.encode(i)}}};function lg(e){const t=hg(e),{HASH256:r,HASH512:n,KDF:i}=e,{secretCoder:s,cipherTextLen:a}=t,o=t.publicKeyLen,c=Gf(t.secretKeyLen,t.publicKeyLen,32,32),u=c.bytesLen;return{publicKeyLen:o,msgLen:32,keygen:(e=Hf(64))=>{_f(e,64);const{publicKey:n,secretKey:i}=t.keygen(e.subarray(0,32)),s=r(n),a=c.encode([i,n,s,e.subarray(32)]);return jf(i,s),{publicKey:n,secretKey:a}},encapsulate:(i,a=Hf(32))=>{_f(i,o),_f(a,32);const c=i.subarray(0,384*e.K),u=s.encode(s.decode(c.slice()));if(!zf(u,c))throw jf(u),Error("ML-KEM.encapsulate: wrong publicKey modulus");jf(u);const h=n.create().update(a).update(r(i)).digest(),l=t.encrypt(i,a,h.subarray(32,64));return h.subarray(32).fill(0),{cipherText:l,sharedSecret:h.subarray(0,32)}},decapsulate:(e,r)=>{_f(r,u),_f(e,a);const[s,o,h,l]=c.decode(r),y=t.decrypt(e,s),f=n.create().update(y).update(h).digest(),g=f.subarray(0,32),p=t.encrypt(o,y,f.subarray(32,64)),d=zf(e,p),A=i.create({dkLen:32}).update(l).update(e).digest();return jf(y,p,d?A:g),d?g:A}}}const yg=/* @__PURE__ */lg({...{HASH256:uy,HASH512:hy,KDF:fy,XOF:Jf,PRF:function(e,t,r){return fy.create({dkLen:e}).update(t).update(new Uint8Array([r])).digest()}},...{N:$f,Q:eg,K:3,ETA1:2,ETA2:2,du:10,dv:4,RBGstrength:192}}),fg=256,gg=8380417,pg=13,dg=0|Math.floor((gg-1)/88),Ag=0|Math.floor((gg-1)/32),wg={K:6,L:5,D:pg,GAMMA1:2**19,GAMMA2:Ag,TAU:49,ETA:4,OMEGA:55},mg=e=>new Int32Array(e),{mod:bg,smod:kg,NTT:Eg,bitsCoder:vg}=Zf({N:fg,Q:gg,F:8347681,ROOT_OF_UNITY:1753,newPoly:mg,isKyber:!1,brvBits:8}),Bg=e=>e,Sg=(e,t=Bg,r=Bg)=>vg(e,{encode:e=>t(r(e)),decode:e=>r(t(e))}),Ig=(e,t)=>{for(let r=0;r<e.length;r++)e[r]=bg(e[r]+t[r]);return e},Kg=(e,t)=>{for(let r=0;r<e.length;r++)e[r]=bg(e[r]-t[r]);return e},Cg=e=>{for(let t=0;t<fg;t++)e[t]<<=pg;return e},Ug=(e,t)=>{for(let r=0;r<fg;r++)if(Math.abs(kg(e[r]))>=t)return!0;return!1},Pg=(e,t)=>{const r=mg(fg);for(let n=0;n<e.length;n++)r[n]=bg(e[n]*t[n]);return r};function Dg(e){const t=mg(fg);for(let r=0;r<fg;){const n=e();if(n.length%3)throw Error("RejNTTPoly: unaligned block");for(let e=0;r<fg&&e<=n.length-3;e+=3){const i=8388607&(n[e+0]|n[e+1]<<8|n[e+2]<<16);i<gg&&(t[r++]=i)}}return t}const xg=new Uint8Array(0);function Qg(e){const{K:t,L:r,GAMMA1:n,GAMMA2:i,TAU:s,ETA:a,OMEGA:o}=e,{CRH_BYTES:c,TR_BYTES:u,C_TILDE_BYTES:h,XOF128:l,XOF256:y}=e;if(![2,4].includes(a))throw Error("Wrong ETA");if(![1<<17,1<<19].includes(n))throw Error("Wrong GAMMA1");if(![dg,Ag].includes(i))throw Error("Wrong GAMMA2");const f=s*a,g=e=>{const t=bg(e),r=0|kg(t,2*i);if(t-r==gg-1)return{r1:0,r0:r-1|0};return{r1:0|Math.floor((t-r)/(2*i)),r0:r}},p=e=>g(e).r1,d=e=>g(e).r0,A=(e,t)=>{const r=Math.floor((gg-1)/(2*i)),{r1:n,r0:s}=g(t);return 1===e?s>0?0|bg(n+1,r):0|bg(n-1,r):0|n},w=e=>{const t=bg(e),r=0|kg(t,8192);return{r1:0|Math.floor((t-r)/8192),r0:r}},m={bytesLen:o+t,encode:e=>{if(!1===e)throw Error("hint.encode: hint is false");const r=new Uint8Array(o+t);for(let n=0,i=0;n<t;n++){for(let t=0;t<fg;t++)0!==e[n][t]&&(r[i++]=t);r[o+n]=i}return r},decode:e=>{const r=[];let n=0;for(let i=0;i<t;i++){const t=mg(fg);if(e[o+i]<n||e[o+i]>o)return!1;for(let r=n;r<e[o+i];r++){if(r>n&&e[r]<=e[r-1])return!1;t[e[r]]=1}n=e[o+i],r.push(t)}for(let t=n;t<o;t++)if(0!==e[t])return!1;return r}},b=Sg(2===a?3:4,(e=>a-e),(e=>{if(!(-a<=e&&e<=a))throw Error(`malformed key s1/s3 ${e} outside of ETA range [${-a}, ${a}]`);return e})),k=Sg(13,(e=>4096-e)),E=Sg(10),v=Sg(n===1<<17?18:20,(e=>kg(n-e))),B=qf(Sg(i===dg?6:4),t),S=Gf(32,qf(E,t)),I=Gf(32,32,u,qf(b,r),qf(b,t),qf(k,t)),K=Gf(h,qf(v,r),m),C=2===a?e=>e<15&&2-e%5:e=>e<9&&4-e;function U(e){const t=mg(fg);for(let r=0;r<fg;){const n=e();for(let e=0;r<fg&&e<n.length;e+=1){const i=C(15&n[e]),s=C(n[e]>>4&15);!1!==i&&(t[r++]=i),r<fg&&!1!==s&&(t[r++]=s)}}return t}const P=e=>{const t=mg(fg),r=fy.create({}).update(e),n=new Uint8Array(fy.blockLen);r.xofInto(n);const i=n.slice(0,8);for(let e=fg-s,a=8,o=0,c=0;e<fg;e++){let s=e+1;for(;s>e;)s=n[a++],a<fy.blockLen||(r.xofInto(n),a=0);t[e]=t[s],t[s]=1-((i[o]>>c++&1)<<1),c>=8&&(o++,c=0)}return t},D=e=>{const t=mg(fg),r=mg(fg);for(let n=0;n<e.length;n++){const{r0:i,r1:s}=w(e[n]);t[n]=i,r[n]=s}return{r0:t,r1:r}},x=(e,t)=>{for(let r=0;r<fg;r++)e[r]=A(t[r],e[r]);return e},Q=(e,t)=>{const r=mg(fg);let n=0;for(let o=0;o<fg;o++){const c=(s=e[o],a=t[o],s<=i||s>gg-i||s===gg-i&&0===a?0:1);r[o]=c,n+=c}var s,a;return{v:r,cnt:n}},R=Gf(32,64,32),T={signRandBytes:32,keygen:(e=Hf(32))=>{const n=new Uint8Array(34);n.set(e),n[32]=t,n[33]=r;const[i,s,a]=R.decode(fy(n,{dkLen:R.bytesLen})),o=y(s),c=[];for(let e=0;e<r;e++)c.push(U(o.get(255&e,e>>8&255)));const h=[];for(let e=r;e<r+t;e++)h.push(U(o.get(255&e,e>>8&255)));const f=c.map((e=>Eg.encode(e.slice()))),g=[],p=[],d=l(i),A=mg(fg);for(let e=0;e<t;e++){A.fill(0);for(let t=0;t<r;t++){const r=Dg(d.get(t,e));Ig(A,Pg(r,f[t]))}Eg.decode(A);const{r0:t,r1:n}=D(Ig(A,h[e]));g.push(t),p.push(n)}const w=S.encode([i,p]),m=fy(w,{dkLen:u}),b=I.encode([i,a,m,c,h,g]);return d.clean(),o.clean(),jf(i,s,a,c,h,f,A,g,p,m,n),{publicKey:w,secretKey:b}},sign:(e,s,a)=>{const[u,g,A,w,m,b]=I.decode(e),k=[],E=l(u);for(let e=0;e<t;e++){const t=[];for(let n=0;n<r;n++)t.push(Dg(E.get(n,e)));k.push(t)}E.clean();for(let e=0;e<r;e++)Eg.encode(w[e]);for(let e=0;e<t;e++)Eg.encode(m[e]),Eg.encode(b[e]);const S=fy.create({dkLen:c}).update(A).update(s).digest(),C=a||new Uint8Array(32);_f(C);const U=fy.create({dkLen:c}).update(g).update(C).update(S).digest();_f(U,c);const D=y(U,v.bytesLen);e:for(let e=0;;){const s=[];for(let t=0;t<r;t++,e++)s.push(v.decode(D.get(255&e,e>>8)()));const a=s.map((e=>Eg.encode(e.slice()))),c=[];for(let e=0;e<t;e++){const t=mg(fg);for(let n=0;n<r;n++)Ig(t,Pg(k[e][n],a[n]));Eg.decode(t),c.push(t)}const u=c.map((e=>e.map(p))),l=fy.create({dkLen:h}).update(S).update(B.encode(u)).digest(),y=Eg.encode(P(l)),g=w.map((e=>Pg(e,y)));for(let e=0;e<r;e++)if(Ig(Eg.decode(g[e]),s[e]),Ug(g[e],n-f))continue e;let A=0;const E=[];for(let e=0;e<t;e++){const t=Eg.decode(Pg(m[e],y)),r=Kg(c[e],t).map(d);if(Ug(r,i-f))continue e;const n=Eg.decode(Pg(b[e],y));if(Ug(n,i))continue e;Ig(r,n);const s=Q(r,u[e]);E.push(s.v),A+=s.cnt}if(A>o)continue;D.clean();const I=K.encode([l,g,E]);return jf(l,g,E,y,u,c,a,s,U,S,w,m,b,...k),I}throw Error("Unreachable code path reached, report this error")},verify:(e,i,s)=>{const[a,y]=S.decode(e),g=fy(e,{dkLen:u});if(s.length!==K.bytesLen)return!1;const[p,d,A]=K.decode(s);if(!1===A)return!1;for(let e=0;e<r;e++)if(Ug(d[e],n-f))return!1;const w=fy.create({dkLen:c}).update(g).update(i).digest(),m=Eg.encode(P(p)),b=d.map((e=>e.slice()));for(let e=0;e<r;e++)Eg.encode(b[e]);const k=[],E=l(a);for(let e=0;e<t;e++){const t=Pg(Eg.encode(Cg(y[e])),m),n=mg(fg);for(let t=0;t<r;t++){const r=Dg(E.get(t,e));Ig(n,Pg(r,b[t]))}const i=Eg.decode(Kg(n,t));k.push(x(i,A[e]))}E.clean();const v=fy.create({dkLen:h}).update(w).update(B.encode(k)).digest();for(const e of A){const t=e.reduce(((e,t)=>e+t),0);if(!(t<=o))return!1}for(const e of d)if(Ug(e,n-f))return!1;return zf(p,v)}},M=(e,t=xg)=>{if(_f(e),_f(t),t.length>255)throw Error("context should be less than 255 bytes");return ju(new Uint8Array([0,t.length]),t,e)};return{internal:T,keygen:T.keygen,signRandBytes:T.signRandBytes,sign:(e,t,r=xg,n)=>{const i=M(t,r),s=T.sign(e,i,n);return i.fill(0),s},verify:(e,t,r,n=xg)=>T.verify(e,M(t,n),r)}}const Rg=/* @__PURE__ */Qg({...wg,CRH_BYTES:64,TR_BYTES:64,C_TILDE_BYTES:48,XOF128:Jf,XOF256:Xf});var Tg=/*#__PURE__*/Object.freeze({__proto__:null,ml_dsa65:Rg,ml_kem768:yg});function Mg(e,t,r,n){e[t]+=r[n],e[t+1]+=r[n+1]+(e[t]<r[n])}function Lg(e,t){e[0]+=t,e[1]+=e[0]<t}function Fg(e,t,r,n,i,s,a,o){Mg(e,r,e,n),Mg(e,r,t,a);let c=e[s]^e[r],u=e[s+1]^e[r+1];e[s]=u,e[s+1]=c,Mg(e,i,e,s),c=e[n]^e[i],u=e[n+1]^e[i+1],e[n]=c>>>24^u<<8,e[n+1]=u>>>24^c<<8,Mg(e,r,e,n),Mg(e,r,t,o),c=e[s]^e[r],u=e[s+1]^e[r+1],e[s]=c>>>16^u<<16,e[s+1]=u>>>16^c<<16,Mg(e,i,e,s),c=e[n]^e[i],u=e[n+1]^e[i+1],e[n]=u>>>31^c<<1,e[n+1]=c>>>31^u<<1}const Ng=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),Og=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3].map((e=>2*e)));function _g(e,t){const r=new Uint32Array(32),n=new Uint32Array(e.b.buffer,e.b.byteOffset,32);for(let t=0;t<16;t++)r[t]=e.h[t],r[t+16]=Ng[t];r[24]^=e.t0[0],r[25]^=e.t0[1];const i=t?4294967295:0;r[28]^=i,r[29]^=i;for(let e=0;e<12;e++){const t=e<<4;Fg(r,n,0,8,16,24,Og[t+0],Og[t+1]),Fg(r,n,2,10,18,26,Og[t+2],Og[t+3]),Fg(r,n,4,12,20,28,Og[t+4],Og[t+5]),Fg(r,n,6,14,22,30,Og[t+6],Og[t+7]),Fg(r,n,0,10,20,30,Og[t+8],Og[t+9]),Fg(r,n,2,12,22,24,Og[t+10],Og[t+11]),Fg(r,n,4,14,16,26,Og[t+12],Og[t+13]),Fg(r,n,6,8,18,28,Og[t+14],Og[t+15])}for(let t=0;t<16;t++)e.h[t]^=r[t]^r[t+16]}class Hg{constructor(e,t,r,n){const i=new Uint8Array(64);this.S={b:new Uint8Array(qg),h:new Uint32Array(Gg/4),t0:new Uint32Array(2),c:0,outlen:e},i[0]=e,t&&(i[1]=t.length),i[2]=1,i[3]=1,r&&i.set(r,32),n&&i.set(n,48);const s=new Uint32Array(i.buffer,i.byteOffset,i.length/Uint32Array.BYTES_PER_ELEMENT);for(let e=0;e<16;e++)this.S.h[e]=Ng[e]^s[e];if(t){const e=new Uint8Array(qg);e.set(t),this.update(e)}}update(e){if(!(e instanceof Uint8Array))throw Error("Input must be Uint8Array or Buffer");let t=0;for(;t<e.length;){this.S.c===qg&&(Lg(this.S.t0,this.S.c),_g(this.S,!1),this.S.c=0);let r=qg-this.S.c;this.S.b.set(e.subarray(t,t+r),this.S.c);const n=Math.min(r,e.length-t);this.S.c+=n,t+=n}return this}digest(e){Lg(this.S.t0,this.S.c),this.S.b.fill(0,this.S.c),this.S.c=qg,_g(this.S,!0);const t=e||new Uint8Array(this.S.outlen);for(let e=0;e<this.S.outlen;e++)t[e]=this.S.h[e>>2]>>8*(3&e);return this.S.h=null,t.buffer}}function zg(e,t,r,n){if(e>Gg)throw Error(`outlen must be at most ${Gg} (given: ${e})`);return new Hg(e,t,r,n)}const Gg=64,qg=128,jg=2,Vg=19,Yg=4294967295,Zg=4,Wg=4294967295,Jg=8,Xg=4294967295,$g=8,ep=4294967295,tp=4294967295,rp=32,np=1024,ip=64,sp=205===new Uint8Array(new Uint16Array([43981]).buffer)[0];function ap(e,t,r){return e[r+0]=t,e[r+1]=t>>8,e[r+2]=t>>16,e[r+3]=t>>24,e}function op(e,t,r){if(t>Number.MAX_SAFE_INTEGER)throw Error("LE64: large numbers unsupported");let n=t;for(let t=r;t<r+7;t++)e[t]=n,n=(n-e[t])/256;return e}function cp(e,t,r){const n=new Uint8Array(64),i=new Uint8Array(4+t.length);if(ap(i,e,0),i.set(t,4),e<=64)return zg(e).update(i).digest(r),r;const s=Math.ceil(e/32)-2;for(let e=0;e<s;e++)zg(64).update(0===e?i:n).digest(n),r.set(n.subarray(0,32),32*e);const a=new Uint8Array(zg(e-32*s).update(n).digest());return r.set(a,32*s),r}function up(e,t,r,n){return e.fn.XOR(t.byteOffset,r.byteOffset,n.byteOffset),t}function hp(e,t,r,n){return e.fn.G(t.byteOffset,r.byteOffset,n.byteOffset,e.refs.gZ.byteOffset),n}function lp(e,t,r,n){return e.fn.G2(t.byteOffset,r.byteOffset,n.byteOffset,e.refs.gZ.byteOffset),n}function*yp(e,t,r,n,i,s,a,o){e.refs.prngTmp.fill(0);const c=e.refs.prngTmp.subarray(0,48);op(c,t,0),op(c,r,8),op(c,n,16),op(c,i,24),op(c,s,32),op(c,jg,40);for(let t=1;t<=a;t++){op(e.refs.prngTmp,t,c.length);const r=lp(e,e.refs.ZERO1024,e.refs.prngTmp,e.refs.prngR);for(let e=1===t?8*o:0;e<r.length;e+=8)yield r.subarray(e,e+8)}return[]}const fp=1024,gp=64*fp;function pp(e,{memory:t,instance:r}){if(!sp)throw Error("BigEndian system not supported");const n=function({type:e,version:t,tagLength:r,password:n,salt:i,ad:s,secret:a,parallelism:o,memorySize:c,passes:u}){const h=(e,t,r,n)=>{if(t<r||t>n)throw Error(`${e} size should be between ${r} and ${n} bytes`)};if(e!==jg||t!==Vg)throw Error("Unsupported type or version");return h("password",n,$g,Xg),h("salt",i,Jg,Wg),h("tag",r,Zg,Yg),h("memory",c,8*o,ep),s&&h("associated data",s,0,tp),a&&h("secret",a,0,rp),{type:e,version:t,tagLength:r,password:n,salt:i,ad:s,secret:a,lanes:o,memorySize:c,passes:u}}({type:jg,version:Vg,...e}),{G:i,G2:s,xor:a,getLZ:o}=r.exports,c={},u={};u.G=i,u.G2=s,u.XOR=a;const h=4*n.lanes*Math.floor(n.memorySize/(4*n.lanes)),l=h*np+10*fp;if(t.buffer.byteLength<l){const e=Math.ceil((l-t.buffer.byteLength)/gp);t.grow(e)}let y=0;c.gZ=new Uint8Array(t.buffer,y,np),y+=c.gZ.length,c.prngR=new Uint8Array(t.buffer,y,np),y+=c.prngR.length,c.prngTmp=new Uint8Array(t.buffer,y,np),y+=c.prngTmp.length,c.ZERO1024=new Uint8Array(t.buffer,y,1024),y+=c.ZERO1024.length;const f=new Uint32Array(t.buffer,y,2);y+=f.length*Uint32Array.BYTES_PER_ELEMENT;const g={fn:u,refs:c},p=new Uint8Array(t.buffer,y,np);y+=p.length;const d=new Uint8Array(t.buffer,y,n.memorySize*np),A=new Uint8Array(t.buffer,0,y),w=function(e){const t=zg(ip),r=new Uint8Array(4),n=new Uint8Array(24);ap(n,e.lanes,0),ap(n,e.tagLength,4),ap(n,e.memorySize,8),ap(n,e.passes,12),ap(n,e.version,16),ap(n,e.type,20);const i=[n];e.password?(i.push(ap(new Uint8Array(4),e.password.length,0)),i.push(e.password)):i.push(r);e.salt?(i.push(ap(new Uint8Array(4),e.salt.length,0)),i.push(e.salt)):i.push(r);e.secret?(i.push(ap(new Uint8Array(4),e.secret.length,0)),i.push(e.secret)):i.push(r);e.ad?(i.push(ap(new Uint8Array(4),e.ad.length,0)),i.push(e.ad)):i.push(r);t.update(function(e){if(1===e.length)return e[0];let t=0;for(let r=0;r<e.length;r++){if(!(e[r]instanceof Uint8Array))throw Error("concatArrays: Data must be in the form of a Uint8Array");t+=e[r].length}const r=new Uint8Array(t);let n=0;return e.forEach((e=>{r.set(e,n),n+=e.length})),r}(i));const s=t.digest();return new Uint8Array(s)}(n),m=h/n.lanes,b=Array(n.lanes).fill(null).map((()=>Array(m))),k=(e,t)=>(b[e][t]=d.subarray(e*m*1024+1024*t,e*m*1024+1024*t+np),b[e][t]);for(let e=0;e<n.lanes;e++){const t=new Uint8Array(w.length+8);t.set(w),ap(t,0,w.length),ap(t,e,w.length+4),cp(np,t,k(e,0)),ap(t,1,w.length),cp(np,t,k(e,1))}const E=m/4;for(let e=0;e<n.passes;e++)for(let t=0;t<4;t++){const r=0===e&&t<=1;for(let i=0;i<n.lanes;i++){let s=0===t&&0===e?2:0;const a=r?yp(g,e,i,t,h,n.passes,E,s):null;for(;s<E;s++){const c=t*E+s,u=c>0?b[i][c-1]:b[i][m-1],h=r?a.next().value:u;o(f.byteOffset,h.byteOffset,i,n.lanes,e,t,s,4,E);const l=f[0],y=f[1];0===e&&k(i,c),hp(g,u,b[l][y],e>0?p:b[i][c]),e>0&&up(g,b[i][c],p,b[i][c])}}}const v=b[0][m-1];for(let e=1;e<n.lanes;e++)up(g,v,v,b[e][m-1]);const B=cp(n.tagLength,v,new Uint8Array(n.tagLength));return A.fill(0),t.grow(0),B}let dp;async function Ap(e,t){const r=new WebAssembly.Memory({initial:1040,maximum:65536}),n=await async function(e,t,r){const n={env:{memory:e}};if(void 0===dp)try{const e=await t(n);return dp=!0,e}catch(e){dp=!1}return(dp?t:r)(n)}(r,e,t);return e=>pp(e,{instance:n.instance,memory:r})}function wp(t,r,n,i){var s=null,a=e.atob(n),o=a.length;s=new Uint8Array(new ArrayBuffer(o));for(var c=0;c<o;c++)s[c]=a.charCodeAt(c);return function(e,t){var r=WebAssembly.instantiate,n=WebAssembly.compile;return t?r(e,t):n(e)}(s,i)}var mp=/*#__PURE__*/Object.freeze({__proto__:null,default:async()=>Ap((e=>wp(0,0,"AGFzbQEAAAABKwdgBH9/f38AYAABf2AAAGADf39/AGAJf39/f39/f39/AX9gAX8AYAF/AX8CEwEDZW52Bm1lbW9yeQIBkAiAgAQDCgkCAwAABAEFBgEEBQFwAQICBgkBfwFBkIjAAgsHfQoDeG9yAAEBRwACAkcyAAMFZ2V0TFoABBlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALX2luaXRpYWxpemUAABBfX2Vycm5vX2xvY2F0aW9uAAgJc3RhY2tTYXZlAAUMc3RhY2tSZXN0b3JlAAYKc3RhY2tBbGxvYwAHCQcBAEEBCwEACs0gCQMAAQtYAQJ/A0AgACAEQQR0IgNqIAIgA2r9AAQAIAEgA2r9AAQA/VH9CwQAIAAgA0EQciIDaiACIANq/QAEACABIANq/QAEAP1R/QsEACAEQQJqIgRBwABHDQALC7ceAgt7A38DQCADIBFBBHQiD2ogASAPav0ABAAgACAPav0ABAD9USIF/QsEACACIA9qIAX9CwQAIAMgD0EQciIPaiABIA9q/QAEACAAIA9q/QAEAP1RIgX9CwQAIAIgD2ogBf0LBAAgEUECaiIRQcAARw0ACwNAIAMgEEEHdGoiAEEQaiAA/QAEcCAA/QAEMCIFIAD9AAQQIgT9zgEgBSAF/Q0AAQIDCAkKCwABAgMICQoLIAQgBP0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgT9USIJQSD9ywEgCUEg/c0B/VAiCSAA/QAEUCIG/c4BIAkgCf0NAAECAwgJCgsAAQIDCAkKCyAGIAb9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIGIAX9USIFQSj9ywEgBUEY/c0B/VAiCCAE/c4BIAggCP0NAAECAwgJCgsAAQIDCAkKCyAEIAT9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIKIAogCf1RIgVBMP3LASAFQRD9zQH9UCIFIAb9zgEgBSAF/Q0AAQIDCAkKCwABAgMICQoLIAYgBv0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgkgCP1RIgRBAf3LASAEQT/9zQH9UCIMIAD9AARgIAD9AAQgIgQgAP0ABAAiBv3OASAEIAT9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBv1RIghBIP3LASAIQSD9zQH9UCIIIABBQGsiAf0ABAAiB/3OASAIIAj9DQABAgMICQoLAAECAwgJCgsgByAH/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiByAE/VEiBEEo/csBIARBGP3NAf1QIgsgBv3OASALIAv9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBiAI/VEiBEEw/csBIARBEP3NAf1QIgQgB/3OASAEIAT9DQABAgMICQoLAAECAwgJCgsgByAH/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiCCAL/VEiB0EB/csBIAdBP/3NAf1QIg0gDf0NAAECAwQFBgcQERITFBUWF/0NCAkKCwwNDg8YGRobHB0eHyIH/c4BIAcgB/0NAAECAwgJCgsAAQIDCAkKCyAKIAr9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIKIAQgBSAF/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4f/VEiC0Eg/csBIAtBIP3NAf1QIgsgCP3OASALIAv9DQABAgMICQoLAAECAwgJCgsgCCAI/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiCCAH/VEiB0Eo/csBIAdBGP3NAf1QIgcgCv3OASAHIAf9DQABAgMICQoLAAECAwgJCgsgCiAK/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiDv0LBAAgACAGIA0gDCAM/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4fIgr9zgEgCiAK/Q0AAQIDCAkKCwABAgMICQoLIAYgBv0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgYgBSAEIAT9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9USIFQSD9ywEgBUEg/c0B/VAiBSAJ/c4BIAUgBf0NAAECAwgJCgsAAQIDCAkKCyAJIAn9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIJIAr9USIEQSj9ywEgBEEY/c0B/VAiCiAG/c4BIAogCv0NAAECAwgJCgsAAQIDCAkKCyAGIAb9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIE/QsEACAAIAQgBf1RIgVBMP3LASAFQRD9zQH9UCIFIA4gC/1RIgRBMP3LASAEQRD9zQH9UCIEIAT9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9CwRgIAAgBCAFIAX9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9CwRwIAEgBCAI/c4BIAQgBP0NAAECAwgJCgsAAQIDCAkKCyAIIAj9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIE/QsEACAAIAUgCf3OASAFIAX9DQABAgMICQoLAAECAwgJCgsgCSAJ/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiCf0LBFAgACAEIAf9USIFQQH9ywEgBUE//c0B/VAiBSAJIAr9USIEQQH9ywEgBEE//c0B/VAiBCAE/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4f/QsEICAAIAQgBSAF/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4f/QsEMCAQQQFqIhBBCEcNAAtBACEQA0AgAyAQQQR0aiIAQYABaiAA/QAEgAcgAP0ABIADIgUgAP0ABIABIgT9zgEgBSAF/Q0AAQIDCAkKCwABAgMICQoLIAQgBP0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgT9USIJQSD9ywEgCUEg/c0B/VAiCSAA/QAEgAUiBv3OASAJIAn9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBiAF/VEiBUEo/csBIAVBGP3NAf1QIgggBP3OASAIIAj9DQABAgMICQoLAAECAwgJCgsgBCAE/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiCiAKIAn9USIFQTD9ywEgBUEQ/c0B/VAiBSAG/c4BIAUgBf0NAAECAwgJCgsAAQIDCAkKCyAGIAb9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIJIAj9USIEQQH9ywEgBEE//c0B/VAiDCAA/QAEgAYgAP0ABIACIgQgAP0ABAAiBv3OASAEIAT9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBv1RIghBIP3LASAIQSD9zQH9UCIIIAD9AASABCIH/c4BIAggCP0NAAECAwgJCgsAAQIDCAkKCyAHIAf9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIHIAT9USIEQSj9ywEgBEEY/c0B/VAiCyAG/c4BIAsgC/0NAAECAwgJCgsAAQIDCAkKCyAGIAb9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIGIAj9USIEQTD9ywEgBEEQ/c0B/VAiBCAH/c4BIAQgBP0NAAECAwgJCgsAAQIDCAkKCyAHIAf9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIIIAv9USIHQQH9ywEgB0E//c0B/VAiDSAN/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4fIgf9zgEgByAH/Q0AAQIDCAkKCwABAgMICQoLIAogCv0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgogBCAFIAX9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9USILQSD9ywEgC0Eg/c0B/VAiCyAI/c4BIAsgC/0NAAECAwgJCgsAAQIDCAkKCyAIIAj9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIIIAf9USIHQSj9ywEgB0EY/c0B/VAiByAK/c4BIAcgB/0NAAECAwgJCgsAAQIDCAkKCyAKIAr9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIO/QsEACAAIAYgDSAMIAz9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh8iCv3OASAKIAr9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBiAFIAQgBP0NAAECAwQFBgcQERITFBUWF/0NCAkKCwwNDg8YGRobHB0eH/1RIgVBIP3LASAFQSD9zQH9UCIFIAn9zgEgBSAF/Q0AAQIDCAkKCwABAgMICQoLIAkgCf0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgkgCv1RIgRBKP3LASAEQRj9zQH9UCIKIAb9zgEgCiAK/Q0AAQIDCAkKCwABAgMICQoLIAYgBv0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgT9CwQAIAAgBCAF/VEiBUEw/csBIAVBEP3NAf1QIgUgDiAL/VEiBEEw/csBIARBEP3NAf1QIgQgBP0NAAECAwQFBgcQERITFBUWF/0NCAkKCwwNDg8YGRobHB0eH/0LBIAGIAAgBCAFIAX9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9CwSAByAAIAQgCP3OASAEIAT9DQABAgMICQoLAAECAwgJCgsgCCAI/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBP0LBIAEIAAgBSAJ/c4BIAUgBf0NAAECAwgJCgsAAQIDCAkKCyAJIAn9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIJ/QsEgAUgACAEIAf9USIFQQH9ywEgBUE//c0B/VAiBSAJIAr9USIEQQH9ywEgBEE//c0B/VAiBCAE/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4f/QsEgAIgACAEIAUgBf0NAAECAwQFBgcQERITFBUWF/0NCAkKCwwNDg8YGRobHB0eH/0LBIADIBBBAWoiEEEIRw0AC0EAIRADQCACIBBBBHQiAGoiASAAIANq/QAEACAB/QAEAP1R/QsEACACIABBEHIiAWoiDyABIANq/QAEACAP/QAEAP1R/QsEACACIABBIHIiAWoiDyABIANq/QAEACAP/QAEAP1R/QsEACACIABBMHIiAGoiASAAIANq/QAEACAB/QAEAP1R/QsEACAQQQRqIhBBwABHDQALCxYAIAAgASACIAMQAiAAIAIgAiADEAILewIBfwF+IAIhCSABNQIAIQogBCAFcgRAIAEoAgQgA3AhCQsgACAJNgIAIAAgB0EBayAFIAQbIAhsIAZBAWtBAEF/IAYbIAIgCUYbaiIBIAVBAWogCGxBACAEG2ogAa0gCiAKfkIgiH5CIIinQX9zaiAHIAhscDYCBCAACwQAIwALBgAgACQACxAAIwAgAGtBcHEiACQAIAALBQBBgAgL",e)),(e=>wp(0,0,"AGFzbQEAAAABPwhgBH9/f38AYAABf2AAAGADf39/AGARf39/f39/f39/f39/f39/f38AYAl/f39/f39/f38Bf2ABfwBgAX8BfwITAQNlbnYGbWVtb3J5AgGQCICABAMLCgIDBAAABQEGBwEEBQFwAQICBgkBfwFBkIjAAgsHfQoDeG9yAAEBRwADAkcyAAQFZ2V0TFoABRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALX2luaXRpYWxpemUAABBfX2Vycm5vX2xvY2F0aW9uAAkJc3RhY2tTYXZlAAYMc3RhY2tSZXN0b3JlAAcKc3RhY2tBbGxvYwAICQcBAEEBCwEACssaCgMAAQtQAQJ/A0AgACAEQQN0IgNqIAIgA2opAwAgASADaikDAIU3AwAgACADQQhyIgNqIAIgA2opAwAgASADaikDAIU3AwAgBEECaiIEQYABRw0ACwveDwICfgF/IAAgAUEDdGoiEyATKQMAIhEgACAFQQN0aiIBKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA1BA3RqIgUgESAFKQMAhUIgiSIRNwMAIAAgCUEDdGoiCSARIAkpAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAEgESABKQMAhUIoiSIRNwMAIBMgESATKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAFIBEgBSkDAIVCMIkiETcDACAJIBEgCSkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgASARIAEpAwCFQgGJNwMAIAAgAkEDdGoiDSANKQMAIhEgACAGQQN0aiICKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA5BA3RqIgYgESAGKQMAhUIgiSIRNwMAIAAgCkEDdGoiCiARIAopAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAIgESACKQMAhUIoiSIRNwMAIA0gESANKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAGIBEgBikDAIVCMIkiETcDACAKIBEgCikDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAiARIAIpAwCFQgGJNwMAIAAgA0EDdGoiDiAOKQMAIhEgACAHQQN0aiIDKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA9BA3RqIgcgESAHKQMAhUIgiSIRNwMAIAAgC0EDdGoiCyARIAspAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAMgESADKQMAhUIoiSIRNwMAIA4gESAOKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAHIBEgBykDAIVCMIkiETcDACALIBEgCykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAyARIAMpAwCFQgGJNwMAIAAgBEEDdGoiDyAPKQMAIhEgACAIQQN0aiIEKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIBBBA3RqIgggESAIKQMAhUIgiSIRNwMAIAAgDEEDdGoiACARIAApAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAQgESAEKQMAhUIoiSIRNwMAIA8gESAPKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAIIBEgCCkDAIVCMIkiETcDACAAIBEgACkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgBCARIAQpAwCFQgGJNwMAIBMgEykDACIRIAIpAwAiEnwgEUIBhkL+////H4MgEkL/////D4N+fCIRNwMAIAggESAIKQMAhUIgiSIRNwMAIAsgESALKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACACIBEgAikDAIVCKIkiETcDACATIBEgEykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgCCARIAgpAwCFQjCJIhE3AwAgCyARIAspAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAIgESACKQMAhUIBiTcDACANIA0pAwAiESADKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAFIBEgBSkDAIVCIIkiETcDACAAIBEgACkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAyARIAMpAwCFQiiJIhE3AwAgDSARIA0pAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAUgESAFKQMAhUIwiSIRNwMAIAAgESAAKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACADIBEgAykDAIVCAYk3AwAgDiAOKQMAIhEgBCkDACISfCARQgGGQv7///8fgyASQv////8Pg358IhE3AwAgBiARIAYpAwCFQiCJIhE3AwAgCSARIAkpAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAQgESAEKQMAhUIoiSIRNwMAIA4gESAOKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAGIBEgBikDAIVCMIkiETcDACAJIBEgCSkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgBCARIAQpAwCFQgGJNwMAIA8gDykDACIRIAEpAwAiEnwgEUIBhkL+////H4MgEkL/////D4N+fCIRNwMAIAcgESAHKQMAhUIgiSIRNwMAIAogESAKKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACABIBEgASkDAIVCKIkiETcDACAPIBEgDykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgByARIAcpAwCFQjCJIhE3AwAgCiARIAopAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAEgESABKQMAhUIBiTcDAAvdCAEPfwNAIAIgBUEDdCIGaiABIAZqKQMAIAAgBmopAwCFNwMAIAIgBkEIciIGaiABIAZqKQMAIAAgBmopAwCFNwMAIAVBAmoiBUGAAUcNAAsDQCADIARBA3QiAGogACACaikDADcDACADIARBAXIiAEEDdCIBaiABIAJqKQMANwMAIAMgBEECciIBQQN0IgVqIAIgBWopAwA3AwAgAyAEQQNyIgVBA3QiBmogAiAGaikDADcDACADIARBBHIiBkEDdCIHaiACIAdqKQMANwMAIAMgBEEFciIHQQN0IghqIAIgCGopAwA3AwAgAyAEQQZyIghBA3QiCWogAiAJaikDADcDACADIARBB3IiCUEDdCIKaiACIApqKQMANwMAIAMgBEEIciIKQQN0IgtqIAIgC2opAwA3AwAgAyAEQQlyIgtBA3QiDGogAiAMaikDADcDACADIARBCnIiDEEDdCINaiACIA1qKQMANwMAIAMgBEELciINQQN0Ig5qIAIgDmopAwA3AwAgAyAEQQxyIg5BA3QiD2ogAiAPaikDADcDACADIARBDXIiD0EDdCIQaiACIBBqKQMANwMAIAMgBEEOciIQQQN0IhFqIAIgEWopAwA3AwAgAyAEQQ9yIhFBA3QiEmogAiASaikDADcDACADIARB//8DcSAAQf//A3EgAUH//wNxIAVB//8DcSAGQf//A3EgB0H//wNxIAhB//8DcSAJQf//A3EgCkH//wNxIAtB//8DcSAMQf//A3EgDUH//wNxIA5B//8DcSAPQf//A3EgEEH//wNxIBFB//8DcRACIARB8ABJIQAgBEEQaiEEIAANAAtBACEBIANBAEEBQRBBEUEgQSFBMEExQcAAQcEAQdAAQdEAQeAAQeEAQfAAQfEAEAIgA0ECQQNBEkETQSJBI0EyQTNBwgBBwwBB0gBB0wBB4gBB4wBB8gBB8wAQAiADQQRBBUEUQRVBJEElQTRBNUHEAEHFAEHUAEHVAEHkAEHlAEH0AEH1ABACIANBBkEHQRZBF0EmQSdBNkE3QcYAQccAQdYAQdcAQeYAQecAQfYAQfcAEAIgA0EIQQlBGEEZQShBKUE4QTlByABByQBB2ABB2QBB6ABB6QBB+ABB+QAQAiADQQpBC0EaQRtBKkErQTpBO0HKAEHLAEHaAEHbAEHqAEHrAEH6AEH7ABACIANBDEENQRxBHUEsQS1BPEE9QcwAQc0AQdwAQd0AQewAQe0AQfwAQf0AEAIgA0EOQQ9BHkEfQS5BL0E+QT9BzgBBzwBB3gBB3wBB7gBB7wBB/gBB/wAQAgNAIAIgAUEDdCIAaiIEIAAgA2opAwAgBCkDAIU3AwAgAiAAQQhyIgRqIgUgAyAEaikDACAFKQMAhTcDACACIABBEHIiBGoiBSADIARqKQMAIAUpAwCFNwMAIAIgAEEYciIAaiIEIAAgA2opAwAgBCkDAIU3AwAgAUEEaiIBQYABRw0ACwsWACAAIAEgAiADEAMgACACIAIgAxADC3sCAX8BfiACIQkgATUCACEKIAQgBXIEQCABKAIEIANwIQkLIAAgCTYCACAAIAdBAWsgBSAEGyAIbCAGQQFrQQBBfyAGGyACIAlGG2oiASAFQQFqIAhsQQAgBBtqIAGtIAogCn5CIIh+QiCIp0F/c2ogByAIbHA2AgQgAAsEACMACwYAIAAkAAsQACMAIABrQXBxIgAkACAACwUAQYAICw==",e)))}),bp=[0,1,3,7,15,31,63,127,255],kp=function(e){this.stream=e,this.bitOffset=0,this.curByte=0,this.hasByte=!1};kp.prototype._ensureByte=function(){this.hasByte||(this.curByte=this.stream.readByte(),this.hasByte=!0)},kp.prototype.read=function(e){for(var t=0;e>0;){this._ensureByte();var r=8-this.bitOffset;if(e>=r)t<<=r,t|=bp[r]&this.curByte,this.hasByte=!1,this.bitOffset=0,e-=r;else{t<<=e;var n=r-e;t|=(this.curByte&bp[e]<<n)>>n,this.bitOffset+=e,e=0}}return t},kp.prototype.seek=function(e){var t=e%8,r=(e-t)/8;this.bitOffset=t,this.stream.seek(r),this.hasByte=!1},kp.prototype.pi=function(){var e,t=new Uint8Array(6);for(e=0;e<t.length;e++)t[e]=this.read(8);return function(e){return Array.prototype.map.call(e,(e=>("00"+e.toString(16)).slice(-2))).join("")}(t)};var Ep=kp,vp=function(){};vp.prototype.readByte=function(){throw Error("abstract method readByte() not implemented")},vp.prototype.read=function(e,t,r){for(var n=0;n<r;){var i=this.readByte();if(i<0)return 0===n?-1:n;e[t++]=i,n++}return n},vp.prototype.seek=function(e){throw Error("abstract method seek() not implemented")},vp.prototype.writeByte=function(e){throw Error("abstract method readByte() not implemented")},vp.prototype.write=function(e,t,r){var n;for(n=0;n<r;n++)this.writeByte(e[t++]);return r},vp.prototype.flush=function(){};var Bp,Sp=vp,Ip=(Bp=new Uint32Array([0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188]),function(){var e=4294967295;this.getCRC=function(){return~e>>>0},this.updateCRC=function(t){e=e<<8^Bp[255&(e>>>24^t)]},this.updateCRCRun=function(t,r){for(;r-- >0;)e=e<<8^Bp[255&(e>>>24^t)]}}),Kp=Ep,Cp=Sp,Up=Ip,Pp=function(e,t){var r,n=e[t];for(r=t;r>0;r--)e[r]=e[r-1];return e[0]=n,n},Dp={OK:0,LAST_BLOCK:-1,NOT_BZIP_DATA:-2,UNEXPECTED_INPUT_EOF:-3,UNEXPECTED_OUTPUT_EOF:-4,DATA_ERROR:-5,OUT_OF_MEMORY:-6,OBSOLETE_INPUT:-7,END_OF_BLOCK:-8},xp={};xp[Dp.LAST_BLOCK]="Bad file checksum",xp[Dp.NOT_BZIP_DATA]="Not bzip data",xp[Dp.UNEXPECTED_INPUT_EOF]="Unexpected input EOF",xp[Dp.UNEXPECTED_OUTPUT_EOF]="Unexpected output EOF",xp[Dp.DATA_ERROR]="Data error",xp[Dp.OUT_OF_MEMORY]="Out of memory",xp[Dp.OBSOLETE_INPUT]="Obsolete (pre 0.9.5) bzip format not supported.";var Qp=function(e,t){var r=xp[e]||"unknown error";t&&(r+=": "+t);var n=new TypeError(r);throw n.errorCode=e,n},Rp=function(e,t){this.writePos=this.writeCurrent=this.writeCount=0,this._start_bunzip(e,t)};Rp.prototype._init_block=function(){return this._get_next_block()?(this.blockCRC=new Up,!0):(this.writeCount=-1,!1)},Rp.prototype._start_bunzip=function(e,t){var r=new Uint8Array(4);4===e.read(r,0,4)&&"BZh"===String.fromCharCode(r[0],r[1],r[2])||Qp(Dp.NOT_BZIP_DATA,"bad magic");var n=r[3]-48;(n<1||n>9)&&Qp(Dp.NOT_BZIP_DATA,"level out of range"),this.reader=new Kp(e),this.dbufSize=1e5*n,this.nextoutput=0,this.outputStream=t,this.streamCRC=0},Rp.prototype._get_next_block=function(){var e,t,r,n=this.reader,i=n.pi();if("177245385090"===i)return!1;"314159265359"!==i&&Qp(Dp.NOT_BZIP_DATA),this.targetBlockCRC=n.read(32)>>>0,this.streamCRC=(this.targetBlockCRC^(this.streamCRC<<1|this.streamCRC>>>31))>>>0,n.read(1)&&Qp(Dp.OBSOLETE_INPUT);var s=n.read(24);s>this.dbufSize&&Qp(Dp.DATA_ERROR,"initial position out of bounds");var a=n.read(16),o=new Uint8Array(256),c=0;for(e=0;e<16;e++)if(a&1<<15-e){var u=16*e;for(r=n.read(16),t=0;t<16;t++)r&1<<15-t&&(o[c++]=u+t)}var h=n.read(3);(h<2||h>6)&&Qp(Dp.DATA_ERROR);var l=n.read(15);0===l&&Qp(Dp.DATA_ERROR);var y=new Uint8Array(256);for(e=0;e<h;e++)y[e]=e;var f=new Uint8Array(l);for(e=0;e<l;e++){for(t=0;n.read(1);t++)t>=h&&Qp(Dp.DATA_ERROR);f[e]=Pp(y,t)}var g,p=c+2,d=[];for(t=0;t<h;t++){var A,w,m=new Uint8Array(p),b=new Uint16Array(21);for(a=n.read(5),e=0;e<p;e++){for(;(a<1||a>20)&&Qp(Dp.DATA_ERROR),n.read(1);)n.read(1)?a--:a++;m[e]=a}for(A=w=m[0],e=1;e<p;e++)m[e]>w?w=m[e]:m[e]<A&&(A=m[e]);g={},d.push(g),g.permute=new Uint16Array(258),g.limit=new Uint32Array(22),g.base=new Uint32Array(21),g.minLen=A,g.maxLen=w;var k=0;for(e=A;e<=w;e++)for(b[e]=g.limit[e]=0,a=0;a<p;a++)m[a]===e&&(g.permute[k++]=a);for(e=0;e<p;e++)b[m[e]]++;for(k=a=0,e=A;e<w;e++)k+=b[e],g.limit[e]=k-1,k<<=1,a+=b[e],g.base[e+1]=k-a;g.limit[w+1]=Number.MAX_VALUE,g.limit[w]=k+b[w]-1,g.base[A]=0}var E=new Uint32Array(256);for(e=0;e<256;e++)y[e]=e;var v,B=0,S=0,I=0,K=this.dbuf=new Uint32Array(this.dbufSize);for(p=0;;){for(p--||(p=49,I>=l&&Qp(Dp.DATA_ERROR),g=d[f[I++]]),e=g.minLen,t=n.read(e);e>g.maxLen&&Qp(Dp.DATA_ERROR),!(t<=g.limit[e]);e++)t=t<<1|n.read(1);((t-=g.base[e])<0||t>=258)&&Qp(Dp.DATA_ERROR);var C=g.permute[t];if(0!==C&&1!==C){if(B)for(B=0,S+a>this.dbufSize&&Qp(Dp.DATA_ERROR),E[v=o[y[0]]]+=a;a--;)K[S++]=v;if(C>c)break;S>=this.dbufSize&&Qp(Dp.DATA_ERROR),E[v=o[v=Pp(y,e=C-1)]]++,K[S++]=v}else B||(B=1,a=0),a+=0===C?B:2*B,B<<=1}for((s<0||s>=S)&&Qp(Dp.DATA_ERROR),t=0,e=0;e<256;e++)r=t+E[e],E[e]=t,t=r;for(e=0;e<S;e++)K[E[v=255&K[e]]]|=e<<8,E[v]++;var U=0,P=0,D=0;return S&&(P=255&(U=K[s]),U>>=8,D=-1),this.writePos=U,this.writeCurrent=P,this.writeCount=S,this.writeRun=D,!0},Rp.prototype._read_bunzip=function(e,t){var r,n,i;if(this.writeCount<0)return 0;var s=this.dbuf,a=this.writePos,o=this.writeCurrent,c=this.writeCount;this.outputsize;for(var u=this.writeRun;c;){for(c--,n=o,o=255&(a=s[a]),a>>=8,3==u++?(r=o,i=n,o=-1):(r=1,i=o),this.blockCRC.updateCRCRun(i,r);r--;)this.outputStream.writeByte(i),this.nextoutput++;o!=n&&(u=0)}return this.writeCount=c,this.blockCRC.getCRC()!==this.targetBlockCRC&&Qp(Dp.DATA_ERROR,"Bad block CRC (got "+this.blockCRC.getCRC().toString(16)+" expected "+this.targetBlockCRC.toString(16)+")"),this.nextoutput};var Tp=function(e){if("readByte"in e)return e;var t=new Cp;return t.pos=0,t.readByte=function(){return e[this.pos++]},t.seek=function(e){this.pos=e},t.eof=function(){return this.pos>=e.length},t},Mp=function(e){var t=new Cp,r=!0;if(e)if("number"==typeof e)t.buffer=new Uint8Array(e),r=!1;else{if("writeByte"in e)return e;t.buffer=e,r=!1}else t.buffer=new Uint8Array(16384);return t.pos=0,t.writeByte=function(e){if(r&&this.pos>=this.buffer.length){var t=new Uint8Array(2*this.buffer.length);t.set(this.buffer),this.buffer=t}this.buffer[this.pos++]=e},t.getBuffer=function(){if(this.pos!==this.buffer.length){if(!r)throw new TypeError("outputsize does not match decoded input");var e=new Uint8Array(this.pos);e.set(this.buffer.subarray(0,this.pos)),this.buffer=e}return this.buffer},t._coerced=!0,t};var Lp={Bunzip:Rp,Stream:Cp,Err:Dp,decode:function(e,t,r){for(var n=Tp(e),i=Mp(t),s=new Rp(n,i);!("eof"in n)||!n.eof();)if(s._init_block())s._read_bunzip();else{var a=s.reader.read(32)>>>0;if(a!==s.streamCRC&&Qp(Dp.DATA_ERROR,"Bad stream CRC (got "+s.streamCRC.toString(16)+" expected "+a.toString(16)+")"),!r||!("eof"in n)||n.eof())break;s._start_bunzip(n,i)}if("getBuffer"in i)return i.getBuffer()},decodeBlock:function(e,t,r){var n=Tp(e),i=Mp(r),s=new Rp(n,i);if(s.reader.seek(t),s._get_next_block()&&(s.blockCRC=new Up,s.writeCopies=0,s._read_bunzip()),"getBuffer"in i)return i.getBuffer()},table:function(e,t,r){var n=new Cp;n.delegate=Tp(e),n.pos=0,n.readByte=function(){return this.pos++,this.delegate.readByte()},n.delegate.eof&&(n.eof=n.delegate.eof.bind(n.delegate));var i=new Cp;i.pos=0,i.writeByte=function(){this.pos++};for(var s=new Rp(n,i),a=s.dbufSize;!("eof"in n)||!n.eof();){var o=8*n.pos+s.reader.bitOffset;if(s.reader.hasByte&&(o-=8),s._init_block()){var c=i.pos;s._read_bunzip(),t(o,i.pos-c)}else{if(s.reader.read(32),!r||!("eof"in n)||n.eof())break;s._start_bunzip(n,i),console.assert(s.dbufSize===a,"shouldn't change block size within multistream file")}}}},Fp=/*#__PURE__*/t({__proto__:null},[Lp]);export{ic as AEADEncryptedDataPacket,Da as Argon2OutOfMemoryError,Ta as Argon2S2K,uu as CleartextMessage,Yo as CompressedDataPacket,Ho as GrammarError,ks as KDFParams,Qo as LiteralDataPacket,yc as MarkerPacket,nu as Message,_o as OnePassSignaturePacket,jo as PacketList,bc as PaddingPacket,jc as PrivateKey,qc as PublicKey,ac as PublicKeyEncryptedSessionKeyPacket,uc as PublicKeyPacket,fc as PublicSubkeyPacket,pc as SecretKeyPacket,wc as SecretSubkeyPacket,Ec as Signature,Fo as SignaturePacket,Oc as Subkey,tc as SymEncryptedIntegrityProtectedDataPacket,cc as SymEncryptedSessionKeyPacket,lc as SymmetricallyEncryptedDataPacket,mc as TrustPacket,Wt as UnparseablePacket,gc as UserAttributePacket,Ac as UserIDPacket,X as armor,R as config,lu as createCleartextMessage,ou as createMessage,wu as decrypt,pu as decryptKey,vu as decryptSessionKeys,Au as encrypt,du as encryptKey,Eu as encryptSessionKey,Q as enums,yu as generateKey,ku as generateSessionKey,hu as readCleartextMessage,Wc as readKey,Xc as readKeys,au as readMessage,Jc as readPrivateKey,$c as readPrivateKeys,vc as readSignature,fu as reformatKey,gu as revokeKey,mu as sign,J as unarmor,bu as verify};
16
+ const Oy=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Hy=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),_y=BigInt(1),zy=BigInt(2),Gy=(e,t)=>(e+t/zy)/t;const qy=el(Oy,void 0,void 0,{sqrt:function(e){const t=Oy,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),a=BigInt(23),o=BigInt(44),c=BigInt(88),u=e*e*e%t,h=u*u*e%t,l=Zh(h,r,t)*h%t,y=Zh(l,r,t)*h%t,f=Zh(y,zy,t)*u%t,p=Zh(f,i,t)*f%t,g=Zh(p,s,t)*p%t,d=Zh(g,o,t)*g%t,A=Zh(d,c,t)*d%t,w=Zh(A,o,t)*g%t,m=Zh(w,r,t)*h%t,b=Zh(m,a,t)*p%t,k=Zh(b,n,t)*u%t,E=Zh(k,zy,t);if(!qy.eql(qy.sqr(E),e))throw Error("Cannot find square root");return E}}),jy=Bl({a:BigInt(0),b:BigInt(7),Fp:qy,n:Hy,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=Hy,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-_y*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,a=BigInt("0x100000000000000000000000000000000"),o=Gy(s*e,t),c=Gy(-n*e,t);let u=Vh(e-o*r-c*i,t),h=Vh(-o*n-c*s,t);const l=u>a,y=h>a;if(l&&(u=t-u),y&&(h=t-h),u>a||h>a)throw Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:u,k2neg:y,k2:h}}}},sh);BigInt(0),jy.ProjectivePoint;const Vy=el(BigInt("0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377")),Yy=Bl({a:Vy.create(BigInt("0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9")),b:BigInt("0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6"),Fp:Vy,n:BigInt("0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7"),Gx:BigInt("0x8bd2aeb9cb7e57cb2c4b482ffc81b7afb9de27e1e3bd23c23a4453bd9ace3262"),Gy:BigInt("0x547ef835c3dac4fd97f8461a14611dc9c27745132ded8e545c1d54c72f046997"),h:BigInt(1),lowS:!1},sh),Zy=el(BigInt("0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53")),Wy=Bl({a:Zy.create(BigInt("0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826")),b:BigInt("0x04a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11"),Fp:Zy,n:BigInt("0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565"),Gx:BigInt("0x1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e"),Gy:BigInt("0x8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315"),h:BigInt(1),lowS:!1},zl),Jy=el(BigInt("0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3")),Xy=Bl({a:Jy.create(BigInt("0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94ca")),b:BigInt("0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723"),Fp:Jy,n:BigInt("0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069"),Gx:BigInt("0x81aee4bdd82ed9645a21322e9c4c6a9385ed9f70b5d916c1b43b62eef4d0098eff3b1f78e2d0d48d50d1687b93b97d5f7c6d5047406a5e688b352209bcb9f822"),Gy:BigInt("0x7dde385d566332ecc0eabfa9cf7822fdf209f70024a57b1aa000c55b881f8111b2dcde494a5f485e5bca4bd88a2763aed1ca2b2fa8f0540678cd1e0f3ad80892"),h:BigInt(1),lowS:!1},_l),$y=new Map(Object.entries({nistP256:Il,nistP384:ql,nistP521:Yl,brainpoolP256r1:Yy,brainpoolP384r1:Wy,brainpoolP512r1:Xy,secp256k1:jy,x448:Fy,ed448:Ny}));var ef=/*#__PURE__*/Object.freeze({__proto__:null,nobleCurves:$y});const tf=/* @__PURE__ */new Uint32Array([1732584193,4023233417,2562383102,271733878,3285377520]),rf=/* @__PURE__ */new Uint32Array(80);class nf extends $u{constructor(){super(64,20,8,!1),this.A=0|tf[0],this.B=0|tf[1],this.C=0|tf[2],this.D=0|tf[3],this.E=0|tf[4]}get(){const{A:e,B:t,C:r,D:n,E:i}=this;return[e,t,r,n,i]}set(e,t,r,n,i){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n,this.E=0|i}process(e,t){for(let r=0;r<16;r++,t+=4)rf[r]=e.getUint32(t,!1);for(let e=16;e<80;e++)rf[e]=_u(rf[e-3]^rf[e-8]^rf[e-14]^rf[e-16],1);let{A:r,B:n,C:i,D:s,E:a}=this;for(let e=0;e<80;e++){let t,o;e<20?(t=Ju(n,i,s),o=1518500249):e<40?(t=n^i^s,o=1859775393):e<60?(t=Xu(n,i,s),o=2400959708):(t=n^i^s,o=3395469782);const c=_u(r,5)+t+a+o+rf[e]|0;a=s,s=i,i=_u(n,30),n=r,r=c}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,this.set(r,n,i,s,a)}roundClean(){rf.fill(0)}destroy(){this.set(0,0,0,0,0),this.buffer.fill(0)}}const sf=/* @__PURE__ */Zu((()=>new nf)),af=/* @__PURE__ */new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),of=/* @__PURE__ */new Uint8Array(Array(16).fill(0).map(((e,t)=>t))),cf=/* @__PURE__ */of.map((e=>(9*e+5)%16));let uf=[of],hf=[cf];for(let e=0;e<4;e++)for(let t of[uf,hf])t.push(t[e].map((e=>af[e])));const lf=/* @__PURE__ */[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((e=>new Uint8Array(e))),yf=/* @__PURE__ */uf.map(((e,t)=>e.map((e=>lf[t][e])))),ff=/* @__PURE__ */hf.map(((e,t)=>e.map((e=>lf[t][e])))),pf=/* @__PURE__ */new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),gf=/* @__PURE__ */new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]);function df(e,t,r,n){return 0===e?t^r^n:1===e?t&r|~t&n:2===e?(t|~r)^n:3===e?t&n|r&~n:t^(r|~n)}const Af=/* @__PURE__ */new Uint32Array(16);class wf extends $u{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:e,h1:t,h2:r,h3:n,h4:i}=this;return[e,t,r,n,i]}set(e,t,r,n,i){this.h0=0|e,this.h1=0|t,this.h2=0|r,this.h3=0|n,this.h4=0|i}process(e,t){for(let r=0;r<16;r++,t+=4)Af[r]=e.getUint32(t,!0);let r=0|this.h0,n=r,i=0|this.h1,s=i,a=0|this.h2,o=a,c=0|this.h3,u=c,h=0|this.h4,l=h;for(let e=0;e<5;e++){const t=4-e,y=pf[e],f=gf[e],p=uf[e],g=hf[e],d=yf[e],A=ff[e];for(let t=0;t<16;t++){const n=_u(r+df(e,i,a,c)+Af[p[t]]+y,d[t])+h|0;r=h,h=c,c=0|_u(a,10),a=i,i=n}for(let e=0;e<16;e++){const r=_u(n+df(t,s,o,u)+Af[g[e]]+f,A[e])+l|0;n=l,l=u,u=0|_u(o,10),o=s,s=r}}this.set(this.h1+a+u|0,this.h2+c+l|0,this.h3+h+n|0,this.h4+r+s|0,this.h0+i+o|0)}roundClean(){Af.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}const mf=/* @__PURE__ */Zu((()=>new wf)),bf=Array.from({length:64},((e,t)=>Math.floor(2**32*Math.abs(Math.sin(t+1))))),kf=(e,t,r)=>e&t^~e&r,Ef=/* @__PURE__ */new Uint32Array([1732584193,4023233417,2562383102,271733878]),vf=/* @__PURE__ */new Uint32Array(16);class Bf extends $u{constructor(){super(64,16,8,!0),this.A=0|Ef[0],this.B=0|Ef[1],this.C=0|Ef[2],this.D=0|Ef[3]}get(){const{A:e,B:t,C:r,D:n}=this;return[e,t,r,n]}set(e,t,r,n){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n}process(e,t){for(let r=0;r<16;r++,t+=4)vf[r]=e.getUint32(t,!0);let{A:r,B:n,C:i,D:s}=this;for(let e=0;e<64;e++){let t,a,o;e<16?(t=kf(n,i,s),a=e,o=[7,12,17,22]):e<32?(t=kf(s,n,i),a=(5*e+1)%16,o=[5,9,14,20]):e<48?(t=n^i^s,a=(3*e+5)%16,o=[4,11,16,23]):(t=i^(n|~s),a=7*e%16,o=[6,10,15,21]),t=t+r+bf[e]+vf[a],r=s,s=i,i=n,n+=_u(t,o[e%4])}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,s=s+this.D|0,this.set(r,n,i,s)}roundClean(){vf.fill(0)}destroy(){this.set(0,0,0,0),this.buffer.fill(0)}}const Sf=new Map(Object.entries({md5:/* @__PURE__ */Zu((()=>new Bf)),sha1:sf,sha224:ah,sha256:sh,sha384:zl,sha512:_l,sha3_256:hy,sha3_512:ly,ripemd160:mf}));var If=/*#__PURE__*/Object.freeze({__proto__:null,nobleHashes:Sf});function Kf(e,t,r,n,i,s){const a=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],o=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],c=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],u=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],h=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],l=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],y=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],f=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];let p,g,d,A,w,m,b,k,E,v,B=0,S=t.length;const I=32===e.length?3:9;k=3===I?r?[0,32,2]:[30,-2,-2]:r?[0,32,2,62,30,-2,64,96,2]:[94,62,-2,32,64,2,30,-2,-2],r&&(t=function(e){const t=8-e.length%8;let r;if(!(t<8)){if(8===t)return e;throw Error("des: invalid padding")}r=0;const n=new Uint8Array(e.length+t);for(let t=0;t<e.length;t++)n[t]=e[t];for(let i=0;i<t;i++)n[e.length+i]=r;return n}(t),S=t.length);let K=new Uint8Array(S),C=0;for(;B<S;){for(m=t[B++]<<24|t[B++]<<16|t[B++]<<8|t[B++],b=t[B++]<<24|t[B++]<<16|t[B++]<<8|t[B++],d=252645135&(m>>>4^b),b^=d,m^=d<<4,d=65535&(m>>>16^b),b^=d,m^=d<<16,d=858993459&(b>>>2^m),m^=d,b^=d<<2,d=16711935&(b>>>8^m),m^=d,b^=d<<8,d=1431655765&(m>>>1^b),b^=d,m^=d<<1,m=m<<1|m>>>31,b=b<<1|b>>>31,g=0;g<I;g+=3){for(E=k[g+1],v=k[g+2],p=k[g];p!==E;p+=v)A=b^e[p],w=(b>>>4|b<<28)^e[p+1],d=m,m=b,b=d^(o[A>>>24&63]|u[A>>>16&63]|l[A>>>8&63]|f[63&A]|a[w>>>24&63]|c[w>>>16&63]|h[w>>>8&63]|y[63&w]);d=m,m=b,b=d}m=m>>>1|m<<31,b=b>>>1|b<<31,d=1431655765&(m>>>1^b),b^=d,m^=d<<1,d=16711935&(b>>>8^m),m^=d,b^=d<<8,d=858993459&(b>>>2^m),m^=d,b^=d<<2,d=65535&(m>>>16^b),b^=d,m^=d<<16,d=252645135&(m>>>4^b),b^=d,m^=d<<4,K[C++]=m>>>24,K[C++]=m>>>16&255,K[C++]=m>>>8&255,K[C++]=255&m,K[C++]=b>>>24,K[C++]=b>>>16&255,K[C++]=b>>>8&255,K[C++]=255&b}return r||(K=function(e){let t,r=null;if(t=0,!r){for(r=1;e[e.length-r]===t;)r++;r--}return e.subarray(0,e.length-r)}(K)),K}function Cf(e){const t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],a=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],o=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],h=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],l=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],y=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],f=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],p=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],g=e.length>8?3:1,d=Array(32*g),A=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0];let w,m,b,k=0,E=0;for(let v=0;v<g;v++){let g=e[k++]<<24|e[k++]<<16|e[k++]<<8|e[k++],v=e[k++]<<24|e[k++]<<16|e[k++]<<8|e[k++];b=252645135&(g>>>4^v),v^=b,g^=b<<4,b=65535&(v>>>-16^g),g^=b,v^=b<<-16,b=858993459&(g>>>2^v),v^=b,g^=b<<2,b=65535&(v>>>-16^g),g^=b,v^=b<<-16,b=1431655765&(g>>>1^v),v^=b,g^=b<<1,b=16711935&(v>>>8^g),g^=b,v^=b<<8,b=1431655765&(g>>>1^v),v^=b,g^=b<<1,b=g<<8|v>>>20&240,g=v<<24|v<<8&16711680|v>>>8&65280|v>>>24&240,v=b;for(let e=0;e<16;e++)A[e]?(g=g<<2|g>>>26,v=v<<2|v>>>26):(g=g<<1|g>>>27,v=v<<1|v>>>27),g&=-15,v&=-15,w=t[g>>>28]|r[g>>>24&15]|n[g>>>20&15]|i[g>>>16&15]|s[g>>>12&15]|a[g>>>8&15]|o[g>>>4&15],m=c[v>>>28]|u[v>>>24&15]|h[v>>>20&15]|l[v>>>16&15]|y[v>>>12&15]|f[v>>>8&15]|p[v>>>4&15],b=65535&(m>>>16^w),d[E++]=w^b,d[E++]=m^b<<16}return d}function Uf(e){this.key=[];for(let t=0;t<3;t++)this.key.push(new Uint8Array(e.subarray(8*t,8*t+8)));this.encrypt=function(e){return Kf(Cf(this.key[2]),Kf(Cf(this.key[1]),Kf(Cf(this.key[0]),e,!0),!1),!0)}}function Pf(){this.BlockSize=8,this.KeySize=16,this.setKey=function(e){if(this.masking=Array(16),this.rotate=Array(16),this.reset(),e.length!==this.KeySize)throw Error("CAST-128: keys must be 16 bytes");return this.keySchedule(e),!0},this.reset=function(){for(let e=0;e<16;e++)this.masking[e]=0,this.rotate[e]=0},this.getBlockSize=function(){return this.BlockSize},this.encrypt=function(e){const t=Array(e.length);for(let s=0;s<e.length;s+=8){let a,o=e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3],c=e[s+4]<<24|e[s+5]<<16|e[s+6]<<8|e[s+7];a=c,c=o^r(c,this.masking[0],this.rotate[0]),o=a,a=c,c=o^n(c,this.masking[1],this.rotate[1]),o=a,a=c,c=o^i(c,this.masking[2],this.rotate[2]),o=a,a=c,c=o^r(c,this.masking[3],this.rotate[3]),o=a,a=c,c=o^n(c,this.masking[4],this.rotate[4]),o=a,a=c,c=o^i(c,this.masking[5],this.rotate[5]),o=a,a=c,c=o^r(c,this.masking[6],this.rotate[6]),o=a,a=c,c=o^n(c,this.masking[7],this.rotate[7]),o=a,a=c,c=o^i(c,this.masking[8],this.rotate[8]),o=a,a=c,c=o^r(c,this.masking[9],this.rotate[9]),o=a,a=c,c=o^n(c,this.masking[10],this.rotate[10]),o=a,a=c,c=o^i(c,this.masking[11],this.rotate[11]),o=a,a=c,c=o^r(c,this.masking[12],this.rotate[12]),o=a,a=c,c=o^n(c,this.masking[13],this.rotate[13]),o=a,a=c,c=o^i(c,this.masking[14],this.rotate[14]),o=a,a=c,c=o^r(c,this.masking[15],this.rotate[15]),o=a,t[s]=c>>>24&255,t[s+1]=c>>>16&255,t[s+2]=c>>>8&255,t[s+3]=255&c,t[s+4]=o>>>24&255,t[s+5]=o>>>16&255,t[s+6]=o>>>8&255,t[s+7]=255&o}return t},this.decrypt=function(e){const t=Array(e.length);for(let s=0;s<e.length;s+=8){let a,o=e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3],c=e[s+4]<<24|e[s+5]<<16|e[s+6]<<8|e[s+7];a=c,c=o^r(c,this.masking[15],this.rotate[15]),o=a,a=c,c=o^i(c,this.masking[14],this.rotate[14]),o=a,a=c,c=o^n(c,this.masking[13],this.rotate[13]),o=a,a=c,c=o^r(c,this.masking[12],this.rotate[12]),o=a,a=c,c=o^i(c,this.masking[11],this.rotate[11]),o=a,a=c,c=o^n(c,this.masking[10],this.rotate[10]),o=a,a=c,c=o^r(c,this.masking[9],this.rotate[9]),o=a,a=c,c=o^i(c,this.masking[8],this.rotate[8]),o=a,a=c,c=o^n(c,this.masking[7],this.rotate[7]),o=a,a=c,c=o^r(c,this.masking[6],this.rotate[6]),o=a,a=c,c=o^i(c,this.masking[5],this.rotate[5]),o=a,a=c,c=o^n(c,this.masking[4],this.rotate[4]),o=a,a=c,c=o^r(c,this.masking[3],this.rotate[3]),o=a,a=c,c=o^i(c,this.masking[2],this.rotate[2]),o=a,a=c,c=o^n(c,this.masking[1],this.rotate[1]),o=a,a=c,c=o^r(c,this.masking[0],this.rotate[0]),o=a,t[s]=c>>>24&255,t[s+1]=c>>>16&255,t[s+2]=c>>>8&255,t[s+3]=255&c,t[s+4]=o>>>24&255,t[s+5]=o>>16&255,t[s+6]=o>>8&255,t[s+7]=255&o}return t};const e=[,,,,];e[0]=[,,,,],e[0][0]=[4,0,13,15,12,14,8],e[0][1]=[5,2,16,18,17,19,10],e[0][2]=[6,3,23,22,21,20,9],e[0][3]=[7,1,26,25,27,24,11],e[1]=[,,,,],e[1][0]=[0,6,21,23,20,22,16],e[1][1]=[1,4,0,2,1,3,18],e[1][2]=[2,5,7,6,5,4,17],e[1][3]=[3,7,10,9,11,8,19],e[2]=[,,,,],e[2][0]=[4,0,13,15,12,14,8],e[2][1]=[5,2,16,18,17,19,10],e[2][2]=[6,3,23,22,21,20,9],e[2][3]=[7,1,26,25,27,24,11],e[3]=[,,,,],e[3][0]=[0,6,21,23,20,22,16],e[3][1]=[1,4,0,2,1,3,18],e[3][2]=[2,5,7,6,5,4,17],e[3][3]=[3,7,10,9,11,8,19];const t=[,,,,];function r(e,t,r){const n=t+e,i=n<<r|n>>>32-r;return(s[0][i>>>24]^s[1][i>>>16&255])-s[2][i>>>8&255]+s[3][255&i]}function n(e,t,r){const n=t^e,i=n<<r|n>>>32-r;return s[0][i>>>24]-s[1][i>>>16&255]+s[2][i>>>8&255]^s[3][255&i]}function i(e,t,r){const n=t-e,i=n<<r|n>>>32-r;return(s[0][i>>>24]+s[1][i>>>16&255]^s[2][i>>>8&255])-s[3][255&i]}t[0]=[,,,,],t[0][0]=[24,25,23,22,18],t[0][1]=[26,27,21,20,22],t[0][2]=[28,29,19,18,25],t[0][3]=[30,31,17,16,28],t[1]=[,,,,],t[1][0]=[3,2,12,13,8],t[1][1]=[1,0,14,15,13],t[1][2]=[7,6,8,9,3],t[1][3]=[5,4,10,11,7],t[2]=[,,,,],t[2][0]=[19,18,28,29,25],t[2][1]=[17,16,30,31,28],t[2][2]=[23,22,24,25,18],t[2][3]=[21,20,26,27,22],t[3]=[,,,,],t[3][0]=[8,9,7,6,3],t[3][1]=[10,11,5,4,7],t[3][2]=[12,13,3,2,8],t[3][3]=[14,15,1,0,13],this.keySchedule=function(r){const n=[,,,,,,,,],i=Array(32);let a;for(let e=0;e<4;e++)a=4*e,n[e]=r[a]<<24|r[a+1]<<16|r[a+2]<<8|r[a+3];const o=[6,7,4,5];let c,u=0;for(let r=0;r<2;r++)for(let r=0;r<4;r++){for(a=0;a<4;a++){const t=e[r][a];c=n[t[1]],c^=s[4][n[t[2]>>>2]>>>24-8*(3&t[2])&255],c^=s[5][n[t[3]>>>2]>>>24-8*(3&t[3])&255],c^=s[6][n[t[4]>>>2]>>>24-8*(3&t[4])&255],c^=s[7][n[t[5]>>>2]>>>24-8*(3&t[5])&255],c^=s[o[a]][n[t[6]>>>2]>>>24-8*(3&t[6])&255],n[t[0]]=c}for(a=0;a<4;a++){const e=t[r][a];c=s[4][n[e[0]>>>2]>>>24-8*(3&e[0])&255],c^=s[5][n[e[1]>>>2]>>>24-8*(3&e[1])&255],c^=s[6][n[e[2]>>>2]>>>24-8*(3&e[2])&255],c^=s[7][n[e[3]>>>2]>>>24-8*(3&e[3])&255],c^=s[4+a][n[e[4]>>>2]>>>24-8*(3&e[4])&255],i[u]=c,u++}}for(let e=0;e<16;e++)this.masking[e]=i[e],this.rotate[e]=31&i[16+e]};const s=[,,,,,,,,];s[0]=[821772500,2678128395,1810681135,1059425402,505495343,2617265619,1610868032,3483355465,3218386727,2294005173,3791863952,2563806837,1852023008,365126098,3269944861,584384398,677919599,3229601881,4280515016,2002735330,1136869587,3744433750,2289869850,2731719981,2714362070,879511577,1639411079,575934255,717107937,2857637483,576097850,2731753936,1725645e3,2810460463,5111599,767152862,2543075244,1251459544,1383482551,3052681127,3089939183,3612463449,1878520045,1510570527,2189125840,2431448366,582008916,3163445557,1265446783,1354458274,3529918736,3202711853,3073581712,3912963487,3029263377,1275016285,4249207360,2905708351,3304509486,1442611557,3585198765,2712415662,2731849581,3248163920,2283946226,208555832,2766454743,1331405426,1447828783,3315356441,3108627284,2957404670,2981538698,3339933917,1669711173,286233437,1465092821,1782121619,3862771680,710211251,980974943,1651941557,430374111,2051154026,704238805,4128970897,3144820574,2857402727,948965521,3333752299,2227686284,718756367,2269778983,2731643755,718440111,2857816721,3616097120,1113355533,2478022182,410092745,1811985197,1944238868,2696854588,1415722873,1682284203,1060277122,1998114690,1503841958,82706478,2315155686,1068173648,845149890,2167947013,1768146376,1993038550,3566826697,3390574031,940016341,3355073782,2328040721,904371731,1205506512,4094660742,2816623006,825647681,85914773,2857843460,1249926541,1417871568,3287612,3211054559,3126306446,1975924523,1353700161,2814456437,2438597621,1800716203,722146342,2873936343,1151126914,4160483941,2877670899,458611604,2866078500,3483680063,770352098,2652916994,3367839148,3940505011,3585973912,3809620402,718646636,2504206814,2914927912,3631288169,2857486607,2860018678,575749918,2857478043,718488780,2069512688,3548183469,453416197,1106044049,3032691430,52586708,3378514636,3459808877,3211506028,1785789304,218356169,3571399134,3759170522,1194783844,1523787992,3007827094,1975193539,2555452411,1341901877,3045838698,3776907964,3217423946,2802510864,2889438986,1057244207,1636348243,3761863214,1462225785,2632663439,481089165,718503062,24497053,3332243209,3344655856,3655024856,3960371065,1195698900,2971415156,3710176158,2115785917,4027663609,3525578417,2524296189,2745972565,3564906415,1372086093,1452307862,2780501478,1476592880,3389271281,18495466,2378148571,901398090,891748256,3279637769,3157290713,2560960102,1447622437,4284372637,216884176,2086908623,1879786977,3588903153,2242455666,2938092967,3559082096,2810645491,758861177,1121993112,215018983,642190776,4169236812,1196255959,2081185372,3508738393,941322904,4124243163,2877523539,1848581667,2205260958,3180453958,2589345134,3694731276,550028657,2519456284,3789985535,2973870856,2093648313,443148163,46942275,2734146937,1117713533,1115362972,1523183689,3717140224,1551984063],s[1]=[522195092,4010518363,1776537470,960447360,4267822970,4005896314,1435016340,1929119313,2913464185,1310552629,3579470798,3724818106,2579771631,1594623892,417127293,2715217907,2696228731,1508390405,3994398868,3925858569,3695444102,4019471449,3129199795,3770928635,3520741761,990456497,4187484609,2783367035,21106139,3840405339,631373633,3783325702,532942976,396095098,3548038825,4267192484,2564721535,2011709262,2039648873,620404603,3776170075,2898526339,3612357925,4159332703,1645490516,223693667,1567101217,3362177881,1029951347,3470931136,3570957959,1550265121,119497089,972513919,907948164,3840628539,1613718692,3594177948,465323573,2659255085,654439692,2575596212,2699288441,3127702412,277098644,624404830,4100943870,2717858591,546110314,2403699828,3655377447,1321679412,4236791657,1045293279,4010672264,895050893,2319792268,494945126,1914543101,2777056443,3894764339,2219737618,311263384,4275257268,3458730721,669096869,3584475730,3835122877,3319158237,3949359204,2005142349,2713102337,2228954793,3769984788,569394103,3855636576,1425027204,108000370,2736431443,3671869269,3043122623,1750473702,2211081108,762237499,3972989403,2798899386,3061857628,2943854345,867476300,964413654,1591880597,1594774276,2179821409,552026980,3026064248,3726140315,2283577634,3110545105,2152310760,582474363,1582640421,1383256631,2043843868,3322775884,1217180674,463797851,2763038571,480777679,2718707717,2289164131,3118346187,214354409,200212307,3810608407,3025414197,2674075964,3997296425,1847405948,1342460550,510035443,4080271814,815934613,833030224,1620250387,1945732119,2703661145,3966000196,1388869545,3456054182,2687178561,2092620194,562037615,1356438536,3409922145,3261847397,1688467115,2150901366,631725691,3840332284,549916902,3455104640,394546491,837744717,2114462948,751520235,2221554606,2415360136,3999097078,2063029875,803036379,2702586305,821456707,3019566164,360699898,4018502092,3511869016,3677355358,2402471449,812317050,49299192,2570164949,3259169295,2816732080,3331213574,3101303564,2156015656,3705598920,3546263921,143268808,3200304480,1638124008,3165189453,3341807610,578956953,2193977524,3638120073,2333881532,807278310,658237817,2969561766,1641658566,11683945,3086995007,148645947,1138423386,4158756760,1981396783,2401016740,3699783584,380097457,2680394679,2803068651,3334260286,441530178,4016580796,1375954390,761952171,891809099,2183123478,157052462,3683840763,1592404427,341349109,2438483839,1417898363,644327628,2233032776,2353769706,2201510100,220455161,1815641738,182899273,2995019788,3627381533,3702638151,2890684138,1052606899,588164016,1681439879,4038439418,2405343923,4229449282,167996282,1336969661,1688053129,2739224926,1543734051,1046297529,1138201970,2121126012,115334942,1819067631,1902159161,1941945968,2206692869,1159982321],s[2]=[2381300288,637164959,3952098751,3893414151,1197506559,916448331,2350892612,2932787856,3199334847,4009478890,3905886544,1373570990,2450425862,4037870920,3778841987,2456817877,286293407,124026297,3001279700,1028597854,3115296800,4208886496,2691114635,2188540206,1430237888,1218109995,3572471700,308166588,570424558,2187009021,2455094765,307733056,1310360322,3135275007,1384269543,2388071438,863238079,2359263624,2801553128,3380786597,2831162807,1470087780,1728663345,4072488799,1090516929,532123132,2389430977,1132193179,2578464191,3051079243,1670234342,1434557849,2711078940,1241591150,3314043432,3435360113,3091448339,1812415473,2198440252,267246943,796911696,3619716990,38830015,1526438404,2806502096,374413614,2943401790,1489179520,1603809326,1920779204,168801282,260042626,2358705581,1563175598,2397674057,1356499128,2217211040,514611088,2037363785,2186468373,4022173083,2792511869,2913485016,1173701892,4200428547,3896427269,1334932762,2455136706,602925377,2835607854,1613172210,41346230,2499634548,2457437618,2188827595,41386358,4172255629,1313404830,2405527007,3801973774,2217704835,873260488,2528884354,2478092616,4012915883,2555359016,2006953883,2463913485,575479328,2218240648,2099895446,660001756,2341502190,3038761536,3888151779,3848713377,3286851934,1022894237,1620365795,3449594689,1551255054,15374395,3570825345,4249311020,4151111129,3181912732,310226346,1133119310,530038928,136043402,2476768958,3107506709,2544909567,1036173560,2367337196,1681395281,1758231547,3641649032,306774401,1575354324,3716085866,1990386196,3114533736,2455606671,1262092282,3124342505,2768229131,4210529083,1833535011,423410938,660763973,2187129978,1639812e3,3508421329,3467445492,310289298,272797111,2188552562,2456863912,310240523,677093832,1013118031,901835429,3892695601,1116285435,3036471170,1337354835,243122523,520626091,277223598,4244441197,4194248841,1766575121,594173102,316590669,742362309,3536858622,4176435350,3838792410,2501204839,1229605004,3115755532,1552908988,2312334149,979407927,3959474601,1148277331,176638793,3614686272,2083809052,40992502,1340822838,2731552767,3535757508,3560899520,1354035053,122129617,7215240,2732932949,3118912700,2718203926,2539075635,3609230695,3725561661,1928887091,2882293555,1988674909,2063640240,2491088897,1459647954,4189817080,2302804382,1113892351,2237858528,1927010603,4002880361,1856122846,1594404395,2944033133,3855189863,3474975698,1643104450,4054590833,3431086530,1730235576,2984608721,3084664418,2131803598,4178205752,267404349,1617849798,1616132681,1462223176,736725533,2327058232,551665188,2945899023,1749386277,2575514597,1611482493,674206544,2201269090,3642560800,728599968,1680547377,2620414464,1388111496,453204106,4156223445,1094905244,2754698257,2201108165,3757000246,2704524545,3922940700,3996465027],s[3]=[2645754912,532081118,2814278639,3530793624,1246723035,1689095255,2236679235,4194438865,2116582143,3859789411,157234593,2045505824,4245003587,1687664561,4083425123,605965023,672431967,1336064205,3376611392,214114848,4258466608,3232053071,489488601,605322005,3998028058,264917351,1912574028,756637694,436560991,202637054,135989450,85393697,2152923392,3896401662,2895836408,2145855233,3535335007,115294817,3147733898,1922296357,3464822751,4117858305,1037454084,2725193275,2127856640,1417604070,1148013728,1827919605,642362335,2929772533,909348033,1346338451,3547799649,297154785,1917849091,4161712827,2883604526,3968694238,1469521537,3780077382,3375584256,1763717519,136166297,4290970789,1295325189,2134727907,2798151366,1566297257,3672928234,2677174161,2672173615,965822077,2780786062,289653839,1133871874,3491843819,35685304,1068898316,418943774,672553190,642281022,2346158704,1954014401,3037126780,4079815205,2030668546,3840588673,672283427,1776201016,359975446,3750173538,555499703,2769985273,1324923,69110472,152125443,3176785106,3822147285,1340634837,798073664,1434183902,15393959,216384236,1303690150,3881221631,3711134124,3960975413,106373927,2578434224,1455997841,1801814300,1578393881,1854262133,3188178946,3258078583,2302670060,1539295533,3505142565,3078625975,2372746020,549938159,3278284284,2620926080,181285381,2865321098,3970029511,68876850,488006234,1728155692,2608167508,836007927,2435231793,919367643,3339422534,3655756360,1457871481,40520939,1380155135,797931188,234455205,2255801827,3990488299,397000196,739833055,3077865373,2871719860,4022553888,772369276,390177364,3853951029,557662966,740064294,1640166671,1699928825,3535942136,622006121,3625353122,68743880,1742502,219489963,1664179233,1577743084,1236991741,410585305,2366487942,823226535,1050371084,3426619607,3586839478,212779912,4147118561,1819446015,1911218849,530248558,3486241071,3252585495,2886188651,3410272728,2342195030,20547779,2982490058,3032363469,3631753222,312714466,1870521650,1493008054,3491686656,615382978,4103671749,2534517445,1932181,2196105170,278426614,6369430,3274544417,2913018367,697336853,2143000447,2946413531,701099306,1558357093,2805003052,3500818408,2321334417,3567135975,216290473,3591032198,23009561,1996984579,3735042806,2024298078,3739440863,569400510,2339758983,3016033873,3097871343,3639523026,3844324983,3256173865,795471839,2951117563,4101031090,4091603803,3603732598,971261452,534414648,428311343,3389027175,2844869880,694888862,1227866773,2456207019,3043454569,2614353370,3749578031,3676663836,459166190,4132644070,1794958188,51825668,2252611902,3084671440,2036672799,3436641603,1099053433,2469121526,3059204941,1323291266,2061838604,1018778475,2233344254,2553501054,334295216,3556750194,1065731521,183467730],s[4]=[2127105028,745436345,2601412319,2788391185,3093987327,500390133,1155374404,389092991,150729210,3891597772,3523549952,1935325696,716645080,946045387,2901812282,1774124410,3869435775,4039581901,3293136918,3438657920,948246080,363898952,3867875531,1286266623,1598556673,68334250,630723836,1104211938,1312863373,613332731,2377784574,1101634306,441780740,3129959883,1917973735,2510624549,3238456535,2544211978,3308894634,1299840618,4076074851,1756332096,3977027158,297047435,3790297736,2265573040,3621810518,1311375015,1667687725,47300608,3299642885,2474112369,201668394,1468347890,576830978,3594690761,3742605952,1958042578,1747032512,3558991340,1408974056,3366841779,682131401,1033214337,1545599232,4265137049,206503691,103024618,2855227313,1337551222,2428998917,2963842932,4015366655,3852247746,2796956967,3865723491,3747938335,247794022,3755824572,702416469,2434691994,397379957,851939612,2314769512,218229120,1380406772,62274761,214451378,3170103466,2276210409,3845813286,28563499,446592073,1693330814,3453727194,29968656,3093872512,220656637,2470637031,77972100,1667708854,1358280214,4064765667,2395616961,325977563,4277240721,4220025399,3605526484,3355147721,811859167,3069544926,3962126810,652502677,3075892249,4132761541,3498924215,1217549313,3250244479,3858715919,3053989961,1538642152,2279026266,2875879137,574252750,3324769229,2651358713,1758150215,141295887,2719868960,3515574750,4093007735,4194485238,1082055363,3417560400,395511885,2966884026,179534037,3646028556,3738688086,1092926436,2496269142,257381841,3772900718,1636087230,1477059743,2499234752,3811018894,2675660129,3285975680,90732309,1684827095,1150307763,1723134115,3237045386,1769919919,1240018934,815675215,750138730,2239792499,1234303040,1995484674,138143821,675421338,1145607174,1936608440,3238603024,2345230278,2105974004,323969391,779555213,3004902369,2861610098,1017501463,2098600890,2628620304,2940611490,2682542546,1171473753,3656571411,3687208071,4091869518,393037935,159126506,1662887367,1147106178,391545844,3452332695,1891500680,3016609650,1851642611,546529401,1167818917,3194020571,2848076033,3953471836,575554290,475796850,4134673196,450035699,2351251534,844027695,1080539133,86184846,1554234488,3692025454,1972511363,2018339607,1491841390,1141460869,1061690759,4244549243,2008416118,2351104703,2868147542,1598468138,722020353,1027143159,212344630,1387219594,1725294528,3745187956,2500153616,458938280,4129215917,1828119673,544571780,3503225445,2297937496,1241802790,267843827,2694610800,1397140384,1558801448,3782667683,1806446719,929573330,2234912681,400817706,616011623,4121520928,3603768725,1761550015,1968522284,4053731006,4192232858,4005120285,872482584,3140537016,3894607381,2287405443,1963876937,3663887957,1584857e3,2975024454,1833426440,4025083860],s[5]=[4143615901,749497569,1285769319,3795025788,2514159847,23610292,3974978748,844452780,3214870880,3751928557,2213566365,1676510905,448177848,3730751033,4086298418,2307502392,871450977,3222878141,4110862042,3831651966,2735270553,1310974780,2043402188,1218528103,2736035353,4274605013,2702448458,3936360550,2693061421,162023535,2827510090,687910808,23484817,3784910947,3371371616,779677500,3503626546,3473927188,4157212626,3500679282,4248902014,2466621104,3899384794,1958663117,925738300,1283408968,3669349440,1840910019,137959847,2679828185,1239142320,1315376211,1547541505,1690155329,739140458,3128809933,3933172616,3876308834,905091803,1548541325,4040461708,3095483362,144808038,451078856,676114313,2861728291,2469707347,993665471,373509091,2599041286,4025009006,4170239449,2149739950,3275793571,3749616649,2794760199,1534877388,572371878,2590613551,1753320020,3467782511,1405125690,4270405205,633333386,3026356924,3475123903,632057672,2846462855,1404951397,3882875879,3915906424,195638627,2385783745,3902872553,1233155085,3355999740,2380578713,2702246304,2144565621,3663341248,3894384975,2502479241,4248018925,3094885567,1594115437,572884632,3385116731,767645374,1331858858,1475698373,3793881790,3532746431,1321687957,619889600,1121017241,3440213920,2070816767,2833025776,1933951238,4095615791,890643334,3874130214,859025556,360630002,925594799,1764062180,3920222280,4078305929,979562269,2810700344,4087740022,1949714515,546639971,1165388173,3069891591,1495988560,922170659,1291546247,2107952832,1813327274,3406010024,3306028637,4241950635,153207855,2313154747,1608695416,1150242611,1967526857,721801357,1220138373,3691287617,3356069787,2112743302,3281662835,1111556101,1778980689,250857638,2298507990,673216130,2846488510,3207751581,3562756981,3008625920,3417367384,2198807050,529510932,3547516680,3426503187,2364944742,102533054,2294910856,1617093527,1204784762,3066581635,1019391227,1069574518,1317995090,1691889997,3661132003,510022745,3238594800,1362108837,1817929911,2184153760,805817662,1953603311,3699844737,120799444,2118332377,207536705,2282301548,4120041617,145305846,2508124933,3086745533,3261524335,1877257368,2977164480,3160454186,2503252186,4221677074,759945014,254147243,2767453419,3801518371,629083197,2471014217,907280572,3900796746,940896768,2751021123,2625262786,3161476951,3661752313,3260732218,1425318020,2977912069,1496677566,3988592072,2140652971,3126511541,3069632175,977771578,1392695845,1698528874,1411812681,1369733098,1343739227,3620887944,1142123638,67414216,3102056737,3088749194,1626167401,2546293654,3941374235,697522451,33404913,143560186,2595682037,994885535,1247667115,3859094837,2699155541,3547024625,4114935275,2968073508,3199963069,2732024527,1237921620,951448369,1898488916,1211705605,2790989240,2233243581,3598044975],s[6]=[2246066201,858518887,1714274303,3485882003,713916271,2879113490,3730835617,539548191,36158695,1298409750,419087104,1358007170,749914897,2989680476,1261868530,2995193822,2690628854,3443622377,3780124940,3796824509,2976433025,4259637129,1551479e3,512490819,1296650241,951993153,2436689437,2460458047,144139966,3136204276,310820559,3068840729,643875328,1969602020,1680088954,2185813161,3283332454,672358534,198762408,896343282,276269502,3014846926,84060815,197145886,376173866,3943890818,3813173521,3545068822,1316698879,1598252827,2633424951,1233235075,859989710,2358460855,3503838400,3409603720,1203513385,1193654839,2792018475,2060853022,207403770,1144516871,3068631394,1121114134,177607304,3785736302,326409831,1929119770,2983279095,4183308101,3474579288,3200513878,3228482096,119610148,1170376745,3378393471,3163473169,951863017,3337026068,3135789130,2907618374,1183797387,2015970143,4045674555,2182986399,2952138740,3928772205,384012900,2454997643,10178499,2879818989,2596892536,111523738,2995089006,451689641,3196290696,235406569,1441906262,3890558523,3013735005,4158569349,1644036924,376726067,1006849064,3664579700,2041234796,1021632941,1374734338,2566452058,371631263,4007144233,490221539,206551450,3140638584,1053219195,1853335209,3412429660,3562156231,735133835,1623211703,3104214392,2738312436,4096837757,3366392578,3110964274,3956598718,3196820781,2038037254,3877786376,2339753847,300912036,3766732888,2372630639,1516443558,4200396704,1574567987,4069441456,4122592016,2699739776,146372218,2748961456,2043888151,35287437,2596680554,655490400,1132482787,110692520,1031794116,2188192751,1324057718,1217253157,919197030,686247489,3261139658,1028237775,3135486431,3059715558,2460921700,986174950,2661811465,4062904701,2752986992,3709736643,367056889,1353824391,731860949,1650113154,1778481506,784341916,357075625,3608602432,1074092588,2480052770,3811426202,92751289,877911070,3600361838,1231880047,480201094,3756190983,3094495953,434011822,87971354,363687820,1717726236,1901380172,3926403882,2481662265,400339184,1490350766,2661455099,1389319756,2558787174,784598401,1983468483,30828846,3550527752,2716276238,3841122214,1765724805,1955612312,1277890269,1333098070,1564029816,2704417615,1026694237,3287671188,1260819201,3349086767,1016692350,1582273796,1073413053,1995943182,694588404,1025494639,3323872702,3551898420,4146854327,453260480,1316140391,1435673405,3038941953,3486689407,1622062951,403978347,817677117,950059133,4246079218,3278066075,1486738320,1417279718,481875527,2549965225,3933690356,760697757,1452955855,3897451437,1177426808,1702951038,4085348628,2447005172,1084371187,3516436277,3068336338,1073369276,1027665953,3284188590,1230553676,1368340146,2226246512,267243139,2274220762,4070734279,2497715176,2423353163,2504755875],s[7]=[3793104909,3151888380,2817252029,895778965,2005530807,3871412763,237245952,86829237,296341424,3851759377,3974600970,2475086196,709006108,1994621201,2972577594,937287164,3734691505,168608556,3189338153,2225080640,3139713551,3033610191,3025041904,77524477,185966941,1208824168,2344345178,1721625922,3354191921,1066374631,1927223579,1971335949,2483503697,1551748602,2881383779,2856329572,3003241482,48746954,1398218158,2050065058,313056748,4255789917,393167848,1912293076,940740642,3465845460,3091687853,2522601570,2197016661,1727764327,364383054,492521376,1291706479,3264136376,1474851438,1685747964,2575719748,1619776915,1814040067,970743798,1561002147,2925768690,2123093554,1880132620,3151188041,697884420,2550985770,2607674513,2659114323,110200136,1489731079,997519150,1378877361,3527870668,478029773,2766872923,1022481122,431258168,1112503832,897933369,2635587303,669726182,3383752315,918222264,163866573,3246985393,3776823163,114105080,1903216136,761148244,3571337562,1690750982,3166750252,1037045171,1888456500,2010454850,642736655,616092351,365016990,1185228132,4174898510,1043824992,2023083429,2241598885,3863320456,3279669087,3674716684,108438443,2132974366,830746235,606445527,4173263986,2204105912,1844756978,2532684181,4245352700,2969441100,3796921661,1335562986,4061524517,2720232303,2679424040,634407289,885462008,3294724487,3933892248,2094100220,339117932,4048830727,3202280980,1458155303,2689246273,1022871705,2464987878,3714515309,353796843,2822958815,4256850100,4052777845,551748367,618185374,3778635579,4020649912,1904685140,3069366075,2670879810,3407193292,2954511620,4058283405,2219449317,3135758300,1120655984,3447565834,1474845562,3577699062,550456716,3466908712,2043752612,881257467,869518812,2005220179,938474677,3305539448,3850417126,1315485940,3318264702,226533026,965733244,321539988,1136104718,804158748,573969341,3708209826,937399083,3290727049,2901666755,1461057207,4013193437,4066861423,3242773476,2421326174,1581322155,3028952165,786071460,3900391652,3918438532,1485433313,4023619836,3708277595,3678951060,953673138,1467089153,1930354364,1533292819,2492563023,1346121658,1685000834,1965281866,3765933717,4190206607,2052792609,3515332758,690371149,3125873887,2180283551,2903598061,3933952357,436236910,289419410,14314871,1242357089,2904507907,1616633776,2666382180,585885352,3471299210,2699507360,1432659641,277164553,3354103607,770115018,2303809295,3741942315,3177781868,2853364978,2269453327,3774259834,987383833,1290892879,225909803,1741533526,890078084,1496906255,1111072499,916028167,243534141,1252605537,2204162171,531204876,290011180,3916834213,102027703,237315147,209093447,1486785922,220223953,2758195998,4175039106,82940208,3127791296,2569425252,518464269,1353887104,3941492737,2377294467,3935040926]}function Df(e){this.cast5=new Pf,this.cast5.setKey(e),this.encrypt=function(e){return this.cast5.encrypt(e)}}Uf.keySize=Uf.prototype.keySize=24,Uf.blockSize=Uf.prototype.blockSize=8,Df.blockSize=Df.prototype.blockSize=8,Df.keySize=Df.prototype.keySize=16;const xf=4294967295;function Qf(e,t){return(e<<t|e>>>32-t)&xf}function Rf(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24}function Tf(e,t,r){e.splice(t,4,255&r,r>>>8&255,r>>>16&255,r>>>24&255)}function Mf(e,t){return e>>>8*t&255}function Lf(e){this.tf=function(){let e=null,t=null,r=-1,n=[],i=[[],[],[],[]];function s(e){return i[0][Mf(e,0)]^i[1][Mf(e,1)]^i[2][Mf(e,2)]^i[3][Mf(e,3)]}function a(e){return i[0][Mf(e,3)]^i[1][Mf(e,0)]^i[2][Mf(e,1)]^i[3][Mf(e,2)]}function o(e,t){let r=s(t[0]),i=a(t[1]);t[2]=Qf(t[2]^r+i+n[4*e+8]&xf,31),t[3]=Qf(t[3],1)^r+2*i+n[4*e+9]&xf,r=s(t[2]),i=a(t[3]),t[0]=Qf(t[0]^r+i+n[4*e+10]&xf,31),t[1]=Qf(t[1],1)^r+2*i+n[4*e+11]&xf}function c(e,t){let r=s(t[0]),i=a(t[1]);t[2]=Qf(t[2],1)^r+i+n[4*e+10]&xf,t[3]=Qf(t[3]^r+2*i+n[4*e+11]&xf,31),r=s(t[2]),i=a(t[3]),t[0]=Qf(t[0],1)^r+i+n[4*e+8]&xf,t[1]=Qf(t[1]^r+2*i+n[4*e+9]&xf,31)}return{name:"twofish",blocksize:16,open:function(t){let r,s,a,o,c;e=t;const u=[],h=[],l=[];let y;const f=[];let p,g,d;const A=[[8,1,7,13,6,15,3,2,0,11,5,9,14,12,10,4],[2,8,11,13,15,7,6,14,3,1,9,4,0,10,12,5]],w=[[14,12,11,8,1,2,3,5,15,4,10,6,7,0,9,13],[1,14,2,11,4,12,3,7,6,13,10,5,15,9,0,8]],m=[[11,10,5,14,6,13,9,0,12,8,15,3,2,4,7,1],[4,12,7,5,1,6,9,10,0,14,13,8,2,11,3,15]],b=[[13,7,15,4,1,2,6,14,9,11,3,0,8,5,12,10],[11,9,5,1,12,3,13,14,6,4,7,15,2,0,8,10]],k=[0,8,1,9,2,10,3,11,4,12,5,13,6,14,7,15],E=[0,9,2,11,4,13,6,15,8,1,10,3,12,5,14,7],v=[[],[]],B=[[],[],[],[]];function S(e){return e^e>>2^[0,90,180,238][3&e]}function I(e){return e^e>>1^e>>2^[0,238,180,90][3&e]}function K(e,t){let r,n,i;for(r=0;r<8;r++)n=t>>>24,t=t<<8&xf|e>>>24,e=e<<8&xf,i=n<<1,128&n&&(i^=333),t^=n^i<<16,i^=n>>>1,1&n&&(i^=166),t^=i<<24|i<<8;return t}function C(e,t){const r=t>>4,n=15&t,i=A[e][r^n],s=w[e][k[n]^E[r]];return b[e][k[s]^E[i]]<<4|m[e][i^s]}function U(e,t){let r=Mf(e,0),n=Mf(e,1),i=Mf(e,2),s=Mf(e,3);switch(y){case 4:r=v[1][r]^Mf(t[3],0),n=v[0][n]^Mf(t[3],1),i=v[0][i]^Mf(t[3],2),s=v[1][s]^Mf(t[3],3);case 3:r=v[1][r]^Mf(t[2],0),n=v[1][n]^Mf(t[2],1),i=v[0][i]^Mf(t[2],2),s=v[0][s]^Mf(t[2],3);case 2:r=v[0][v[0][r]^Mf(t[1],0)]^Mf(t[0],0),n=v[0][v[1][n]^Mf(t[1],1)]^Mf(t[0],1),i=v[1][v[0][i]^Mf(t[1],2)]^Mf(t[0],2),s=v[1][v[1][s]^Mf(t[1],3)]^Mf(t[0],3)}return B[0][r]^B[1][n]^B[2][i]^B[3][s]}for(e=e.slice(0,32),r=e.length;16!==r&&24!==r&&32!==r;)e[r++]=0;for(r=0;r<e.length;r+=4)l[r>>2]=Rf(e,r);for(r=0;r<256;r++)v[0][r]=C(0,r),v[1][r]=C(1,r);for(r=0;r<256;r++)p=v[1][r],g=S(p),d=I(p),B[0][r]=p+(g<<8)+(d<<16)+(d<<24),B[2][r]=g+(d<<8)+(p<<16)+(d<<24),p=v[0][r],g=S(p),d=I(p),B[1][r]=d+(d<<8)+(g<<16)+(p<<24),B[3][r]=g+(p<<8)+(d<<16)+(g<<24);for(y=l.length/2,r=0;r<y;r++)s=l[r+r],u[r]=s,a=l[r+r+1],h[r]=a,f[y-r-1]=K(s,a);for(r=0;r<40;r+=2)s=16843009*r,a=s+16843009,s=U(s,u),a=Qf(U(a,h),8),n[r]=s+a&xf,n[r+1]=Qf(s+2*a,9);for(r=0;r<256;r++)switch(s=a=o=c=r,y){case 4:s=v[1][s]^Mf(f[3],0),a=v[0][a]^Mf(f[3],1),o=v[0][o]^Mf(f[3],2),c=v[1][c]^Mf(f[3],3);case 3:s=v[1][s]^Mf(f[2],0),a=v[1][a]^Mf(f[2],1),o=v[0][o]^Mf(f[2],2),c=v[0][c]^Mf(f[2],3);case 2:i[0][r]=B[0][v[0][v[0][s]^Mf(f[1],0)]^Mf(f[0],0)],i[1][r]=B[1][v[0][v[1][a]^Mf(f[1],1)]^Mf(f[0],1)],i[2][r]=B[2][v[1][v[0][o]^Mf(f[1],2)]^Mf(f[0],2)],i[3][r]=B[3][v[1][v[1][c]^Mf(f[1],3)]^Mf(f[0],3)]}},close:function(){n=[],i=[[],[],[],[]]},encrypt:function(e,i){t=e,r=i;const s=[Rf(t,r)^n[0],Rf(t,r+4)^n[1],Rf(t,r+8)^n[2],Rf(t,r+12)^n[3]];for(let e=0;e<8;e++)o(e,s);return Tf(t,r,s[2]^n[4]),Tf(t,r+4,s[3]^n[5]),Tf(t,r+8,s[0]^n[6]),Tf(t,r+12,s[1]^n[7]),r+=16,t},decrypt:function(e,i){t=e,r=i;const s=[Rf(t,r)^n[4],Rf(t,r+4)^n[5],Rf(t,r+8)^n[6],Rf(t,r+12)^n[7]];for(let e=7;e>=0;e--)c(e,s);Tf(t,r,s[2]^n[0]),Tf(t,r+4,s[3]^n[1]),Tf(t,r+8,s[0]^n[2]),Tf(t,r+12,s[1]^n[3]),r+=16},finalize:function(){return t}}}(),this.tf.open(Array.from(e),0),this.encrypt=function(e){return this.tf.encrypt(Array.from(e),0)}}function Nf(){}function Ff(e){this.bf=new Nf,this.bf.init(e),this.encrypt=function(e){return this.bf.encryptBlock(e)}}Lf.keySize=Lf.prototype.keySize=32,Lf.blockSize=Lf.prototype.blockSize=16,Nf.prototype.BLOCKSIZE=8,Nf.prototype.SBOXES=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]],Nf.prototype.PARRAY=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],Nf.prototype.NN=16,Nf.prototype._clean=function(e){if(e<0){e=(2147483647&e)+2147483648}return e},Nf.prototype._F=function(e){let t;const r=255&e,n=255&(e>>>=8),i=255&(e>>>=8),s=255&(e>>>=8);return t=this.sboxes[0][s]+this.sboxes[1][i],t^=this.sboxes[2][n],t+=this.sboxes[3][r],t},Nf.prototype._encryptBlock=function(e){let t,r=e[0],n=e[1];for(t=0;t<this.NN;++t){r^=this.parray[t],n=this._F(r)^n;const e=r;r=n,n=e}r^=this.parray[this.NN+0],n^=this.parray[this.NN+1],e[0]=this._clean(n),e[1]=this._clean(r)},Nf.prototype.encryptBlock=function(e){let t;const r=[0,0],n=this.BLOCKSIZE/2;for(t=0;t<this.BLOCKSIZE/2;++t)r[0]=r[0]<<8|255&e[t+0],r[1]=r[1]<<8|255&e[t+n];this._encryptBlock(r);const i=[];for(t=0;t<this.BLOCKSIZE/2;++t)i[t+0]=r[0]>>>24-8*t&255,i[t+n]=r[1]>>>24-8*t&255;return i},Nf.prototype._decryptBlock=function(e){let t,r=e[0],n=e[1];for(t=this.NN+1;t>1;--t){r^=this.parray[t],n=this._F(r)^n;const e=r;r=n,n=e}r^=this.parray[1],n^=this.parray[0],e[0]=this._clean(n),e[1]=this._clean(r)},Nf.prototype.init=function(e){let t,r=0;for(this.parray=[],t=0;t<this.NN+2;++t){let n=0;for(let t=0;t<4;++t)n=n<<8|255&e[r],++r>=e.length&&(r=0);this.parray[t]=this.PARRAY[t]^n}for(this.sboxes=[],t=0;t<4;++t)for(this.sboxes[t]=[],r=0;r<256;++r)this.sboxes[t][r]=this.SBOXES[t][r];const n=[0,0];for(t=0;t<this.NN+2;t+=2)this._encryptBlock(n),this.parray[t+0]=n[0],this.parray[t+1]=n[1];for(t=0;t<4;++t)for(r=0;r<256;r+=2)this._encryptBlock(n),this.sboxes[t][r+0]=n[0],this.sboxes[t][r+1]=n[1]},Ff.keySize=Ff.prototype.keySize=16,Ff.blockSize=Ff.prototype.blockSize=8;const Of=new Map(Object.entries({tripledes:Uf,cast5:Df,twofish:Lf,blowfish:Ff}));var Hf=/*#__PURE__*/Object.freeze({__proto__:null,legacyCiphers:Of});
17
+ /*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */const _f=Tu,zf=Wu;function Gf(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return 0===r}function qf(...e){const t=e=>"number"==typeof e?e:e.bytesLen,r=e.reduce(((e,r)=>e+t(r)),0);return{bytesLen:r,encode:n=>{const i=new Uint8Array(r);for(let r=0,s=0;r<e.length;r++){const a=e[r],o=t(a),c="number"==typeof a?n[r]:a.encode(n[r]);_f(c,o),i.set(c,s),"number"!=typeof a&&c.fill(0),s+=o}return i},decode:n=>{_f(n,r);const i=[];for(const r of e){const e=t(r),s=n.subarray(0,e);i.push("number"==typeof r?s:r.decode(s)),n=n.subarray(e)}return i}}}function jf(e,t){const r=t*e.bytesLen;return{bytesLen:r,encode:n=>{if(n.length!==t)throw Error(`vecCoder.encode: wrong length=${n.length}. Expected: ${t}`);const i=new Uint8Array(r);for(let t=0,r=0;t<n.length;t++){const s=e.encode(n[t]);i.set(s,r),s.fill(0),r+=s.length}return i},decode:t=>{_f(t,r);const n=[];for(let r=0;r<t.length;r+=e.bytesLen)n.push(e.decode(t.subarray(r,r+e.bytesLen)));return n}}}function Vf(...e){for(const t of e)if(Array.isArray(t))for(const e of t)e.fill(0);else t.fill(0)}function Yf(e){return(1<<e)-1}
18
+ /*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */function Zf(e,t=8){const r=e.toString(2).padStart(8,"0").slice(-t).padStart(7,"0").split("").reverse().join("");return Number.parseInt(r,2)}const Wf=e=>{const{newPoly:t,N:r,Q:n,F:i,ROOT_OF_UNITY:s,brvBits:a,isKyber:o}=e,c=(e,t=n)=>{const r=e%t|0;return 0|(r>=0?r:t+r)};const u=function(){const e=t(r);for(let t=0;t<r;t++){const r=Zf(t,a),i=BigInt(s)**BigInt(r)%BigInt(n);e[t]=0|Number(i)}return e}(),h=o?128:r,l=o?1:0,y={encode:e=>{for(let t=1,n=128;n>l;n>>=1)for(let i=0;i<r;i+=2*n){const r=u[t++];for(let t=i;t<i+n;t++){const i=c(r*e[t+n]);e[t+n]=0|c(e[t]-i),e[t]=0|c(e[t]+i)}}return e},decode:e=>{for(let t=h-1,n=1+l;n<h+l;n<<=1)for(let i=0;i<r;i+=2*n){const r=u[t--];for(let t=i;t<i+n;t++){const i=e[t];e[t]=c(i+e[t+n]),e[t+n]=c(r*(e[t+n]-i))}}for(let t=0;t<e.length;t++)e[t]=c(i*e[t]);return e}};return{mod:c,smod:(e,t=n)=>{const r=0|c(e,t);return 0|(r>t>>1?r-t:r)},nttZetas:u,NTT:y,bitsCoder:(e,n)=>{const i=Yf(e),s=e*(r/8);return{bytesLen:s,encode:t=>{const r=new Uint8Array(s);for(let s=0,a=0,o=0,c=0;s<t.length;s++)for(a|=(n.encode(t[s])&i)<<o,o+=e;o>=8;o-=8,a>>=8)r[c++]=a&Yf(o);return r},decode:s=>{const a=t(r);for(let t=0,r=0,o=0,c=0;t<s.length;t++)for(r|=s[t]<<o,o+=8;o>=e;o-=e,r>>=e)a[c++]=n.decode(r&i);return a}}}}},Jf=e=>(t,r)=>{r||(r=e.blockLen);const n=new Uint8Array(t.length+2);n.set(t);const i=t.length,s=new Uint8Array(r);let a=e.create({}),o=0,c=0;return{stats:()=>({calls:o,xofs:c}),get:(t,r)=>(n[i+0]=t,n[i+1]=r,a.destroy(),a=e.create({}).update(n),o++,()=>(c++,a.xofInto(s))),clean:()=>{a.destroy(),s.fill(0),n.fill(0)}}},Xf=/* @__PURE__ */Jf(fy),$f=/* @__PURE__ */Jf(py),ep=256,tp=3329,{mod:rp,nttZetas:np,NTT:ip,bitsCoder:sp}=Wf({N:ep,Q:tp,F:3303,ROOT_OF_UNITY:17,newPoly:e=>new Uint16Array(e),brvBits:7,isKyber:!0}),ap=e=>sp(e,(e=>{if(e>=12)return{encode:e=>e,decode:e=>e};const t=2**(e-1);return{encode:t=>((t<<e)+tp/2)/tp,decode:r=>r*tp+t>>>e}})(e));function op(e,t){for(let r=0;r<ep;r++)e[r]=rp(e[r]+t[r])}function cp(e,t){for(let a=0;a<128;a++){let o=np[64+(a>>1)];1&a&&(o=-o);const{c0:c,c1:u}=(r=e[2*a+0],n=e[2*a+1],i=t[2*a+0],s=t[2*a+1],{c0:rp(n*s*o+r*i),c1:rp(r*s+n*i)});e[2*a+0]=c,e[2*a+1]=u}var r,n,i,s;return e}function up(e){const t=new Uint16Array(ep);for(let r=0;r<ep;){const n=e();if(n.length%3)throw Error("SampleNTT: unaligned block");for(let e=0;r<ep&&e+3<=n.length;e+=3){const i=4095&(n[e+0]|n[e+1]<<8),s=4095&(n[e+1]>>4|n[e+2]<<4);i<tp&&(t[r++]=i),r<ep&&s<tp&&(t[r++]=s)}}return t}function hp(e,t,r,n){const i=e(n*ep/4,t,r),s=new Uint16Array(ep),a=Fu(i);let o=0;for(let e=0,t=0,r=0,i=0;e<a.length;e++){let c=a[e];for(let e=0;e<32;e++)r+=1&c,c>>=1,o+=1,o===n?(i=r,r=0):o===2*n&&(s[t++]=rp(i-r),r=0,o=0)}if(o)throw Error("sampleCBD: leftover bits: "+o);return s}const lp=e=>{const{K:t,PRF:r,XOF:n,HASH512:i,ETA1:s,ETA2:a,du:o,dv:c}=e,u=ap(1),h=ap(c),l=ap(o),y=qf(jf(ap(12),t),32),f=jf(ap(12),t),p=qf(jf(l,t),h),g=qf(32,32);return{secretCoder:f,secretKeyLen:f.bytesLen,publicKeyLen:y.bytesLen,cipherTextLen:p.bytesLen,keygen:e=>{const a=new Uint8Array(33);a.set(e),a[32]=t;const o=i(a),[c,u]=g.decode(o),h=[],l=[];for(let e=0;e<t;e++)h.push(ip.encode(hp(r,u,e,s)));const p=n(c);for(let e=0;e<t;e++){const n=ip.encode(hp(r,u,t+e,s));for(let r=0;r<t;r++){op(n,cp(up(p.get(r,e)),h[r]))}l.push(n)}p.clean();const d={publicKey:y.encode([l,c]),secretKey:f.encode(h)};return Vf(c,u,h,l,a,o),d},encrypt:(e,i,o)=>{const[c,h]=y.decode(e),l=[];for(let e=0;e<t;e++)l.push(ip.encode(hp(r,o,e,s)));const f=n(h),g=new Uint16Array(ep),d=[];for(let e=0;e<t;e++){const n=hp(r,o,t+e,a),i=new Uint16Array(ep);for(let r=0;r<t;r++){op(i,cp(up(f.get(e,r)),l[r]))}op(n,ip.decode(i)),d.push(n),op(g,cp(c[e],l[e])),i.fill(0)}f.clean();const A=hp(r,o,2*t,a);op(A,ip.decode(g));const w=u.decode(i);return op(w,A),Vf(c,l,g,A),p.encode([d,w])},decrypt:(e,r)=>{const[n,i]=p.decode(e),s=f.decode(r),a=new Uint16Array(ep);for(let e=0;e<t;e++)op(a,cp(s[e],ip.encode(n[e])));return function(e,t){for(let r=0;r<ep;r++)e[r]=rp(e[r]-t[r])}(i,ip.decode(a)),Vf(a,s,n),u.encode(i)}}};function yp(e){const t=lp(e),{HASH256:r,HASH512:n,KDF:i}=e,{secretCoder:s,cipherTextLen:a}=t,o=t.publicKeyLen,c=qf(t.secretKeyLen,t.publicKeyLen,32,32),u=c.bytesLen;return{publicKeyLen:o,msgLen:32,keygen:(e=zf(64))=>{_f(e,64);const{publicKey:n,secretKey:i}=t.keygen(e.subarray(0,32)),s=r(n),a=c.encode([i,n,s,e.subarray(32)]);return Vf(i,s),{publicKey:n,secretKey:a}},encapsulate:(i,a=zf(32))=>{_f(i,o),_f(a,32);const c=i.subarray(0,384*e.K),u=s.encode(s.decode(c.slice()));if(!Gf(u,c))throw Vf(u),Error("ML-KEM.encapsulate: wrong publicKey modulus");Vf(u);const h=n.create().update(a).update(r(i)).digest(),l=t.encrypt(i,a,h.subarray(32,64));return h.subarray(32).fill(0),{cipherText:l,sharedSecret:h.subarray(0,32)}},decapsulate:(e,r)=>{_f(r,u),_f(e,a);const[s,o,h,l]=c.decode(r),y=t.decrypt(e,s),f=n.create().update(y).update(h).digest(),p=f.subarray(0,32),g=t.encrypt(o,y,f.subarray(32,64)),d=Gf(e,g),A=i.create({dkLen:32}).update(l).update(e).digest();return Vf(y,g,d?A:p),d?p:A}}}const fp=/* @__PURE__ */yp({...{HASH256:hy,HASH512:ly,KDF:py,XOF:Xf,PRF:function(e,t,r){return py.create({dkLen:e}).update(t).update(new Uint8Array([r])).digest()}},...{N:ep,Q:tp,K:3,ETA1:2,ETA2:2,du:10,dv:4,RBGstrength:192}}),pp=256,gp=8380417,dp=13,Ap=0|Math.floor((gp-1)/88),wp=0|Math.floor((gp-1)/32),mp={K:6,L:5,D:dp,GAMMA1:2**19,GAMMA2:wp,TAU:49,ETA:4,OMEGA:55},bp=e=>new Int32Array(e),{mod:kp,smod:Ep,NTT:vp,bitsCoder:Bp}=Wf({N:pp,Q:gp,F:8347681,ROOT_OF_UNITY:1753,newPoly:bp,isKyber:!1,brvBits:8}),Sp=e=>e,Ip=(e,t=Sp,r=Sp)=>Bp(e,{encode:e=>t(r(e)),decode:e=>r(t(e))}),Kp=(e,t)=>{for(let r=0;r<e.length;r++)e[r]=kp(e[r]+t[r]);return e},Cp=(e,t)=>{for(let r=0;r<e.length;r++)e[r]=kp(e[r]-t[r]);return e},Up=e=>{for(let t=0;t<pp;t++)e[t]<<=dp;return e},Pp=(e,t)=>{for(let r=0;r<pp;r++)if(Math.abs(Ep(e[r]))>=t)return!0;return!1},Dp=(e,t)=>{const r=bp(pp);for(let n=0;n<e.length;n++)r[n]=kp(e[n]*t[n]);return r};function xp(e){const t=bp(pp);for(let r=0;r<pp;){const n=e();if(n.length%3)throw Error("RejNTTPoly: unaligned block");for(let e=0;r<pp&&e<=n.length-3;e+=3){const i=8388607&(n[e+0]|n[e+1]<<8|n[e+2]<<16);i<gp&&(t[r++]=i)}}return t}const Qp=new Uint8Array(0);function Rp(e){const{K:t,L:r,GAMMA1:n,GAMMA2:i,TAU:s,ETA:a,OMEGA:o}=e,{CRH_BYTES:c,TR_BYTES:u,C_TILDE_BYTES:h,XOF128:l,XOF256:y}=e;if(![2,4].includes(a))throw Error("Wrong ETA");if(![1<<17,1<<19].includes(n))throw Error("Wrong GAMMA1");if(![Ap,wp].includes(i))throw Error("Wrong GAMMA2");const f=s*a,p=e=>{const t=kp(e),r=0|Ep(t,2*i);if(t-r==gp-1)return{r1:0,r0:r-1|0};return{r1:0|Math.floor((t-r)/(2*i)),r0:r}},g=e=>p(e).r1,d=e=>p(e).r0,A=(e,t)=>{const r=Math.floor((gp-1)/(2*i)),{r1:n,r0:s}=p(t);return 1===e?s>0?0|kp(n+1,r):0|kp(n-1,r):0|n},w=e=>{const t=kp(e),r=0|Ep(t,8192);return{r1:0|Math.floor((t-r)/8192),r0:r}},m={bytesLen:o+t,encode:e=>{if(!1===e)throw Error("hint.encode: hint is false");const r=new Uint8Array(o+t);for(let n=0,i=0;n<t;n++){for(let t=0;t<pp;t++)0!==e[n][t]&&(r[i++]=t);r[o+n]=i}return r},decode:e=>{const r=[];let n=0;for(let i=0;i<t;i++){const t=bp(pp);if(e[o+i]<n||e[o+i]>o)return!1;for(let r=n;r<e[o+i];r++){if(r>n&&e[r]<=e[r-1])return!1;t[e[r]]=1}n=e[o+i],r.push(t)}for(let t=n;t<o;t++)if(0!==e[t])return!1;return r}},b=Ip(2===a?3:4,(e=>a-e),(e=>{if(!(-a<=e&&e<=a))throw Error(`malformed key s1/s3 ${e} outside of ETA range [${-a}, ${a}]`);return e})),k=Ip(13,(e=>4096-e)),E=Ip(10),v=Ip(n===1<<17?18:20,(e=>Ep(n-e))),B=jf(Ip(i===Ap?6:4),t),S=qf(32,jf(E,t)),I=qf(32,32,u,jf(b,r),jf(b,t),jf(k,t)),K=qf(h,jf(v,r),m),C=2===a?e=>e<15&&2-e%5:e=>e<9&&4-e;function U(e){const t=bp(pp);for(let r=0;r<pp;){const n=e();for(let e=0;r<pp&&e<n.length;e+=1){const i=C(15&n[e]),s=C(n[e]>>4&15);!1!==i&&(t[r++]=i),r<pp&&!1!==s&&(t[r++]=s)}}return t}const P=e=>{const t=bp(pp),r=py.create({}).update(e),n=new Uint8Array(py.blockLen);r.xofInto(n);const i=n.slice(0,8);for(let e=pp-s,a=8,o=0,c=0;e<pp;e++){let s=e+1;for(;s>e;)s=n[a++],a<py.blockLen||(r.xofInto(n),a=0);t[e]=t[s],t[s]=1-((i[o]>>c++&1)<<1),c>=8&&(o++,c=0)}return t},D=e=>{const t=bp(pp),r=bp(pp);for(let n=0;n<e.length;n++){const{r0:i,r1:s}=w(e[n]);t[n]=i,r[n]=s}return{r0:t,r1:r}},x=(e,t)=>{for(let r=0;r<pp;r++)e[r]=A(t[r],e[r]);return e},Q=(e,t)=>{const r=bp(pp);let n=0;for(let o=0;o<pp;o++){const c=(s=e[o],a=t[o],s<=i||s>gp-i||s===gp-i&&0===a?0:1);r[o]=c,n+=c}var s,a;return{v:r,cnt:n}},R=qf(32,64,32),T={signRandBytes:32,keygen:(e=zf(32))=>{const n=new Uint8Array(34);n.set(e),n[32]=t,n[33]=r;const[i,s,a]=R.decode(py(n,{dkLen:R.bytesLen})),o=y(s),c=[];for(let e=0;e<r;e++)c.push(U(o.get(255&e,e>>8&255)));const h=[];for(let e=r;e<r+t;e++)h.push(U(o.get(255&e,e>>8&255)));const f=c.map((e=>vp.encode(e.slice()))),p=[],g=[],d=l(i),A=bp(pp);for(let e=0;e<t;e++){A.fill(0);for(let t=0;t<r;t++){const r=xp(d.get(t,e));Kp(A,Dp(r,f[t]))}vp.decode(A);const{r0:t,r1:n}=D(Kp(A,h[e]));p.push(t),g.push(n)}const w=S.encode([i,g]),m=py(w,{dkLen:u}),b=I.encode([i,a,m,c,h,p]);return d.clean(),o.clean(),Vf(i,s,a,c,h,f,A,p,g,m,n),{publicKey:w,secretKey:b}},sign:(e,s,a)=>{const[u,p,A,w,m,b]=I.decode(e),k=[],E=l(u);for(let e=0;e<t;e++){const t=[];for(let n=0;n<r;n++)t.push(xp(E.get(n,e)));k.push(t)}E.clean();for(let e=0;e<r;e++)vp.encode(w[e]);for(let e=0;e<t;e++)vp.encode(m[e]),vp.encode(b[e]);const S=py.create({dkLen:c}).update(A).update(s).digest(),C=a||new Uint8Array(32);_f(C);const U=py.create({dkLen:c}).update(p).update(C).update(S).digest();_f(U,c);const D=y(U,v.bytesLen);e:for(let e=0;;){const s=[];for(let t=0;t<r;t++,e++)s.push(v.decode(D.get(255&e,e>>8)()));const a=s.map((e=>vp.encode(e.slice()))),c=[];for(let e=0;e<t;e++){const t=bp(pp);for(let n=0;n<r;n++)Kp(t,Dp(k[e][n],a[n]));vp.decode(t),c.push(t)}const u=c.map((e=>e.map(g))),l=py.create({dkLen:h}).update(S).update(B.encode(u)).digest(),y=vp.encode(P(l)),p=w.map((e=>Dp(e,y)));for(let e=0;e<r;e++)if(Kp(vp.decode(p[e]),s[e]),Pp(p[e],n-f))continue e;let A=0;const E=[];for(let e=0;e<t;e++){const t=vp.decode(Dp(m[e],y)),r=Cp(c[e],t).map(d);if(Pp(r,i-f))continue e;const n=vp.decode(Dp(b[e],y));if(Pp(n,i))continue e;Kp(r,n);const s=Q(r,u[e]);E.push(s.v),A+=s.cnt}if(A>o)continue;D.clean();const I=K.encode([l,p,E]);return Vf(l,p,E,y,u,c,a,s,U,S,w,m,b,...k),I}throw Error("Unreachable code path reached, report this error")},verify:(e,i,s)=>{const[a,y]=S.decode(e),p=py(e,{dkLen:u});if(s.length!==K.bytesLen)return!1;const[g,d,A]=K.decode(s);if(!1===A)return!1;for(let e=0;e<r;e++)if(Pp(d[e],n-f))return!1;const w=py.create({dkLen:c}).update(p).update(i).digest(),m=vp.encode(P(g)),b=d.map((e=>e.slice()));for(let e=0;e<r;e++)vp.encode(b[e]);const k=[],E=l(a);for(let e=0;e<t;e++){const t=Dp(vp.encode(Up(y[e])),m),n=bp(pp);for(let t=0;t<r;t++){const r=xp(E.get(t,e));Kp(n,Dp(r,b[t]))}const i=vp.decode(Cp(n,t));k.push(x(i,A[e]))}E.clean();const v=py.create({dkLen:h}).update(w).update(B.encode(k)).digest();for(const e of A){const t=e.reduce(((e,t)=>e+t),0);if(!(t<=o))return!1}for(const e of d)if(Pp(e,n-f))return!1;return Gf(g,v)}},M=(e,t=Qp)=>{if(_f(e),_f(t),t.length>255)throw Error("context should be less than 255 bytes");return Vu(new Uint8Array([0,t.length]),t,e)};return{internal:T,keygen:T.keygen,signRandBytes:T.signRandBytes,sign:(e,t,r=Qp,n)=>{const i=M(t,r),s=T.sign(e,i,n);return i.fill(0),s},verify:(e,t,r,n=Qp)=>T.verify(e,M(t,n),r)}}const Tp=/* @__PURE__ */Rp({...mp,CRH_BYTES:64,TR_BYTES:64,C_TILDE_BYTES:48,XOF128:Xf,XOF256:$f});var Mp=/*#__PURE__*/Object.freeze({__proto__:null,ml_dsa65:Tp,ml_kem768:fp});function Lp(e,t,r,n){e[t]+=r[n],e[t+1]+=r[n+1]+(e[t]<r[n])}function Np(e,t){e[0]+=t,e[1]+=e[0]<t}function Fp(e,t,r,n,i,s,a,o){Lp(e,r,e,n),Lp(e,r,t,a);let c=e[s]^e[r],u=e[s+1]^e[r+1];e[s]=u,e[s+1]=c,Lp(e,i,e,s),c=e[n]^e[i],u=e[n+1]^e[i+1],e[n]=c>>>24^u<<8,e[n+1]=u>>>24^c<<8,Lp(e,r,e,n),Lp(e,r,t,o),c=e[s]^e[r],u=e[s+1]^e[r+1],e[s]=c>>>16^u<<16,e[s+1]=u>>>16^c<<16,Lp(e,i,e,s),c=e[n]^e[i],u=e[n+1]^e[i+1],e[n]=u>>>31^c<<1,e[n+1]=c>>>31^u<<1}const Op=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),Hp=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3].map((e=>2*e)));function _p(e,t){const r=new Uint32Array(32),n=new Uint32Array(e.b.buffer,e.b.byteOffset,32);for(let t=0;t<16;t++)r[t]=e.h[t],r[t+16]=Op[t];r[24]^=e.t0[0],r[25]^=e.t0[1];const i=t?4294967295:0;r[28]^=i,r[29]^=i;for(let e=0;e<12;e++){const t=e<<4;Fp(r,n,0,8,16,24,Hp[t+0],Hp[t+1]),Fp(r,n,2,10,18,26,Hp[t+2],Hp[t+3]),Fp(r,n,4,12,20,28,Hp[t+4],Hp[t+5]),Fp(r,n,6,14,22,30,Hp[t+6],Hp[t+7]),Fp(r,n,0,10,20,30,Hp[t+8],Hp[t+9]),Fp(r,n,2,12,22,24,Hp[t+10],Hp[t+11]),Fp(r,n,4,14,16,26,Hp[t+12],Hp[t+13]),Fp(r,n,6,8,18,28,Hp[t+14],Hp[t+15])}for(let t=0;t<16;t++)e.h[t]^=r[t]^r[t+16]}class zp{constructor(e,t,r,n){const i=new Uint8Array(64);this.S={b:new Uint8Array(jp),h:new Uint32Array(qp/4),t0:new Uint32Array(2),c:0,outlen:e},i[0]=e,t&&(i[1]=t.length),i[2]=1,i[3]=1,r&&i.set(r,32),n&&i.set(n,48);const s=new Uint32Array(i.buffer,i.byteOffset,i.length/Uint32Array.BYTES_PER_ELEMENT);for(let e=0;e<16;e++)this.S.h[e]=Op[e]^s[e];if(t){const e=new Uint8Array(jp);e.set(t),this.update(e)}}update(e){if(!(e instanceof Uint8Array))throw Error("Input must be Uint8Array or Buffer");let t=0;for(;t<e.length;){this.S.c===jp&&(Np(this.S.t0,this.S.c),_p(this.S,!1),this.S.c=0);let r=jp-this.S.c;this.S.b.set(e.subarray(t,t+r),this.S.c);const n=Math.min(r,e.length-t);this.S.c+=n,t+=n}return this}digest(e){Np(this.S.t0,this.S.c),this.S.b.fill(0,this.S.c),this.S.c=jp,_p(this.S,!0);const t=e||new Uint8Array(this.S.outlen);for(let e=0;e<this.S.outlen;e++)t[e]=this.S.h[e>>2]>>8*(3&e);return this.S.h=null,t.buffer}}function Gp(e,t,r,n){if(e>qp)throw Error(`outlen must be at most ${qp} (given: ${e})`);return new zp(e,t,r,n)}const qp=64,jp=128,Vp=2,Yp=19,Zp=4294967295,Wp=4,Jp=4294967295,Xp=8,$p=4294967295,eg=8,tg=4294967295,rg=4294967295,ng=32,ig=1024,sg=64,ag=205===new Uint8Array(new Uint16Array([43981]).buffer)[0];function og(e,t,r){return e[r+0]=t,e[r+1]=t>>8,e[r+2]=t>>16,e[r+3]=t>>24,e}function cg(e,t,r){if(t>Number.MAX_SAFE_INTEGER)throw Error("LE64: large numbers unsupported");let n=t;for(let t=r;t<r+7;t++)e[t]=n,n=(n-e[t])/256;return e}function ug(e,t,r){const n=new Uint8Array(64),i=new Uint8Array(4+t.length);if(og(i,e,0),i.set(t,4),e<=64)return Gp(e).update(i).digest(r),r;const s=Math.ceil(e/32)-2;for(let e=0;e<s;e++)Gp(64).update(0===e?i:n).digest(n),r.set(n.subarray(0,32),32*e);const a=new Uint8Array(Gp(e-32*s).update(n).digest());return r.set(a,32*s),r}function hg(e,t,r,n){return e.fn.XOR(t.byteOffset,r.byteOffset,n.byteOffset),t}function lg(e,t,r,n){return e.fn.G(t.byteOffset,r.byteOffset,n.byteOffset,e.refs.gZ.byteOffset),n}function yg(e,t,r,n){return e.fn.G2(t.byteOffset,r.byteOffset,n.byteOffset,e.refs.gZ.byteOffset),n}function*fg(e,t,r,n,i,s,a,o){e.refs.prngTmp.fill(0);const c=e.refs.prngTmp.subarray(0,48);cg(c,t,0),cg(c,r,8),cg(c,n,16),cg(c,i,24),cg(c,s,32),cg(c,Vp,40);for(let t=1;t<=a;t++){cg(e.refs.prngTmp,t,c.length);const r=yg(e,e.refs.ZERO1024,e.refs.prngTmp,e.refs.prngR);for(let e=1===t?8*o:0;e<r.length;e+=8)yield r.subarray(e,e+8)}return[]}const pg=1024,gg=64*pg;function dg(e,{memory:t,instance:r}){if(!ag)throw Error("BigEndian system not supported");const n=function({type:e,version:t,tagLength:r,password:n,salt:i,ad:s,secret:a,parallelism:o,memorySize:c,passes:u}){const h=(e,t,r,n)=>{if(t<r||t>n)throw Error(`${e} size should be between ${r} and ${n} bytes`)};if(e!==Vp||t!==Yp)throw Error("Unsupported type or version");return h("password",n,eg,$p),h("salt",i,Xp,Jp),h("tag",r,Wp,Zp),h("memory",c,8*o,tg),s&&h("associated data",s,0,rg),a&&h("secret",a,0,ng),{type:e,version:t,tagLength:r,password:n,salt:i,ad:s,secret:a,lanes:o,memorySize:c,passes:u}}({type:Vp,version:Yp,...e}),{G:i,G2:s,xor:a,getLZ:o}=r.exports,c={},u={};u.G=i,u.G2=s,u.XOR=a;const h=4*n.lanes*Math.floor(n.memorySize/(4*n.lanes)),l=h*ig+10*pg;if(t.buffer.byteLength<l){const e=Math.ceil((l-t.buffer.byteLength)/gg);t.grow(e)}let y=0;c.gZ=new Uint8Array(t.buffer,y,ig),y+=c.gZ.length,c.prngR=new Uint8Array(t.buffer,y,ig),y+=c.prngR.length,c.prngTmp=new Uint8Array(t.buffer,y,ig),y+=c.prngTmp.length,c.ZERO1024=new Uint8Array(t.buffer,y,1024),y+=c.ZERO1024.length;const f=new Uint32Array(t.buffer,y,2);y+=f.length*Uint32Array.BYTES_PER_ELEMENT;const p={fn:u,refs:c},g=new Uint8Array(t.buffer,y,ig);y+=g.length;const d=new Uint8Array(t.buffer,y,n.memorySize*ig),A=new Uint8Array(t.buffer,0,y),w=function(e){const t=Gp(sg),r=new Uint8Array(4),n=new Uint8Array(24);og(n,e.lanes,0),og(n,e.tagLength,4),og(n,e.memorySize,8),og(n,e.passes,12),og(n,e.version,16),og(n,e.type,20);const i=[n];e.password?(i.push(og(new Uint8Array(4),e.password.length,0)),i.push(e.password)):i.push(r);e.salt?(i.push(og(new Uint8Array(4),e.salt.length,0)),i.push(e.salt)):i.push(r);e.secret?(i.push(og(new Uint8Array(4),e.secret.length,0)),i.push(e.secret)):i.push(r);e.ad?(i.push(og(new Uint8Array(4),e.ad.length,0)),i.push(e.ad)):i.push(r);t.update(function(e){if(1===e.length)return e[0];let t=0;for(let r=0;r<e.length;r++){if(!(e[r]instanceof Uint8Array))throw Error("concatArrays: Data must be in the form of a Uint8Array");t+=e[r].length}const r=new Uint8Array(t);let n=0;return e.forEach((e=>{r.set(e,n),n+=e.length})),r}(i));const s=t.digest();return new Uint8Array(s)}(n),m=h/n.lanes,b=Array(n.lanes).fill(null).map((()=>Array(m))),k=(e,t)=>(b[e][t]=d.subarray(e*m*1024+1024*t,e*m*1024+1024*t+ig),b[e][t]);for(let e=0;e<n.lanes;e++){const t=new Uint8Array(w.length+8);t.set(w),og(t,0,w.length),og(t,e,w.length+4),ug(ig,t,k(e,0)),og(t,1,w.length),ug(ig,t,k(e,1))}const E=m/4;for(let e=0;e<n.passes;e++)for(let t=0;t<4;t++){const r=0===e&&t<=1;for(let i=0;i<n.lanes;i++){let s=0===t&&0===e?2:0;const a=r?fg(p,e,i,t,h,n.passes,E,s):null;for(;s<E;s++){const c=t*E+s,u=c>0?b[i][c-1]:b[i][m-1],h=r?a.next().value:u;o(f.byteOffset,h.byteOffset,i,n.lanes,e,t,s,4,E);const l=f[0],y=f[1];0===e&&k(i,c),lg(p,u,b[l][y],e>0?g:b[i][c]),e>0&&hg(p,b[i][c],g,b[i][c])}}}const v=b[0][m-1];for(let e=1;e<n.lanes;e++)hg(p,v,v,b[e][m-1]);const B=ug(n.tagLength,v,new Uint8Array(n.tagLength));return A.fill(0),t.grow(0),B}let Ag;async function wg(e,t){const r=new WebAssembly.Memory({initial:1040,maximum:65536}),n=await async function(e,t,r){const n={env:{memory:e}};if(void 0===Ag)try{const e=await t(n);return Ag=!0,e}catch(e){Ag=!1}return(Ag?t:r)(n)}(r,e,t);return e=>dg(e,{instance:n.instance,memory:r})}function mg(t,r,n,i){var s=null,a=e.atob(n),o=a.length;s=new Uint8Array(new ArrayBuffer(o));for(var c=0;c<o;c++)s[c]=a.charCodeAt(c);return function(e,t){var r=WebAssembly.instantiate,n=WebAssembly.compile;return t?r(e,t):n(e)}(s,i)}var bg=/*#__PURE__*/Object.freeze({__proto__:null,default:async()=>wg((e=>mg(0,0,"AGFzbQEAAAABKwdgBH9/f38AYAABf2AAAGADf39/AGAJf39/f39/f39/AX9gAX8AYAF/AX8CEwEDZW52Bm1lbW9yeQIBkAiAgAQDCgkCAwAABAEFBgEEBQFwAQICBgkBfwFBkIjAAgsHfQoDeG9yAAEBRwACAkcyAAMFZ2V0TFoABBlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALX2luaXRpYWxpemUAABBfX2Vycm5vX2xvY2F0aW9uAAgJc3RhY2tTYXZlAAUMc3RhY2tSZXN0b3JlAAYKc3RhY2tBbGxvYwAHCQcBAEEBCwEACs0gCQMAAQtYAQJ/A0AgACAEQQR0IgNqIAIgA2r9AAQAIAEgA2r9AAQA/VH9CwQAIAAgA0EQciIDaiACIANq/QAEACABIANq/QAEAP1R/QsEACAEQQJqIgRBwABHDQALC7ceAgt7A38DQCADIBFBBHQiD2ogASAPav0ABAAgACAPav0ABAD9USIF/QsEACACIA9qIAX9CwQAIAMgD0EQciIPaiABIA9q/QAEACAAIA9q/QAEAP1RIgX9CwQAIAIgD2ogBf0LBAAgEUECaiIRQcAARw0ACwNAIAMgEEEHdGoiAEEQaiAA/QAEcCAA/QAEMCIFIAD9AAQQIgT9zgEgBSAF/Q0AAQIDCAkKCwABAgMICQoLIAQgBP0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgT9USIJQSD9ywEgCUEg/c0B/VAiCSAA/QAEUCIG/c4BIAkgCf0NAAECAwgJCgsAAQIDCAkKCyAGIAb9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIGIAX9USIFQSj9ywEgBUEY/c0B/VAiCCAE/c4BIAggCP0NAAECAwgJCgsAAQIDCAkKCyAEIAT9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIKIAogCf1RIgVBMP3LASAFQRD9zQH9UCIFIAb9zgEgBSAF/Q0AAQIDCAkKCwABAgMICQoLIAYgBv0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgkgCP1RIgRBAf3LASAEQT/9zQH9UCIMIAD9AARgIAD9AAQgIgQgAP0ABAAiBv3OASAEIAT9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBv1RIghBIP3LASAIQSD9zQH9UCIIIABBQGsiAf0ABAAiB/3OASAIIAj9DQABAgMICQoLAAECAwgJCgsgByAH/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiByAE/VEiBEEo/csBIARBGP3NAf1QIgsgBv3OASALIAv9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBiAI/VEiBEEw/csBIARBEP3NAf1QIgQgB/3OASAEIAT9DQABAgMICQoLAAECAwgJCgsgByAH/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiCCAL/VEiB0EB/csBIAdBP/3NAf1QIg0gDf0NAAECAwQFBgcQERITFBUWF/0NCAkKCwwNDg8YGRobHB0eHyIH/c4BIAcgB/0NAAECAwgJCgsAAQIDCAkKCyAKIAr9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIKIAQgBSAF/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4f/VEiC0Eg/csBIAtBIP3NAf1QIgsgCP3OASALIAv9DQABAgMICQoLAAECAwgJCgsgCCAI/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiCCAH/VEiB0Eo/csBIAdBGP3NAf1QIgcgCv3OASAHIAf9DQABAgMICQoLAAECAwgJCgsgCiAK/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiDv0LBAAgACAGIA0gDCAM/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4fIgr9zgEgCiAK/Q0AAQIDCAkKCwABAgMICQoLIAYgBv0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgYgBSAEIAT9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9USIFQSD9ywEgBUEg/c0B/VAiBSAJ/c4BIAUgBf0NAAECAwgJCgsAAQIDCAkKCyAJIAn9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIJIAr9USIEQSj9ywEgBEEY/c0B/VAiCiAG/c4BIAogCv0NAAECAwgJCgsAAQIDCAkKCyAGIAb9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIE/QsEACAAIAQgBf1RIgVBMP3LASAFQRD9zQH9UCIFIA4gC/1RIgRBMP3LASAEQRD9zQH9UCIEIAT9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9CwRgIAAgBCAFIAX9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9CwRwIAEgBCAI/c4BIAQgBP0NAAECAwgJCgsAAQIDCAkKCyAIIAj9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIE/QsEACAAIAUgCf3OASAFIAX9DQABAgMICQoLAAECAwgJCgsgCSAJ/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiCf0LBFAgACAEIAf9USIFQQH9ywEgBUE//c0B/VAiBSAJIAr9USIEQQH9ywEgBEE//c0B/VAiBCAE/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4f/QsEICAAIAQgBSAF/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4f/QsEMCAQQQFqIhBBCEcNAAtBACEQA0AgAyAQQQR0aiIAQYABaiAA/QAEgAcgAP0ABIADIgUgAP0ABIABIgT9zgEgBSAF/Q0AAQIDCAkKCwABAgMICQoLIAQgBP0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgT9USIJQSD9ywEgCUEg/c0B/VAiCSAA/QAEgAUiBv3OASAJIAn9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBiAF/VEiBUEo/csBIAVBGP3NAf1QIgggBP3OASAIIAj9DQABAgMICQoLAAECAwgJCgsgBCAE/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiCiAKIAn9USIFQTD9ywEgBUEQ/c0B/VAiBSAG/c4BIAUgBf0NAAECAwgJCgsAAQIDCAkKCyAGIAb9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIJIAj9USIEQQH9ywEgBEE//c0B/VAiDCAA/QAEgAYgAP0ABIACIgQgAP0ABAAiBv3OASAEIAT9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBv1RIghBIP3LASAIQSD9zQH9UCIIIAD9AASABCIH/c4BIAggCP0NAAECAwgJCgsAAQIDCAkKCyAHIAf9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIHIAT9USIEQSj9ywEgBEEY/c0B/VAiCyAG/c4BIAsgC/0NAAECAwgJCgsAAQIDCAkKCyAGIAb9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIGIAj9USIEQTD9ywEgBEEQ/c0B/VAiBCAH/c4BIAQgBP0NAAECAwgJCgsAAQIDCAkKCyAHIAf9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIIIAv9USIHQQH9ywEgB0E//c0B/VAiDSAN/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4fIgf9zgEgByAH/Q0AAQIDCAkKCwABAgMICQoLIAogCv0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgogBCAFIAX9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9USILQSD9ywEgC0Eg/c0B/VAiCyAI/c4BIAsgC/0NAAECAwgJCgsAAQIDCAkKCyAIIAj9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIIIAf9USIHQSj9ywEgB0EY/c0B/VAiByAK/c4BIAcgB/0NAAECAwgJCgsAAQIDCAkKCyAKIAr9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIO/QsEACAAIAYgDSAMIAz9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh8iCv3OASAKIAr9DQABAgMICQoLAAECAwgJCgsgBiAG/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBiAFIAQgBP0NAAECAwQFBgcQERITFBUWF/0NCAkKCwwNDg8YGRobHB0eH/1RIgVBIP3LASAFQSD9zQH9UCIFIAn9zgEgBSAF/Q0AAQIDCAkKCwABAgMICQoLIAkgCf0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgkgCv1RIgRBKP3LASAEQRj9zQH9UCIKIAb9zgEgCiAK/Q0AAQIDCAkKCwABAgMICQoLIAYgBv0NAAECAwgJCgsAAQIDCAkKC/3eAUEB/csB/c4BIgT9CwQAIAAgBCAF/VEiBUEw/csBIAVBEP3NAf1QIgUgDiAL/VEiBEEw/csBIARBEP3NAf1QIgQgBP0NAAECAwQFBgcQERITFBUWF/0NCAkKCwwNDg8YGRobHB0eH/0LBIAGIAAgBCAFIAX9DQABAgMEBQYHEBESExQVFhf9DQgJCgsMDQ4PGBkaGxwdHh/9CwSAByAAIAQgCP3OASAEIAT9DQABAgMICQoLAAECAwgJCgsgCCAI/Q0AAQIDCAkKCwABAgMICQoL/d4BQQH9ywH9zgEiBP0LBIAEIAAgBSAJ/c4BIAUgBf0NAAECAwgJCgsAAQIDCAkKCyAJIAn9DQABAgMICQoLAAECAwgJCgv93gFBAf3LAf3OASIJ/QsEgAUgACAEIAf9USIFQQH9ywEgBUE//c0B/VAiBSAJIAr9USIEQQH9ywEgBEE//c0B/VAiBCAE/Q0AAQIDBAUGBxAREhMUFRYX/Q0ICQoLDA0ODxgZGhscHR4f/QsEgAIgACAEIAUgBf0NAAECAwQFBgcQERITFBUWF/0NCAkKCwwNDg8YGRobHB0eH/0LBIADIBBBAWoiEEEIRw0AC0EAIRADQCACIBBBBHQiAGoiASAAIANq/QAEACAB/QAEAP1R/QsEACACIABBEHIiAWoiDyABIANq/QAEACAP/QAEAP1R/QsEACACIABBIHIiAWoiDyABIANq/QAEACAP/QAEAP1R/QsEACACIABBMHIiAGoiASAAIANq/QAEACAB/QAEAP1R/QsEACAQQQRqIhBBwABHDQALCxYAIAAgASACIAMQAiAAIAIgAiADEAILewIBfwF+IAIhCSABNQIAIQogBCAFcgRAIAEoAgQgA3AhCQsgACAJNgIAIAAgB0EBayAFIAQbIAhsIAZBAWtBAEF/IAYbIAIgCUYbaiIBIAVBAWogCGxBACAEG2ogAa0gCiAKfkIgiH5CIIinQX9zaiAHIAhscDYCBCAACwQAIwALBgAgACQACxAAIwAgAGtBcHEiACQAIAALBQBBgAgL",e)),(e=>mg(0,0,"AGFzbQEAAAABPwhgBH9/f38AYAABf2AAAGADf39/AGARf39/f39/f39/f39/f39/f38AYAl/f39/f39/f38Bf2ABfwBgAX8BfwITAQNlbnYGbWVtb3J5AgGQCICABAMLCgIDBAAABQEGBwEEBQFwAQICBgkBfwFBkIjAAgsHfQoDeG9yAAEBRwADAkcyAAQFZ2V0TFoABRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALX2luaXRpYWxpemUAABBfX2Vycm5vX2xvY2F0aW9uAAkJc3RhY2tTYXZlAAYMc3RhY2tSZXN0b3JlAAcKc3RhY2tBbGxvYwAICQcBAEEBCwEACssaCgMAAQtQAQJ/A0AgACAEQQN0IgNqIAIgA2opAwAgASADaikDAIU3AwAgACADQQhyIgNqIAIgA2opAwAgASADaikDAIU3AwAgBEECaiIEQYABRw0ACwveDwICfgF/IAAgAUEDdGoiEyATKQMAIhEgACAFQQN0aiIBKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA1BA3RqIgUgESAFKQMAhUIgiSIRNwMAIAAgCUEDdGoiCSARIAkpAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAEgESABKQMAhUIoiSIRNwMAIBMgESATKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAFIBEgBSkDAIVCMIkiETcDACAJIBEgCSkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgASARIAEpAwCFQgGJNwMAIAAgAkEDdGoiDSANKQMAIhEgACAGQQN0aiICKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA5BA3RqIgYgESAGKQMAhUIgiSIRNwMAIAAgCkEDdGoiCiARIAopAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAIgESACKQMAhUIoiSIRNwMAIA0gESANKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAGIBEgBikDAIVCMIkiETcDACAKIBEgCikDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAiARIAIpAwCFQgGJNwMAIAAgA0EDdGoiDiAOKQMAIhEgACAHQQN0aiIDKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA9BA3RqIgcgESAHKQMAhUIgiSIRNwMAIAAgC0EDdGoiCyARIAspAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAMgESADKQMAhUIoiSIRNwMAIA4gESAOKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAHIBEgBykDAIVCMIkiETcDACALIBEgCykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAyARIAMpAwCFQgGJNwMAIAAgBEEDdGoiDyAPKQMAIhEgACAIQQN0aiIEKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIBBBA3RqIgggESAIKQMAhUIgiSIRNwMAIAAgDEEDdGoiACARIAApAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAQgESAEKQMAhUIoiSIRNwMAIA8gESAPKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAIIBEgCCkDAIVCMIkiETcDACAAIBEgACkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgBCARIAQpAwCFQgGJNwMAIBMgEykDACIRIAIpAwAiEnwgEUIBhkL+////H4MgEkL/////D4N+fCIRNwMAIAggESAIKQMAhUIgiSIRNwMAIAsgESALKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACACIBEgAikDAIVCKIkiETcDACATIBEgEykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgCCARIAgpAwCFQjCJIhE3AwAgCyARIAspAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAIgESACKQMAhUIBiTcDACANIA0pAwAiESADKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAFIBEgBSkDAIVCIIkiETcDACAAIBEgACkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAyARIAMpAwCFQiiJIhE3AwAgDSARIA0pAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAUgESAFKQMAhUIwiSIRNwMAIAAgESAAKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACADIBEgAykDAIVCAYk3AwAgDiAOKQMAIhEgBCkDACISfCARQgGGQv7///8fgyASQv////8Pg358IhE3AwAgBiARIAYpAwCFQiCJIhE3AwAgCSARIAkpAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAQgESAEKQMAhUIoiSIRNwMAIA4gESAOKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAGIBEgBikDAIVCMIkiETcDACAJIBEgCSkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgBCARIAQpAwCFQgGJNwMAIA8gDykDACIRIAEpAwAiEnwgEUIBhkL+////H4MgEkL/////D4N+fCIRNwMAIAcgESAHKQMAhUIgiSIRNwMAIAogESAKKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACABIBEgASkDAIVCKIkiETcDACAPIBEgDykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgByARIAcpAwCFQjCJIhE3AwAgCiARIAopAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAEgESABKQMAhUIBiTcDAAvdCAEPfwNAIAIgBUEDdCIGaiABIAZqKQMAIAAgBmopAwCFNwMAIAIgBkEIciIGaiABIAZqKQMAIAAgBmopAwCFNwMAIAVBAmoiBUGAAUcNAAsDQCADIARBA3QiAGogACACaikDADcDACADIARBAXIiAEEDdCIBaiABIAJqKQMANwMAIAMgBEECciIBQQN0IgVqIAIgBWopAwA3AwAgAyAEQQNyIgVBA3QiBmogAiAGaikDADcDACADIARBBHIiBkEDdCIHaiACIAdqKQMANwMAIAMgBEEFciIHQQN0IghqIAIgCGopAwA3AwAgAyAEQQZyIghBA3QiCWogAiAJaikDADcDACADIARBB3IiCUEDdCIKaiACIApqKQMANwMAIAMgBEEIciIKQQN0IgtqIAIgC2opAwA3AwAgAyAEQQlyIgtBA3QiDGogAiAMaikDADcDACADIARBCnIiDEEDdCINaiACIA1qKQMANwMAIAMgBEELciINQQN0Ig5qIAIgDmopAwA3AwAgAyAEQQxyIg5BA3QiD2ogAiAPaikDADcDACADIARBDXIiD0EDdCIQaiACIBBqKQMANwMAIAMgBEEOciIQQQN0IhFqIAIgEWopAwA3AwAgAyAEQQ9yIhFBA3QiEmogAiASaikDADcDACADIARB//8DcSAAQf//A3EgAUH//wNxIAVB//8DcSAGQf//A3EgB0H//wNxIAhB//8DcSAJQf//A3EgCkH//wNxIAtB//8DcSAMQf//A3EgDUH//wNxIA5B//8DcSAPQf//A3EgEEH//wNxIBFB//8DcRACIARB8ABJIQAgBEEQaiEEIAANAAtBACEBIANBAEEBQRBBEUEgQSFBMEExQcAAQcEAQdAAQdEAQeAAQeEAQfAAQfEAEAIgA0ECQQNBEkETQSJBI0EyQTNBwgBBwwBB0gBB0wBB4gBB4wBB8gBB8wAQAiADQQRBBUEUQRVBJEElQTRBNUHEAEHFAEHUAEHVAEHkAEHlAEH0AEH1ABACIANBBkEHQRZBF0EmQSdBNkE3QcYAQccAQdYAQdcAQeYAQecAQfYAQfcAEAIgA0EIQQlBGEEZQShBKUE4QTlByABByQBB2ABB2QBB6ABB6QBB+ABB+QAQAiADQQpBC0EaQRtBKkErQTpBO0HKAEHLAEHaAEHbAEHqAEHrAEH6AEH7ABACIANBDEENQRxBHUEsQS1BPEE9QcwAQc0AQdwAQd0AQewAQe0AQfwAQf0AEAIgA0EOQQ9BHkEfQS5BL0E+QT9BzgBBzwBB3gBB3wBB7gBB7wBB/gBB/wAQAgNAIAIgAUEDdCIAaiIEIAAgA2opAwAgBCkDAIU3AwAgAiAAQQhyIgRqIgUgAyAEaikDACAFKQMAhTcDACACIABBEHIiBGoiBSADIARqKQMAIAUpAwCFNwMAIAIgAEEYciIAaiIEIAAgA2opAwAgBCkDAIU3AwAgAUEEaiIBQYABRw0ACwsWACAAIAEgAiADEAMgACACIAIgAxADC3sCAX8BfiACIQkgATUCACEKIAQgBXIEQCABKAIEIANwIQkLIAAgCTYCACAAIAdBAWsgBSAEGyAIbCAGQQFrQQBBfyAGGyACIAlGG2oiASAFQQFqIAhsQQAgBBtqIAGtIAogCn5CIIh+QiCIp0F/c2ogByAIbHA2AgQgAAsEACMACwYAIAAkAAsQACMAIABrQXBxIgAkACAACwUAQYAICw==",e)))}),kg=[0,1,3,7,15,31,63,127,255],Eg=function(e){this.stream=e,this.bitOffset=0,this.curByte=0,this.hasByte=!1};Eg.prototype._ensureByte=function(){this.hasByte||(this.curByte=this.stream.readByte(),this.hasByte=!0)},Eg.prototype.read=function(e){for(var t=0;e>0;){this._ensureByte();var r=8-this.bitOffset;if(e>=r)t<<=r,t|=kg[r]&this.curByte,this.hasByte=!1,this.bitOffset=0,e-=r;else{t<<=e;var n=r-e;t|=(this.curByte&kg[e]<<n)>>n,this.bitOffset+=e,e=0}}return t},Eg.prototype.seek=function(e){var t=e%8,r=(e-t)/8;this.bitOffset=t,this.stream.seek(r),this.hasByte=!1},Eg.prototype.pi=function(){var e,t=new Uint8Array(6);for(e=0;e<t.length;e++)t[e]=this.read(8);return function(e){return Array.prototype.map.call(e,(e=>("00"+e.toString(16)).slice(-2))).join("")}(t)};var vg=Eg,Bg=function(){};Bg.prototype.readByte=function(){throw Error("abstract method readByte() not implemented")},Bg.prototype.read=function(e,t,r){for(var n=0;n<r;){var i=this.readByte();if(i<0)return 0===n?-1:n;e[t++]=i,n++}return n},Bg.prototype.seek=function(e){throw Error("abstract method seek() not implemented")},Bg.prototype.writeByte=function(e){throw Error("abstract method readByte() not implemented")},Bg.prototype.write=function(e,t,r){var n;for(n=0;n<r;n++)this.writeByte(e[t++]);return r},Bg.prototype.flush=function(){};var Sg,Ig=Bg,Kg=(Sg=new Uint32Array([0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188]),function(){var e=4294967295;this.getCRC=function(){return~e>>>0},this.updateCRC=function(t){e=e<<8^Sg[255&(e>>>24^t)]},this.updateCRCRun=function(t,r){for(;r-- >0;)e=e<<8^Sg[255&(e>>>24^t)]}}),Cg=vg,Ug=Ig,Pg=Kg,Dg=function(e,t){var r,n=e[t];for(r=t;r>0;r--)e[r]=e[r-1];return e[0]=n,n},xg={OK:0,LAST_BLOCK:-1,NOT_BZIP_DATA:-2,UNEXPECTED_INPUT_EOF:-3,UNEXPECTED_OUTPUT_EOF:-4,DATA_ERROR:-5,OUT_OF_MEMORY:-6,OBSOLETE_INPUT:-7,END_OF_BLOCK:-8},Qg={};Qg[xg.LAST_BLOCK]="Bad file checksum",Qg[xg.NOT_BZIP_DATA]="Not bzip data",Qg[xg.UNEXPECTED_INPUT_EOF]="Unexpected input EOF",Qg[xg.UNEXPECTED_OUTPUT_EOF]="Unexpected output EOF",Qg[xg.DATA_ERROR]="Data error",Qg[xg.OUT_OF_MEMORY]="Out of memory",Qg[xg.OBSOLETE_INPUT]="Obsolete (pre 0.9.5) bzip format not supported.";var Rg=function(e,t){var r=Qg[e]||"unknown error";t&&(r+=": "+t);var n=new TypeError(r);throw n.errorCode=e,n},Tg=function(e,t){this.writePos=this.writeCurrent=this.writeCount=0,this._start_bunzip(e,t)};Tg.prototype._init_block=function(){return this._get_next_block()?(this.blockCRC=new Pg,!0):(this.writeCount=-1,!1)},Tg.prototype._start_bunzip=function(e,t){var r=new Uint8Array(4);4===e.read(r,0,4)&&"BZh"===String.fromCharCode(r[0],r[1],r[2])||Rg(xg.NOT_BZIP_DATA,"bad magic");var n=r[3]-48;(n<1||n>9)&&Rg(xg.NOT_BZIP_DATA,"level out of range"),this.reader=new Cg(e),this.dbufSize=1e5*n,this.nextoutput=0,this.outputStream=t,this.streamCRC=0},Tg.prototype._get_next_block=function(){var e,t,r,n=this.reader,i=n.pi();if("177245385090"===i)return!1;"314159265359"!==i&&Rg(xg.NOT_BZIP_DATA),this.targetBlockCRC=n.read(32)>>>0,this.streamCRC=(this.targetBlockCRC^(this.streamCRC<<1|this.streamCRC>>>31))>>>0,n.read(1)&&Rg(xg.OBSOLETE_INPUT);var s=n.read(24);s>this.dbufSize&&Rg(xg.DATA_ERROR,"initial position out of bounds");var a=n.read(16),o=new Uint8Array(256),c=0;for(e=0;e<16;e++)if(a&1<<15-e){var u=16*e;for(r=n.read(16),t=0;t<16;t++)r&1<<15-t&&(o[c++]=u+t)}var h=n.read(3);(h<2||h>6)&&Rg(xg.DATA_ERROR);var l=n.read(15);0===l&&Rg(xg.DATA_ERROR);var y=new Uint8Array(256);for(e=0;e<h;e++)y[e]=e;var f=new Uint8Array(l);for(e=0;e<l;e++){for(t=0;n.read(1);t++)t>=h&&Rg(xg.DATA_ERROR);f[e]=Dg(y,t)}var p,g=c+2,d=[];for(t=0;t<h;t++){var A,w,m=new Uint8Array(g),b=new Uint16Array(21);for(a=n.read(5),e=0;e<g;e++){for(;(a<1||a>20)&&Rg(xg.DATA_ERROR),n.read(1);)n.read(1)?a--:a++;m[e]=a}for(A=w=m[0],e=1;e<g;e++)m[e]>w?w=m[e]:m[e]<A&&(A=m[e]);p={},d.push(p),p.permute=new Uint16Array(258),p.limit=new Uint32Array(22),p.base=new Uint32Array(21),p.minLen=A,p.maxLen=w;var k=0;for(e=A;e<=w;e++)for(b[e]=p.limit[e]=0,a=0;a<g;a++)m[a]===e&&(p.permute[k++]=a);for(e=0;e<g;e++)b[m[e]]++;for(k=a=0,e=A;e<w;e++)k+=b[e],p.limit[e]=k-1,k<<=1,a+=b[e],p.base[e+1]=k-a;p.limit[w+1]=Number.MAX_VALUE,p.limit[w]=k+b[w]-1,p.base[A]=0}var E=new Uint32Array(256);for(e=0;e<256;e++)y[e]=e;var v,B=0,S=0,I=0,K=this.dbuf=new Uint32Array(this.dbufSize);for(g=0;;){for(g--||(g=49,I>=l&&Rg(xg.DATA_ERROR),p=d[f[I++]]),e=p.minLen,t=n.read(e);e>p.maxLen&&Rg(xg.DATA_ERROR),!(t<=p.limit[e]);e++)t=t<<1|n.read(1);((t-=p.base[e])<0||t>=258)&&Rg(xg.DATA_ERROR);var C=p.permute[t];if(0!==C&&1!==C){if(B)for(B=0,S+a>this.dbufSize&&Rg(xg.DATA_ERROR),E[v=o[y[0]]]+=a;a--;)K[S++]=v;if(C>c)break;S>=this.dbufSize&&Rg(xg.DATA_ERROR),E[v=o[v=Dg(y,e=C-1)]]++,K[S++]=v}else B||(B=1,a=0),a+=0===C?B:2*B,B<<=1}for((s<0||s>=S)&&Rg(xg.DATA_ERROR),t=0,e=0;e<256;e++)r=t+E[e],E[e]=t,t=r;for(e=0;e<S;e++)K[E[v=255&K[e]]]|=e<<8,E[v]++;var U=0,P=0,D=0;return S&&(P=255&(U=K[s]),U>>=8,D=-1),this.writePos=U,this.writeCurrent=P,this.writeCount=S,this.writeRun=D,!0},Tg.prototype._read_bunzip=function(e,t){var r,n,i;if(this.writeCount<0)return 0;var s=this.dbuf,a=this.writePos,o=this.writeCurrent,c=this.writeCount;this.outputsize;for(var u=this.writeRun;c;){for(c--,n=o,o=255&(a=s[a]),a>>=8,3==u++?(r=o,i=n,o=-1):(r=1,i=o),this.blockCRC.updateCRCRun(i,r);r--;)this.outputStream.writeByte(i),this.nextoutput++;o!=n&&(u=0)}return this.writeCount=c,this.blockCRC.getCRC()!==this.targetBlockCRC&&Rg(xg.DATA_ERROR,"Bad block CRC (got "+this.blockCRC.getCRC().toString(16)+" expected "+this.targetBlockCRC.toString(16)+")"),this.nextoutput};var Mg=function(e){if("readByte"in e)return e;var t=new Ug;return t.pos=0,t.readByte=function(){return e[this.pos++]},t.seek=function(e){this.pos=e},t.eof=function(){return this.pos>=e.length},t},Lg=function(e){var t=new Ug,r=!0;if(e)if("number"==typeof e)t.buffer=new Uint8Array(e),r=!1;else{if("writeByte"in e)return e;t.buffer=e,r=!1}else t.buffer=new Uint8Array(16384);return t.pos=0,t.writeByte=function(e){if(r&&this.pos>=this.buffer.length){var t=new Uint8Array(2*this.buffer.length);t.set(this.buffer),this.buffer=t}this.buffer[this.pos++]=e},t.getBuffer=function(){if(this.pos!==this.buffer.length){if(!r)throw new TypeError("outputsize does not match decoded input");var e=new Uint8Array(this.pos);e.set(this.buffer.subarray(0,this.pos)),this.buffer=e}return this.buffer},t._coerced=!0,t};var Ng={Bunzip:Tg,Stream:Ug,Err:xg,decode:function(e,t,r){for(var n=Mg(e),i=Lg(t),s=new Tg(n,i);!("eof"in n)||!n.eof();)if(s._init_block())s._read_bunzip();else{var a=s.reader.read(32)>>>0;if(a!==s.streamCRC&&Rg(xg.DATA_ERROR,"Bad stream CRC (got "+s.streamCRC.toString(16)+" expected "+a.toString(16)+")"),!r||!("eof"in n)||n.eof())break;s._start_bunzip(n,i)}if("getBuffer"in i)return i.getBuffer()},decodeBlock:function(e,t,r){var n=Mg(e),i=Lg(r),s=new Tg(n,i);if(s.reader.seek(t),s._get_next_block()&&(s.blockCRC=new Pg,s.writeCopies=0,s._read_bunzip()),"getBuffer"in i)return i.getBuffer()},table:function(e,t,r){var n=new Ug;n.delegate=Mg(e),n.pos=0,n.readByte=function(){return this.pos++,this.delegate.readByte()},n.delegate.eof&&(n.eof=n.delegate.eof.bind(n.delegate));var i=new Ug;i.pos=0,i.writeByte=function(){this.pos++};for(var s=new Tg(n,i),a=s.dbufSize;!("eof"in n)||!n.eof();){var o=8*n.pos+s.reader.bitOffset;if(s.reader.hasByte&&(o-=8),s._init_block()){var c=i.pos;s._read_bunzip(),t(o,i.pos-c)}else{if(s.reader.read(32),!r||!("eof"in n)||n.eof())break;s._start_bunzip(n,i),console.assert(s.dbufSize===a,"shouldn't change block size within multistream file")}}}},Fg=/*#__PURE__*/t({__proto__:null},[Ng]);export{sc as AEADEncryptedDataPacket,xa as Argon2OutOfMemoryError,Ma as Argon2S2K,hu as CleartextMessage,Zo as CompressedDataPacket,zo as GrammarError,Es as KDFParams,Ro as LiteralDataPacket,fc as MarkerPacket,iu as Message,_o as OnePassSignaturePacket,Vo as PacketList,kc as PaddingPacket,Vc as PrivateKey,jc as PublicKey,oc as PublicKeyEncryptedSessionKeyPacket,hc as PublicKeyPacket,pc as PublicSubkeyPacket,dc as SecretKeyPacket,mc as SecretSubkeyPacket,vc as Signature,Fo as SignaturePacket,Hc as Subkey,rc as SymEncryptedIntegrityProtectedDataPacket,uc as SymEncryptedSessionKeyPacket,yc as SymmetricallyEncryptedDataPacket,bc as TrustPacket,Wt as UnparseablePacket,gc as UserAttributePacket,wc as UserIDPacket,X as armor,R as config,yu as createCleartextMessage,cu as createMessage,mu as decrypt,du as decryptKey,Bu as decryptSessionKeys,wu as encrypt,Au as encryptKey,vu as encryptSessionKey,Q as enums,fu as generateKey,Eu as generateSessionKey,lu as readCleartextMessage,Jc as readKey,$c as readKeys,ou as readMessage,Xc as readPrivateKey,eu as readPrivateKeys,Bc as readSignature,pu as reformatKey,gu as revokeKey,bu as sign,J as unarmor,ku as verify};
19
19
  //# sourceMappingURL=openpgp.min.mjs.map