From 9ea2dd5f69f52f64964d624e5d668057e428c9b4 Mon Sep 17 00:00:00 2001 From: Yigid BALABAN Date: Mon, 7 Oct 2024 21:30:18 +0300 Subject: [PATCH] npm package, cjs -> esm... --- .gitignore | 1 - .gitmodules | 3 - .npmignore | 1 + README.md | 56 +++-- crypto.js | 22 +- dist/21cfd03815fda4edba72.wasm | Bin 0 -> 109404 bytes dist/bundle.js | 1 + dist/index.html | 18 ++ dist/index.js | 83 +++++++ index.html | 15 -- index.js | 78 +------ package.json | 12 +- pnpm-lock.yaml | 397 ++++++++++++++++++++------------- webpack.config.js | 14 +- zkl-kds | 1 - 15 files changed, 410 insertions(+), 292 deletions(-) create mode 100644 .npmignore create mode 100644 dist/21cfd03815fda4edba72.wasm create mode 100644 dist/bundle.js create mode 100644 dist/index.html create mode 100644 dist/index.js delete mode 100644 index.html delete mode 160000 zkl-kds diff --git a/.gitignore b/.gitignore index 04c01ba..c2658d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ node_modules/ -dist/ \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 6c3bea3..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "zkl-kds"] - path = zkl-kds - url = https://git.fybx.dev/fyb/zkl-kds diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..849ddff --- /dev/null +++ b/.npmignore @@ -0,0 +1 @@ +dist/ diff --git a/README.md b/README.md index d365608..0497586 100644 --- a/README.md +++ b/README.md @@ -4,29 +4,48 @@ Cryptographic functions provider and example repository. This module provides encryption and decryption functions for handling both binary data and strings using public and private keys. It utilizes `ecies-wasm` for the underlying cryptographic operations. +Package available on npm: https://www.npmjs.com/package/@zklx/crypto + ## Functions +### `encryptFile(publicKey: Key, fileName: string, data: Uint8Array): Uint8Array` + +Encrypts the given binary data for the recipient using the public key. The file name is included in the encrypted data. + +- `publicKey`: The recipient's public key. +- `fileName`: The name of the file being encrypted. +- `data`: The plaintext data as a `Uint8Array`. + +Returns the ciphertext as a `Uint8Array`. + +### `decryptFile(privateKey: Key, data: Uint8Array): { data: Uint8Array, fileName: string }` + +Decrypts the given ciphertext using the recipient's private key. Returns the decrypted data and the original file name. + +- `privateKey`: The recipient's private key. +- `data`: The ciphertext data as a `Uint8Array`. + +Returns an object containing the plaintext data and the original file name. + ### `encryptString(publicKey: Key, string: string): string` -Encrypts the given string with the recipient's public key. Returns the ciphertext as a hexadecimal string. +Encrypts the given string for the recipient using their public key. Returns the ciphertext as a hexadecimal string. + +- `publicKey`: The recipient's public key. +- `string`: The plaintext string. ### `decryptString(privateKey: Key, string: string): string` -Decrypts the given ciphertext string (in hexadecimal format) with the recipient's private key. Returns the plaintext string. +Decrypts the given ciphertext string (in hexadecimal format) using the recipient's private key. Returns the plaintext string. -### `encryptFile(publicKey: Key, data: Uint8Array): Uint8Array` - -Encrypts the given binary data (`Uint8Array`) with the recipient's public key. Returns the ciphertext as a `Uint8Array`. - -### `decryptFile(privateKey: Key, data: Uint8Array): Uint8Array` - -Decrypts the given ciphertext data (`Uint8Array`) with the recipient's private key. Returns the plaintext data as a `Uint8Array`. +- `privateKey`: The recipient's private key. +- `string`: The ciphertext string in hexadecimal format. ## Usage ```javascript -import { Key } from "./zkl-kds/key"; -import { encryptString, decryptString, encryptFile, decryptFile } from "./crypto"; +import { Key } from "@zklx/kds"; +import { encryptString, decryptString, encryptFile, decryptFile } from "@zklx/crypto"; // Example usage: @@ -43,12 +62,14 @@ const decryptedString = decryptString(privateKey, encryptedString); console.log(decryptedString); // "Hello, World!" // Encrypt binary data +const fileName = "document.txt"; const data = new Uint8Array([/* ... */]); -const encryptedData = encryptFile(publicKey, data); +const encryptedData = encryptFile(publicKey, fileName, data); // Decrypt the binary data -const decryptedData = decryptFile(privateKey, encryptedData); +const { data: decryptedData, fileName: decryptedFileName } = decryptFile(privateKey, encryptedData); +console.log(decryptedFileName); // "document.txt" console.log(decryptedData); // Uint8Array ``` @@ -61,8 +82,6 @@ pnpm install npx webpack # use npx, pnpm - webpack integration is broken ``` -then navigate to index.html. - ## Error Handling This module performs type checks on its inputs. It throws `TypeError` if arguments are not of the expected types. Additionally, the `decryptString` function issues a warning if the provided ciphertext string does not appear to be a valid hexadecimal string. @@ -76,4 +95,9 @@ This module performs type checks on its inputs. It throws `TypeError` if argumen This project is licensed under the GNU Lesser General Public License, version 2.1. -Yigid BALABAN, +Authored by Yigid BALABAN, fyb@fybx.dev + +2024 © zk-Lokomotive team + +https://zk-lokomotive.xyz/ + diff --git a/crypto.js b/crypto.js index 68f6046..95ac3b7 100644 --- a/crypto.js +++ b/crypto.js @@ -1,5 +1,5 @@ import init, * as ecies from "ecies-wasm"; -import { Key } from "./zkl-kds/key"; +import { Key } from "@zklx/kds"; init(); const td = new TextDecoder(); @@ -23,8 +23,7 @@ export function encryptFile(publicKey, fileName, data) { if (!(data instanceof Uint8Array)) { throw new TypeError("data must be an instance of Uint8Array"); } - if (!fileName) - fileName = "Unknown file"; + if (!fileName) fileName = "Unknown file"; const _data = new Uint8Array(METADATA_LENGTH + data.length); const fnBytes = te.encode(fileName); @@ -57,9 +56,9 @@ export function decryptFile(privateKey, data) { const fdBytes = plaintext.slice(METADATA_LENGTH, plaintext.length); const fileName = td.decode(fnBytes); - return { + return { data: fdBytes, - fileName: fileName + fileName: fileName, }; } @@ -104,7 +103,7 @@ export function decryptString(privateKey, string) { } const byteArray = Uint8Array.from( - string.match(/.{1,2}/g).map((byte) => parseInt(byte, 16)) + string.match(/.{1,2}/g).map((byte) => parseInt(byte, 16)), ); const decryptedData = decrypt(privateKey, byteArray); return td.decode(decryptedData); @@ -144,8 +143,8 @@ function int2byteArray(int) { int & 0xff ? int & 0xff : 0, (int >> 8) & 0xff ? (int >> 8) & 0xff : 0, (int >> 16) & 0xff ? (int >> 16) & 0xff : 0, - (int >> 24) & 0xff ? (int >> 24) & 0xff : 0 - ] + (int >> 24) & 0xff ? (int >> 24) & 0xff : 0, + ]; } /** @@ -158,16 +157,13 @@ function int2byteArray(int) { * byteArray2int([120, 86, 52, 18]); // 305419896 (0x12345678) */ function byteArray2int(bytes) { - return (bytes[0]) | - (bytes[1] << 8) | - (bytes[2] << 16) | - (bytes[3] << 24); + return bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24); } function asHexString() { return this.reduce( (str, byte) => str + byte.toString(16).padStart(2, "0"), - "" + "", ); } diff --git a/dist/21cfd03815fda4edba72.wasm b/dist/21cfd03815fda4edba72.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d76ec67fe0b5c8a384952b0243aa802e120210c0 GIT binary patch literal 109404 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
>}R0AUS*;969 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 T>gijF{r9+%Ru^V>Z65r;(nKhb literal 0 HcmV?d00001 diff --git a/dist/bundle.js b/dist/bundle.js new file mode 100644 index 0000000..3721879 --- /dev/null +++ b/dist/bundle.js @@ -0,0 +1 @@ +(()=>{var e={724:function(e,t,n){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function i(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function a(e,t,n){if(a.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var f;"object"==typeof e?e.exports=a:t.BN=a,a.BN=a,a.wordSize=26;try{f="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:n(654).Buffer}catch(e){}function d(e,t){var n=e.charCodeAt(t);return n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function o(e,t,n){var r=d(e,n);return n-1>=t&&(r|=d(e,n-1)<<4),r}function s(e,t,n,r){for(var i=0,a=Math.min(e.length,n),f=t;f=49?d-49+10:d>=17?d-17+10:d}return i}a.isBN=function(e){return e instanceof a||null!==e&&"object"==typeof e&&e.constructor.wordSize===a.wordSize&&Array.isArray(e.words)},a.max=function(e,t){return e.cmp(t)>0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i=0;i-=3)f=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[a]|=f<>>26-d&67108863,(d+=24)>=26&&(d-=26,a++);else if("le"===n)for(i=0,a=0;i>>26-d&67108863,(d+=24)>=26&&(d-=26,a++);return this.strip()},a.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)i=o(e,t,r)<=18?(a-=18,f+=1,this.words[f]|=i>>>26):a+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(a-=18,f+=1,this.words[f]|=i>>>26):a+=8;this.strip()},a.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,f=a%r,d=Math.min(a,a-f)+n,o=0,c=n;c1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],u=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function b(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],f=i*a,d=67108863&f,o=f/67108864|0;n.words[0]=d;for(var s=1;s>>26,h=67108863&o,u=Math.min(s,t.length-1),b=Math.max(0,s-e.length+1);b<=u;b++){var l=s-b|0;c+=(f=(i=0|e.words[l])*(a=0|t.words[b])+h)/67108864|0,h=67108863&f}n.words[s]=0|h,o=0|c}return 0!==o?n.words[s]=0|o:n.length--,n.strip()}a.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,a=0,f=0;f>>24-i&16777215)||f!==this.length-1?c[6-o.length]+o+n:o+n,(i+=2)>=26&&(i-=26,f--)}for(0!==a&&(n=a.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var s=h[e],b=u[e];n="";var l=this.clone();for(l.negative=0;!l.isZero();){var p=l.modn(b).toString(e);n=(l=l.idivn(b)).isZero()?p+n:c[s-p.length]+p+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(e,t){return r(void 0!==f),this.toArrayLike(f,e,t)},a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},a.prototype.toArrayLike=function(e,t,n){var i=this.byteLength(),a=n||Math.max(1,i);r(i<=a,"byte array longer than desired length"),r(a>0,"Requested array length <= 0"),this.strip();var f,d,o="le"===t,s=new e(a),c=this.clone();if(o){for(d=0;!c.isZero();d++)f=c.andln(255),c.iushrn(8),s[d]=f;for(;d=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 8191&t||(n+=13,t>>>=13),127&t||(n+=7,t>>>=7),15&t||(n+=4,t>>>=4),3&t||(n+=2,t>>>=2),1&t||n++,n},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-n),this.strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a>>26;for(;0!==i&&a>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;ae.length?this.clone().iadd(e):e.clone().iadd(this)},a.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,f=0;f>26,this.words[f]=67108863&t;for(;0!==a&&f>26,this.words[f]=67108863&t;if(0===a&&f>>13,b=0|f[1],l=8191&b,p=b>>>13,m=0|f[2],g=8191&m,y=m>>>13,v=0|f[3],w=8191&v,M=v>>>13,_=0|f[4],x=8191&_,S=_>>>13,A=0|f[5],k=8191&A,I=A>>>13,z=0|f[6],q=8191&z,R=z>>>13,E=0|f[7],P=8191&E,L=E>>>13,B=0|f[8],j=8191&B,N=B>>>13,T=0|f[9],H=8191&T,O=T>>>13,U=0|d[0],F=8191&U,C=U>>>13,D=0|d[1],K=8191&D,Z=D>>>13,J=0|d[2],W=8191&J,V=J>>>13,X=0|d[3],Y=8191&X,G=X>>>13,$=0|d[4],Q=8191&$,ee=$>>>13,te=0|d[5],ne=8191&te,re=te>>>13,ie=0|d[6],ae=8191&ie,fe=ie>>>13,de=0|d[7],oe=8191&de,se=de>>>13,ce=0|d[8],he=8191&ce,ue=ce>>>13,be=0|d[9],le=8191&be,pe=be>>>13;n.negative=e.negative^t.negative,n.length=19;var me=(s+(r=Math.imul(h,F))|0)+((8191&(i=(i=Math.imul(h,C))+Math.imul(u,F)|0))<<13)|0;s=((a=Math.imul(u,C))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,r=Math.imul(l,F),i=(i=Math.imul(l,C))+Math.imul(p,F)|0,a=Math.imul(p,C);var ge=(s+(r=r+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,Z)|0)+Math.imul(u,K)|0))<<13)|0;s=((a=a+Math.imul(u,Z)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(g,F),i=(i=Math.imul(g,C))+Math.imul(y,F)|0,a=Math.imul(y,C),r=r+Math.imul(l,K)|0,i=(i=i+Math.imul(l,Z)|0)+Math.imul(p,K)|0,a=a+Math.imul(p,Z)|0;var ye=(s+(r=r+Math.imul(h,W)|0)|0)+((8191&(i=(i=i+Math.imul(h,V)|0)+Math.imul(u,W)|0))<<13)|0;s=((a=a+Math.imul(u,V)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(w,F),i=(i=Math.imul(w,C))+Math.imul(M,F)|0,a=Math.imul(M,C),r=r+Math.imul(g,K)|0,i=(i=i+Math.imul(g,Z)|0)+Math.imul(y,K)|0,a=a+Math.imul(y,Z)|0,r=r+Math.imul(l,W)|0,i=(i=i+Math.imul(l,V)|0)+Math.imul(p,W)|0,a=a+Math.imul(p,V)|0;var ve=(s+(r=r+Math.imul(h,Y)|0)|0)+((8191&(i=(i=i+Math.imul(h,G)|0)+Math.imul(u,Y)|0))<<13)|0;s=((a=a+Math.imul(u,G)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(x,F),i=(i=Math.imul(x,C))+Math.imul(S,F)|0,a=Math.imul(S,C),r=r+Math.imul(w,K)|0,i=(i=i+Math.imul(w,Z)|0)+Math.imul(M,K)|0,a=a+Math.imul(M,Z)|0,r=r+Math.imul(g,W)|0,i=(i=i+Math.imul(g,V)|0)+Math.imul(y,W)|0,a=a+Math.imul(y,V)|0,r=r+Math.imul(l,Y)|0,i=(i=i+Math.imul(l,G)|0)+Math.imul(p,Y)|0,a=a+Math.imul(p,G)|0;var we=(s+(r=r+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(u,Q)|0))<<13)|0;s=((a=a+Math.imul(u,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(k,F),i=(i=Math.imul(k,C))+Math.imul(I,F)|0,a=Math.imul(I,C),r=r+Math.imul(x,K)|0,i=(i=i+Math.imul(x,Z)|0)+Math.imul(S,K)|0,a=a+Math.imul(S,Z)|0,r=r+Math.imul(w,W)|0,i=(i=i+Math.imul(w,V)|0)+Math.imul(M,W)|0,a=a+Math.imul(M,V)|0,r=r+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,G)|0)+Math.imul(y,Y)|0,a=a+Math.imul(y,G)|0,r=r+Math.imul(l,Q)|0,i=(i=i+Math.imul(l,ee)|0)+Math.imul(p,Q)|0,a=a+Math.imul(p,ee)|0;var Me=(s+(r=r+Math.imul(h,ne)|0)|0)+((8191&(i=(i=i+Math.imul(h,re)|0)+Math.imul(u,ne)|0))<<13)|0;s=((a=a+Math.imul(u,re)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(q,F),i=(i=Math.imul(q,C))+Math.imul(R,F)|0,a=Math.imul(R,C),r=r+Math.imul(k,K)|0,i=(i=i+Math.imul(k,Z)|0)+Math.imul(I,K)|0,a=a+Math.imul(I,Z)|0,r=r+Math.imul(x,W)|0,i=(i=i+Math.imul(x,V)|0)+Math.imul(S,W)|0,a=a+Math.imul(S,V)|0,r=r+Math.imul(w,Y)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(M,Y)|0,a=a+Math.imul(M,G)|0,r=r+Math.imul(g,Q)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(y,Q)|0,a=a+Math.imul(y,ee)|0,r=r+Math.imul(l,ne)|0,i=(i=i+Math.imul(l,re)|0)+Math.imul(p,ne)|0,a=a+Math.imul(p,re)|0;var _e=(s+(r=r+Math.imul(h,ae)|0)|0)+((8191&(i=(i=i+Math.imul(h,fe)|0)+Math.imul(u,ae)|0))<<13)|0;s=((a=a+Math.imul(u,fe)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(P,F),i=(i=Math.imul(P,C))+Math.imul(L,F)|0,a=Math.imul(L,C),r=r+Math.imul(q,K)|0,i=(i=i+Math.imul(q,Z)|0)+Math.imul(R,K)|0,a=a+Math.imul(R,Z)|0,r=r+Math.imul(k,W)|0,i=(i=i+Math.imul(k,V)|0)+Math.imul(I,W)|0,a=a+Math.imul(I,V)|0,r=r+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,G)|0)+Math.imul(S,Y)|0,a=a+Math.imul(S,G)|0,r=r+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(M,Q)|0,a=a+Math.imul(M,ee)|0,r=r+Math.imul(g,ne)|0,i=(i=i+Math.imul(g,re)|0)+Math.imul(y,ne)|0,a=a+Math.imul(y,re)|0,r=r+Math.imul(l,ae)|0,i=(i=i+Math.imul(l,fe)|0)+Math.imul(p,ae)|0,a=a+Math.imul(p,fe)|0;var xe=(s+(r=r+Math.imul(h,oe)|0)|0)+((8191&(i=(i=i+Math.imul(h,se)|0)+Math.imul(u,oe)|0))<<13)|0;s=((a=a+Math.imul(u,se)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(j,F),i=(i=Math.imul(j,C))+Math.imul(N,F)|0,a=Math.imul(N,C),r=r+Math.imul(P,K)|0,i=(i=i+Math.imul(P,Z)|0)+Math.imul(L,K)|0,a=a+Math.imul(L,Z)|0,r=r+Math.imul(q,W)|0,i=(i=i+Math.imul(q,V)|0)+Math.imul(R,W)|0,a=a+Math.imul(R,V)|0,r=r+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,G)|0)+Math.imul(I,Y)|0,a=a+Math.imul(I,G)|0,r=r+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(S,Q)|0,a=a+Math.imul(S,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(M,ne)|0,a=a+Math.imul(M,re)|0,r=r+Math.imul(g,ae)|0,i=(i=i+Math.imul(g,fe)|0)+Math.imul(y,ae)|0,a=a+Math.imul(y,fe)|0,r=r+Math.imul(l,oe)|0,i=(i=i+Math.imul(l,se)|0)+Math.imul(p,oe)|0,a=a+Math.imul(p,se)|0;var Se=(s+(r=r+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,ue)|0)+Math.imul(u,he)|0))<<13)|0;s=((a=a+Math.imul(u,ue)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(H,F),i=(i=Math.imul(H,C))+Math.imul(O,F)|0,a=Math.imul(O,C),r=r+Math.imul(j,K)|0,i=(i=i+Math.imul(j,Z)|0)+Math.imul(N,K)|0,a=a+Math.imul(N,Z)|0,r=r+Math.imul(P,W)|0,i=(i=i+Math.imul(P,V)|0)+Math.imul(L,W)|0,a=a+Math.imul(L,V)|0,r=r+Math.imul(q,Y)|0,i=(i=i+Math.imul(q,G)|0)+Math.imul(R,Y)|0,a=a+Math.imul(R,G)|0,r=r+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(I,Q)|0,a=a+Math.imul(I,ee)|0,r=r+Math.imul(x,ne)|0,i=(i=i+Math.imul(x,re)|0)+Math.imul(S,ne)|0,a=a+Math.imul(S,re)|0,r=r+Math.imul(w,ae)|0,i=(i=i+Math.imul(w,fe)|0)+Math.imul(M,ae)|0,a=a+Math.imul(M,fe)|0,r=r+Math.imul(g,oe)|0,i=(i=i+Math.imul(g,se)|0)+Math.imul(y,oe)|0,a=a+Math.imul(y,se)|0,r=r+Math.imul(l,he)|0,i=(i=i+Math.imul(l,ue)|0)+Math.imul(p,he)|0,a=a+Math.imul(p,ue)|0;var Ae=(s+(r=r+Math.imul(h,le)|0)|0)+((8191&(i=(i=i+Math.imul(h,pe)|0)+Math.imul(u,le)|0))<<13)|0;s=((a=a+Math.imul(u,pe)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(H,K),i=(i=Math.imul(H,Z))+Math.imul(O,K)|0,a=Math.imul(O,Z),r=r+Math.imul(j,W)|0,i=(i=i+Math.imul(j,V)|0)+Math.imul(N,W)|0,a=a+Math.imul(N,V)|0,r=r+Math.imul(P,Y)|0,i=(i=i+Math.imul(P,G)|0)+Math.imul(L,Y)|0,a=a+Math.imul(L,G)|0,r=r+Math.imul(q,Q)|0,i=(i=i+Math.imul(q,ee)|0)+Math.imul(R,Q)|0,a=a+Math.imul(R,ee)|0,r=r+Math.imul(k,ne)|0,i=(i=i+Math.imul(k,re)|0)+Math.imul(I,ne)|0,a=a+Math.imul(I,re)|0,r=r+Math.imul(x,ae)|0,i=(i=i+Math.imul(x,fe)|0)+Math.imul(S,ae)|0,a=a+Math.imul(S,fe)|0,r=r+Math.imul(w,oe)|0,i=(i=i+Math.imul(w,se)|0)+Math.imul(M,oe)|0,a=a+Math.imul(M,se)|0,r=r+Math.imul(g,he)|0,i=(i=i+Math.imul(g,ue)|0)+Math.imul(y,he)|0,a=a+Math.imul(y,ue)|0;var ke=(s+(r=r+Math.imul(l,le)|0)|0)+((8191&(i=(i=i+Math.imul(l,pe)|0)+Math.imul(p,le)|0))<<13)|0;s=((a=a+Math.imul(p,pe)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(H,W),i=(i=Math.imul(H,V))+Math.imul(O,W)|0,a=Math.imul(O,V),r=r+Math.imul(j,Y)|0,i=(i=i+Math.imul(j,G)|0)+Math.imul(N,Y)|0,a=a+Math.imul(N,G)|0,r=r+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(L,Q)|0,a=a+Math.imul(L,ee)|0,r=r+Math.imul(q,ne)|0,i=(i=i+Math.imul(q,re)|0)+Math.imul(R,ne)|0,a=a+Math.imul(R,re)|0,r=r+Math.imul(k,ae)|0,i=(i=i+Math.imul(k,fe)|0)+Math.imul(I,ae)|0,a=a+Math.imul(I,fe)|0,r=r+Math.imul(x,oe)|0,i=(i=i+Math.imul(x,se)|0)+Math.imul(S,oe)|0,a=a+Math.imul(S,se)|0,r=r+Math.imul(w,he)|0,i=(i=i+Math.imul(w,ue)|0)+Math.imul(M,he)|0,a=a+Math.imul(M,ue)|0;var Ie=(s+(r=r+Math.imul(g,le)|0)|0)+((8191&(i=(i=i+Math.imul(g,pe)|0)+Math.imul(y,le)|0))<<13)|0;s=((a=a+Math.imul(y,pe)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(H,Y),i=(i=Math.imul(H,G))+Math.imul(O,Y)|0,a=Math.imul(O,G),r=r+Math.imul(j,Q)|0,i=(i=i+Math.imul(j,ee)|0)+Math.imul(N,Q)|0,a=a+Math.imul(N,ee)|0,r=r+Math.imul(P,ne)|0,i=(i=i+Math.imul(P,re)|0)+Math.imul(L,ne)|0,a=a+Math.imul(L,re)|0,r=r+Math.imul(q,ae)|0,i=(i=i+Math.imul(q,fe)|0)+Math.imul(R,ae)|0,a=a+Math.imul(R,fe)|0,r=r+Math.imul(k,oe)|0,i=(i=i+Math.imul(k,se)|0)+Math.imul(I,oe)|0,a=a+Math.imul(I,se)|0,r=r+Math.imul(x,he)|0,i=(i=i+Math.imul(x,ue)|0)+Math.imul(S,he)|0,a=a+Math.imul(S,ue)|0;var ze=(s+(r=r+Math.imul(w,le)|0)|0)+((8191&(i=(i=i+Math.imul(w,pe)|0)+Math.imul(M,le)|0))<<13)|0;s=((a=a+Math.imul(M,pe)|0)+(i>>>13)|0)+(ze>>>26)|0,ze&=67108863,r=Math.imul(H,Q),i=(i=Math.imul(H,ee))+Math.imul(O,Q)|0,a=Math.imul(O,ee),r=r+Math.imul(j,ne)|0,i=(i=i+Math.imul(j,re)|0)+Math.imul(N,ne)|0,a=a+Math.imul(N,re)|0,r=r+Math.imul(P,ae)|0,i=(i=i+Math.imul(P,fe)|0)+Math.imul(L,ae)|0,a=a+Math.imul(L,fe)|0,r=r+Math.imul(q,oe)|0,i=(i=i+Math.imul(q,se)|0)+Math.imul(R,oe)|0,a=a+Math.imul(R,se)|0,r=r+Math.imul(k,he)|0,i=(i=i+Math.imul(k,ue)|0)+Math.imul(I,he)|0,a=a+Math.imul(I,ue)|0;var qe=(s+(r=r+Math.imul(x,le)|0)|0)+((8191&(i=(i=i+Math.imul(x,pe)|0)+Math.imul(S,le)|0))<<13)|0;s=((a=a+Math.imul(S,pe)|0)+(i>>>13)|0)+(qe>>>26)|0,qe&=67108863,r=Math.imul(H,ne),i=(i=Math.imul(H,re))+Math.imul(O,ne)|0,a=Math.imul(O,re),r=r+Math.imul(j,ae)|0,i=(i=i+Math.imul(j,fe)|0)+Math.imul(N,ae)|0,a=a+Math.imul(N,fe)|0,r=r+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,se)|0)+Math.imul(L,oe)|0,a=a+Math.imul(L,se)|0,r=r+Math.imul(q,he)|0,i=(i=i+Math.imul(q,ue)|0)+Math.imul(R,he)|0,a=a+Math.imul(R,ue)|0;var Re=(s+(r=r+Math.imul(k,le)|0)|0)+((8191&(i=(i=i+Math.imul(k,pe)|0)+Math.imul(I,le)|0))<<13)|0;s=((a=a+Math.imul(I,pe)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(H,ae),i=(i=Math.imul(H,fe))+Math.imul(O,ae)|0,a=Math.imul(O,fe),r=r+Math.imul(j,oe)|0,i=(i=i+Math.imul(j,se)|0)+Math.imul(N,oe)|0,a=a+Math.imul(N,se)|0,r=r+Math.imul(P,he)|0,i=(i=i+Math.imul(P,ue)|0)+Math.imul(L,he)|0,a=a+Math.imul(L,ue)|0;var Ee=(s+(r=r+Math.imul(q,le)|0)|0)+((8191&(i=(i=i+Math.imul(q,pe)|0)+Math.imul(R,le)|0))<<13)|0;s=((a=a+Math.imul(R,pe)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(H,oe),i=(i=Math.imul(H,se))+Math.imul(O,oe)|0,a=Math.imul(O,se),r=r+Math.imul(j,he)|0,i=(i=i+Math.imul(j,ue)|0)+Math.imul(N,he)|0,a=a+Math.imul(N,ue)|0;var Pe=(s+(r=r+Math.imul(P,le)|0)|0)+((8191&(i=(i=i+Math.imul(P,pe)|0)+Math.imul(L,le)|0))<<13)|0;s=((a=a+Math.imul(L,pe)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(H,he),i=(i=Math.imul(H,ue))+Math.imul(O,he)|0,a=Math.imul(O,ue);var Le=(s+(r=r+Math.imul(j,le)|0)|0)+((8191&(i=(i=i+Math.imul(j,pe)|0)+Math.imul(N,le)|0))<<13)|0;s=((a=a+Math.imul(N,pe)|0)+(i>>>13)|0)+(Le>>>26)|0,Le&=67108863;var Be=(s+(r=Math.imul(H,le))|0)+((8191&(i=(i=Math.imul(H,pe))+Math.imul(O,le)|0))<<13)|0;return s=((a=Math.imul(O,pe))+(i>>>13)|0)+(Be>>>26)|0,Be&=67108863,o[0]=me,o[1]=ge,o[2]=ye,o[3]=ve,o[4]=we,o[5]=Me,o[6]=_e,o[7]=xe,o[8]=Se,o[9]=Ae,o[10]=ke,o[11]=Ie,o[12]=ze,o[13]=qe,o[14]=Re,o[15]=Ee,o[16]=Pe,o[17]=Le,o[18]=Be,0!==s&&(o[19]=s,n.length++),n};function p(e,t,n){return(new m).mulp(e,t,n)}function m(e,t){this.x=e,this.y=t}Math.imul||(l=b),a.prototype.mulTo=function(e,t){var n,r=this.length+e.length;return n=10===this.length&&10===e.length?l(this,e,t):r<63?b(this,e,t):r<1024?function(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a>>26)|0)>>>26,f&=67108863}n.words[a]=d,r=f,f=i}return 0!==r?n.words[a]=r:n.length--,n.strip()}(this,e,t):p(this,e,t),n},m.prototype.makeRBT=function(e){for(var t=new Array(e),n=a.prototype._countBits(e)-1,r=0;r>=1;return r},m.prototype.permute=function(e,t,n,r,i,a){for(var f=0;f>>=1)i++;return 1<>>=13,n[2*f+1]=8191&a,a>>>=13;for(f=2*t;f>=26,t+=i/67108864|0,t+=a>>>26,this.words[n]=67108863&a}return 0!==t&&(this.words[n]=t,this.length++),this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>i}return t}(e);if(0===t.length)return new a(1);for(var n=this,r=0;r=0);var t,n=e%26,i=(e-n)/26,a=67108863>>>26-n<<26-n;if(0!==n){var f=0;for(t=0;t>>26-n}f&&(this.words[t]=f,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t=0),i=t?(t-t%26)/26:0;var a=e%26,f=Math.min((e-a)/26,this.length),d=67108863^67108863>>>a<f)for(this.length-=f,s=0;s=0&&(0!==c||s>=i);s--){var h=0|this.words[s];this.words[s]=c<<26-a|h>>>a,c=h&d}return o&&0!==c&&(o.words[o.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var i=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},a.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(o/67108864|0),this.words[i+n]=67108863&a}for(;i>26,this.words[i+n]=67108863&a;if(0===d)return this.strip();for(r(-1===d),d=0,i=0;i>26,this.words[i]=67108863&a;return this.negative=1,this.strip()},a.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,f=0|i.words[i.length-1];0!=(n=26-this._countBits(f))&&(i=i.ushln(n),r.iushln(n),f=0|i.words[i.length-1]);var d,o=r.length-i.length;if("mod"!==t){(d=new a(null)).length=o+1,d.words=new Array(d.length);for(var s=0;s=0;h--){var u=67108864*(0|r.words[i.length+h])+(0|r.words[i.length+h-1]);for(u=Math.min(u/f|0,67108863),r._ishlnsubmul(i,u,h);0!==r.negative;)u--,r.negative=0,r._ishlnsubmul(i,1,h),r.isZero()||(r.negative^=1);d&&(d.words[h]=u)}return d&&d.strip(),r.strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:d||null,mod:r}},a.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(d=this.neg().divmod(e,t),"mod"!==t&&(i=d.div.neg()),"div"!==t&&(f=d.mod.neg(),n&&0!==f.negative&&f.iadd(e)),{div:i,mod:f}):0===this.negative&&0!==e.negative?(d=this.divmod(e.neg(),t),"mod"!==t&&(i=d.div.neg()),{div:i,mod:d.mod}):this.negative&e.negative?(d=this.neg().divmod(e.neg(),t),"div"!==t&&(f=d.mod.neg(),n&&0!==f.negative&&f.isub(e)),{div:d.div,mod:f}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,f,d},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,i=this.length-1;i>=0;i--)n=(t*n+(0|this.words[i]))%e;return n},a.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var i=(0|this.words[n])+67108864*t;this.words[n]=i/e|0,t=i%e}return this.strip()},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new a(1),f=new a(0),d=new a(0),o=new a(1),s=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++s;for(var c=n.clone(),h=t.clone();!t.isZero();){for(var u=0,b=1;!(t.words[0]&b)&&u<26;++u,b<<=1);if(u>0)for(t.iushrn(u);u-- >0;)(i.isOdd()||f.isOdd())&&(i.iadd(c),f.isub(h)),i.iushrn(1),f.iushrn(1);for(var l=0,p=1;!(n.words[0]&p)&&l<26;++l,p<<=1);if(l>0)for(n.iushrn(l);l-- >0;)(d.isOdd()||o.isOdd())&&(d.iadd(c),o.isub(h)),d.iushrn(1),o.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(d),f.isub(o)):(n.isub(t),d.isub(i),o.isub(f))}return{a:d,b:o,gcd:n.iushln(s)}},a.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,f=new a(1),d=new a(0),o=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var s=0,c=1;!(t.words[0]&c)&&s<26;++s,c<<=1);if(s>0)for(t.iushrn(s);s-- >0;)f.isOdd()&&f.iadd(o),f.iushrn(1);for(var h=0,u=1;!(n.words[0]&u)&&h<26;++h,u<<=1);if(h>0)for(n.iushrn(h);h-- >0;)d.isOdd()&&d.iadd(o),d.iushrn(1);t.cmp(n)>=0?(t.isub(n),f.isub(d)):(n.isub(t),d.isub(f))}return(i=0===t.cmpn(1)?f:d).cmpn(0)<0&&i.iadd(e),i},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return!(1&this.words[0])},a.prototype.isOdd=function(){return!(1&~this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<>>26,d&=67108863,this.words[f]=d}return 0!==a&&(this.words[f]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:ie.length)return 1;if(this.length=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){ri&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new x(e)},a.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var g={k256:null,p224:null,p192:null,p25519:null};function y(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function x(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function S(e){x.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},y.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},y.prototype.split=function(e,t){e.iushrn(this.n,0,t)},y.prototype.imulK=function(e){return e.imul(this.k)},i(v,y),v.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i>>22,a=f}a>>>=22,e.words[i-10]=a,0===a&&e.length>10?e.length-=10:e.length-=9},v.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(g[e])return g[e];var t;if("k256"===e)t=new v;else if("p224"===e)t=new w;else if("p192"===e)t=new M;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new _}return g[e]=t,t},x.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},x.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},x.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},x.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},x.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},x.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},x.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},x.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},x.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},x.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},x.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},x.prototype.isqr=function(e){return this.imul(e,e.clone())},x.prototype.sqr=function(e){return this.mul(e,e)},x.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new a(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),f=0;!i.isZero()&&0===i.andln(1);)f++,i.iushrn(1);r(!i.isZero());var d=new a(1).toRed(this),o=d.redNeg(),s=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new a(2*c*c).toRed(this);0!==this.pow(c,s).cmp(o);)c.redIAdd(o);for(var h=this.pow(c,i),u=this.pow(e,i.addn(1).iushrn(1)),b=this.pow(e,i),l=f;0!==b.cmp(d);){for(var p=b,m=0;0!==p.cmp(d);m++)p=p.redSqr();r(m=0;r--){for(var s=t.words[r],c=o-1;c>=0;c--){var h=s>>c&1;i!==n[0]&&(i=this.sqr(i)),0!==h||0!==f?(f<<=1,f|=h,(4==++d||0===r&&0===c)&&(i=this.mul(i,n[f]),d=0,f=0)):d=0}o=26}return i},x.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},x.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new S(e)},i(S,x),S.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},S.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},S.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},S.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),f=i;return i.cmp(this.m)>=0?f=i.isub(this.m):i.cmpn(0)<0&&(f=i.iadd(this.m)),f._forceRed(this)},S.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},569:(e,t,n)=>{var r;function i(e){this.rand=e}if(e.exports=function(e){return r||(r=new i(null)),r.generate(e)},e.exports.Rand=i,i.prototype.generate=function(e){return this._rand(e)},i.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),n=0;n{"use strict";let r;n.d(t,{Ay:()=>_,Yc:()=>y,w:()=>g}),e=n.hmd(e);const i=new Array(128).fill(void 0);function a(e){return i[e]}i.push(void 0,null,!0,!1);let f=i.length;function d(e){const t=a(e);return function(e){e<132||(i[e]=f,f=e)}(e),t}const o="undefined"!=typeof TextDecoder?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};"undefined"!=typeof TextDecoder&&o.decode();let s=null;function c(){return null!==s&&0!==s.byteLength||(s=new Uint8Array(r.memory.buffer)),s}function h(e,t){return e>>>=0,o.decode(c().subarray(e,e+t))}function u(e){f===i.length&&i.push(i.length+1);const t=f;return f=i[t],i[t]=e,t}let b=0;function l(e,t){const n=t(1*e.length,1)>>>0;return c().set(e,n/1),b=e.length,n}let p=null;function m(){return null!==p&&0!==p.byteLength||(p=new Int32Array(r.memory.buffer)),p}function g(e,t){try{const a=r.__wbindgen_add_to_stack_pointer(-16),f=l(e,r.__wbindgen_malloc),o=b,s=l(t,r.__wbindgen_malloc),c=b;r.encrypt(a,f,o,s,c);var n=m()[a/4+0],i=m()[a/4+1];if(m()[a/4+2])throw d(i);return d(n)}finally{r.__wbindgen_add_to_stack_pointer(16)}}function y(e,t){try{const a=r.__wbindgen_add_to_stack_pointer(-16),f=l(e,r.__wbindgen_malloc),o=b,s=l(t,r.__wbindgen_malloc),c=b;r.decrypt(a,f,o,s,c);var n=m()[a/4+0],i=m()[a/4+1];if(m()[a/4+2])throw d(i);return d(n)}finally{r.__wbindgen_add_to_stack_pointer(16)}}function v(e,t){try{return e.apply(this,t)}catch(e){r.__wbindgen_exn_store(u(e))}}function w(){const t={wbg:{}};return t.wbg.__wbindgen_object_drop_ref=function(e){d(e)},t.wbg.__wbindgen_error_new=function(e,t){return u(new Error(h(e,t)))},t.wbg.__wbindgen_is_object=function(e){const t=a(e);return"object"==typeof t&&null!==t},t.wbg.__wbg_crypto_c48a774b022d20ac=function(e){return u(a(e).crypto)},t.wbg.__wbg_process_298734cf255a885d=function(e){return u(a(e).process)},t.wbg.__wbg_versions_e2e78e134e3e5d01=function(e){return u(a(e).versions)},t.wbg.__wbg_node_1cd7a5d853dbea79=function(e){return u(a(e).node)},t.wbg.__wbindgen_is_string=function(e){return"string"==typeof a(e)},t.wbg.__wbg_require_8f08ceecec0f4fee=function(){return v((function(){return u(e.require)}),arguments)},t.wbg.__wbindgen_string_new=function(e,t){return u(h(e,t))},t.wbg.__wbg_msCrypto_bcb970640f50a1e8=function(e){return u(a(e).msCrypto)},t.wbg.__wbg_getRandomValues_37fa2ca9e4e07fab=function(){return v((function(e,t){a(e).getRandomValues(a(t))}),arguments)},t.wbg.__wbg_randomFillSync_dc1e9a60c158336d=function(){return v((function(e,t){a(e).randomFillSync(d(t))}),arguments)},t.wbg.__wbg_new_898a68150f225f2e=function(){return u(new Array)},t.wbg.__wbg_newnoargs_581967eacc0e2604=function(e,t){return u(new Function(h(e,t)))},t.wbg.__wbindgen_is_function=function(e){return"function"==typeof a(e)},t.wbg.__wbg_self_1ff1d729e9aae938=function(){return v((function(){return u(self.self)}),arguments)},t.wbg.__wbg_window_5f4faef6c12b79ec=function(){return v((function(){return u(window.window)}),arguments)},t.wbg.__wbg_globalThis_1d39714405582d3c=function(){return v((function(){return u(globalThis.globalThis)}),arguments)},t.wbg.__wbg_global_651f05c6a0944d1c=function(){return v((function(){return u(n.g.global)}),arguments)},t.wbg.__wbindgen_is_undefined=function(e){return void 0===a(e)},t.wbg.__wbg_push_ca1c26067ef907ac=function(e,t){return a(e).push(a(t))},t.wbg.__wbg_call_cb65541d95d71282=function(){return v((function(e,t){return u(a(e).call(a(t)))}),arguments)},t.wbg.__wbg_call_01734de55d61e11d=function(){return v((function(e,t,n){return u(a(e).call(a(t),a(n)))}),arguments)},t.wbg.__wbg_buffer_085ec1f694018c4f=function(e){return u(a(e).buffer)},t.wbg.__wbg_newwithbyteoffsetandlength_6da8e527659b86aa=function(e,t,n){return u(new Uint8Array(a(e),t>>>0,n>>>0))},t.wbg.__wbg_new_8125e318e6245eed=function(e){return u(new Uint8Array(a(e)))},t.wbg.__wbg_newwithlength_e5d69174d6984cd7=function(e){return u(new Uint8Array(e>>>0))},t.wbg.__wbg_subarray_13db269f57aa838d=function(e,t,n){return u(a(e).subarray(t>>>0,n>>>0))},t.wbg.__wbg_set_5cf90238115182c3=function(e,t,n){a(e).set(a(t),n>>>0)},t.wbg.__wbindgen_object_clone_ref=function(e){return u(a(e))},t.wbg.__wbindgen_throw=function(e,t){throw new Error(h(e,t))},t.wbg.__wbindgen_memory=function(){return u(r.memory)},t}async function M(e){if(void 0!==r)return r;void 0===e&&(e=new URL(n(623),n.b));const t=w();("string"==typeof e||"function"==typeof Request&&e instanceof Request||"function"==typeof URL&&e instanceof URL)&&(e=fetch(e));const{instance:i,module:a}=await async function(e,t){if("function"==typeof Response&&e instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if("application/wasm"==e.headers.get("Content-Type"))throw t;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",t)}const n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}{const n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}(await e,t);return function(e,t){return r=e.exports,M.__wbindgen_wasm_module=t,p=null,s=null,r}(i,a)}const _=M},695:(e,t,n)=>{"use strict";var r=t;r.version=n(662).rE,r.utils=n(121),r.rand=n(569),r.curve=n(396),r.curves=n(414),r.ec=n(329),r.eddsa=n(32)},507:(e,t,n)=>{"use strict";var r=n(724),i=n(121),a=i.getNAF,f=i.getJSF,d=i.assert;function o(e,t){this.type=e,this.p=new r(t.p,16),this.red=t.prime?r.red(t.prime):r.mont(this.p),this.zero=new r(0).toRed(this.red),this.one=new r(1).toRed(this.red),this.two=new r(2).toRed(this.red),this.n=t.n&&new r(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function s(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=o,o.prototype.point=function(){throw new Error("Not implemented")},o.prototype.validate=function(){throw new Error("Not implemented")},o.prototype._fixedNafMul=function(e,t){d(e.precomputed);var n=e._getDoubles(),r=a(t,1,this._bitLength),i=(1<=f;c--)o=(o<<1)+r[c];s.push(o)}for(var h=this.jpoint(null,null,null),u=this.jpoint(null,null,null),b=i;b>0;b--){for(f=0;f=0;s--){for(var c=0;s>=0&&0===f[s];s--)c++;if(s>=0&&c++,o=o.dblp(c),s<0)break;var h=f[s];d(0!==h),o="affine"===e.type?h>0?o.mixedAdd(i[h-1>>1]):o.mixedAdd(i[-h-1>>1].neg()):h>0?o.add(i[h-1>>1]):o.add(i[-h-1>>1].neg())}return"affine"===e.type?o.toP():o},o.prototype._wnafMulAdd=function(e,t,n,r,i){var d,o,s,c=this._wnafT1,h=this._wnafT2,u=this._wnafT3,b=0;for(d=0;d=1;d-=2){var p=d-1,m=d;if(1===c[p]&&1===c[m]){var g=[t[p],null,null,t[m]];0===t[p].y.cmp(t[m].y)?(g[1]=t[p].add(t[m]),g[2]=t[p].toJ().mixedAdd(t[m].neg())):0===t[p].y.cmp(t[m].y.redNeg())?(g[1]=t[p].toJ().mixedAdd(t[m]),g[2]=t[p].add(t[m].neg())):(g[1]=t[p].toJ().mixedAdd(t[m]),g[2]=t[p].toJ().mixedAdd(t[m].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],v=f(n[p],n[m]);for(b=Math.max(v[0].length,b),u[p]=new Array(b),u[m]=new Array(b),o=0;o=0;d--){for(var S=0;d>=0;){var A=!0;for(o=0;o=0&&S++,_=_.dblp(S),d<0)break;for(o=0;o0?s=h[o][k-1>>1]:k<0&&(s=h[o][-k-1>>1].neg()),_="affine"===s.type?_.mixedAdd(s):_.add(s))}}for(d=0;d=Math.ceil((e.bitLength()+1)/t.step)},s.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i{"use strict";var r=n(121),i=n(724),a=n(192),f=n(507),d=r.assert;function o(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,f.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),d(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function s(e,t,n,r,a){f.BasePoint.call(this,e,"projective"),null===t&&null===n&&null===r?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(n,16),this.z=r?new i(r,16):this.curve.one,this.t=a&&new i(a,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}a(o,f),e.exports=o,o.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},o.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},o.prototype.jpoint=function(e,t,n,r){return this.point(e,t,n,r)},o.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=this.c2.redSub(this.a.redMul(n)),a=this.one.redSub(this.c2.redMul(this.d).redMul(n)),f=r.redMul(a.redInvm()),d=f.redSqrt();if(0!==d.redSqr().redSub(f).cmp(this.zero))throw new Error("invalid point");var o=d.fromRed().isOdd();return(t&&!o||!t&&o)&&(d=d.redNeg()),this.point(e,d)},o.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=n.redSub(this.c2),a=n.redMul(this.d).redMul(this.c2).redSub(this.a),f=r.redMul(a.redInvm());if(0===f.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var d=f.redSqrt();if(0!==d.redSqr().redSub(f).cmp(this.zero))throw new Error("invalid point");return d.fromRed().isOdd()!==t&&(d=d.redNeg()),this.point(d,e)},o.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),n=e.y.redSqr(),r=t.redMul(this.a).redAdd(n),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(n)));return 0===r.cmp(i)},a(s,f.BasePoint),o.prototype.pointFromJSON=function(e){return s.fromJSON(this,e)},o.prototype.point=function(e,t,n,r){return new s(this,e,t,n,r)},s.fromJSON=function(e,t){return new s(e,t[0],t[1],t[2])},s.prototype.inspect=function(){return this.isInfinity()?"":""},s.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},s.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var r=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),a=r.redAdd(t),f=a.redSub(n),d=r.redSub(t),o=i.redMul(f),s=a.redMul(d),c=i.redMul(d),h=f.redMul(a);return this.curve.point(o,s,h,c)},s.prototype._projDbl=function(){var e,t,n,r,i,a,f=this.x.redAdd(this.y).redSqr(),d=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var s=(r=this.curve._mulA(d)).redAdd(o);this.zOne?(e=f.redSub(d).redSub(o).redMul(s.redSub(this.curve.two)),t=s.redMul(r.redSub(o)),n=s.redSqr().redSub(s).redSub(s)):(i=this.z.redSqr(),a=s.redSub(i).redISub(i),e=f.redSub(d).redISub(o).redMul(a),t=s.redMul(r.redSub(o)),n=s.redMul(a))}else r=d.redAdd(o),i=this.curve._mulC(this.z).redSqr(),a=r.redSub(i).redSub(i),e=this.curve._mulC(f.redISub(r)).redMul(a),t=this.curve._mulC(r).redMul(d.redISub(o)),n=r.redMul(a);return this.curve.point(e,t,n)},s.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},s.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),n=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),r=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),a=n.redSub(t),f=i.redSub(r),d=i.redAdd(r),o=n.redAdd(t),s=a.redMul(f),c=d.redMul(o),h=a.redMul(o),u=f.redMul(d);return this.curve.point(s,c,u,h)},s.prototype._projAdd=function(e){var t,n,r=this.z.redMul(e.z),i=r.redSqr(),a=this.x.redMul(e.x),f=this.y.redMul(e.y),d=this.curve.d.redMul(a).redMul(f),o=i.redSub(d),s=i.redAdd(d),c=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(a).redISub(f),h=r.redMul(o).redMul(c);return this.curve.twisted?(t=r.redMul(s).redMul(f.redSub(this.curve._mulA(a))),n=o.redMul(s)):(t=r.redMul(s).redMul(f.redSub(a)),n=this.curve._mulC(o).redMul(s)),this.curve.point(h,t,n)},s.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},s.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},s.prototype.mulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!1)},s.prototype.jmulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!0)},s.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},s.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},s.prototype.getX=function(){return this.normalize(),this.x.fromRed()},s.prototype.getY=function(){return this.normalize(),this.y.fromRed()},s.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},s.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var n=e.clone(),r=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),0===this.x.cmp(t))return!0}},s.prototype.toP=s.prototype.normalize,s.prototype.mixedAdd=s.prototype.add},396:(e,t,n)=>{"use strict";var r=t;r.base=n(507),r.short=n(586),r.mont=n(672),r.edwards=n(811)},672:(e,t,n)=>{"use strict";var r=n(724),i=n(192),a=n(507),f=n(121);function d(e){a.call(this,"mont",e),this.a=new r(e.a,16).toRed(this.red),this.b=new r(e.b,16).toRed(this.red),this.i4=new r(4).toRed(this.red).redInvm(),this.two=new r(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function o(e,t,n){a.BasePoint.call(this,e,"projective"),null===t&&null===n?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new r(t,16),this.z=new r(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(d,a),e.exports=d,d.prototype.validate=function(e){var t=e.normalize().x,n=t.redSqr(),r=n.redMul(t).redAdd(n.redMul(this.a)).redAdd(t);return 0===r.redSqrt().redSqr().cmp(r)},i(o,a.BasePoint),d.prototype.decodePoint=function(e,t){return this.point(f.toArray(e,t),1)},d.prototype.point=function(e,t){return new o(this,e,t)},d.prototype.pointFromJSON=function(e){return o.fromJSON(this,e)},o.prototype.precompute=function(){},o.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},o.fromJSON=function(e,t){return new o(e,t[0],t[1]||e.one)},o.prototype.inspect=function(){return this.isInfinity()?"":""},o.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},o.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),n=e.redSub(t),r=e.redMul(t),i=n.redMul(t.redAdd(this.curve.a24.redMul(n)));return this.curve.point(r,i)},o.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},o.prototype.diffAdd=function(e,t){var n=this.x.redAdd(this.z),r=this.x.redSub(this.z),i=e.x.redAdd(e.z),a=e.x.redSub(e.z).redMul(n),f=i.redMul(r),d=t.z.redMul(a.redAdd(f).redSqr()),o=t.x.redMul(a.redISub(f).redSqr());return this.curve.point(d,o)},o.prototype.mul=function(e){for(var t=e.clone(),n=this,r=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var a=i.length-1;a>=0;a--)0===i[a]?(n=n.diffAdd(r,this),r=r.dbl()):(r=n.diffAdd(r,this),n=n.dbl());return r},o.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},o.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},o.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},o.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},o.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},586:(e,t,n)=>{"use strict";var r=n(121),i=n(724),a=n(192),f=n(507),d=r.assert;function o(e){f.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function s(e,t,n,r){f.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function c(e,t,n,r){f.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(n,16),this.z=new i(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}a(o,f),e.exports=o,o.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new i(e.lambda,16);else{var a=this._getEndoRoots(this.n);0===this.g.mul(a[0]).x.cmp(this.g.x.redMul(t))?n=a[0]:(n=a[1],d(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(n)}}},o.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),n=new i(2).toRed(t).redInvm(),r=n.redNeg(),a=new i(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(a).fromRed(),r.redSub(a).fromRed()]},o.prototype._getEndoBasis=function(e){for(var t,n,r,a,f,d,o,s,c,h=this.n.ushrn(Math.floor(this.n.bitLength()/2)),u=e,b=this.n.clone(),l=new i(1),p=new i(0),m=new i(0),g=new i(1),y=0;0!==u.cmpn(0);){var v=b.div(u);s=b.sub(v.mul(u)),c=m.sub(v.mul(l));var w=g.sub(v.mul(p));if(!r&&s.cmp(h)<0)t=o.neg(),n=l,r=s.neg(),a=c;else if(r&&2==++y)break;o=s,b=u,u=s,m=l,l=c,g=p,p=w}f=s.neg(),d=c;var M=r.sqr().add(a.sqr());return f.sqr().add(d.sqr()).cmp(M)>=0&&(f=t,d=n),r.negative&&(r=r.neg(),a=a.neg()),f.negative&&(f=f.neg(),d=d.neg()),[{a:r,b:a},{a:f,b:d}]},o.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),a=n.b.neg().mul(e).divRound(this.n),f=i.mul(n.a),d=a.mul(r.a),o=i.mul(n.b),s=a.mul(r.b);return{k1:e.sub(f).sub(d),k2:o.add(s).neg()}},o.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var a=r.fromRed().isOdd();return(t&&!a||!t&&a)&&(r=r.redNeg()),this.point(e,r)},o.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},o.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,a=0;a":""},s.prototype.isInfinity=function(){return this.inf},s.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},s.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),a=i.redSqr().redISub(this.x.redAdd(this.x)),f=i.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,f)},s.prototype.getX=function(){return this.x.fromRed()},s.prototype.getY=function(){return this.y.fromRed()},s.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},s.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},s.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},s.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},s.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},s.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},a(c,f.BasePoint),o.prototype.jpoint=function(e,t,n){return new c(this,e,t,n)},c.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},c.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},c.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),a=this.y.redMul(t.redMul(e.z)),f=e.y.redMul(n.redMul(this.z)),d=r.redSub(i),o=a.redSub(f);if(0===d.cmpn(0))return 0!==o.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var s=d.redSqr(),c=s.redMul(d),h=r.redMul(s),u=o.redSqr().redIAdd(c).redISub(h).redISub(h),b=o.redMul(h.redISub(u)).redISub(a.redMul(c)),l=this.z.redMul(e.z).redMul(d);return this.curve.jpoint(u,b,l)},c.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,a=e.y.redMul(t).redMul(this.z),f=n.redSub(r),d=i.redSub(a);if(0===f.cmpn(0))return 0!==d.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var o=f.redSqr(),s=o.redMul(f),c=n.redMul(o),h=d.redSqr().redIAdd(s).redISub(c).redISub(c),u=d.redMul(c.redISub(h)).redISub(i.redMul(s)),b=this.z.redMul(f);return this.curve.jpoint(h,u,b)},c.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},414:(e,t,n)=>{"use strict";var r,i=t,a=n(402),f=n(396),d=n(121).assert;function o(e){"short"===e.type?this.curve=new f.short(e):"edwards"===e.type?this.curve=new f.edwards(e):this.curve=new f.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,d(this.g.validate(),"Invalid curve"),d(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var n=new o(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:n}),n}})}i.PresetCurve=o,s("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:a.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:a.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:a.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:a.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),s("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:a.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:a.sha256,gRed:!1,g:["9"]}),s("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:a.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=n(753)}catch(e){r=void 0}s("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:a.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})},329:(e,t,n)=>{"use strict";var r=n(724),i=n(756),a=n(121),f=n(414),d=n(569),o=a.assert,s=n(218),c=n(655);function h(e){if(!(this instanceof h))return new h(e);"string"==typeof e&&(o(Object.prototype.hasOwnProperty.call(f,e),"Unknown curve "+e),e=f[e]),e instanceof f.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=h,h.prototype.keyPair=function(e){return new s(this,e)},h.prototype.keyFromPrivate=function(e,t){return s.fromPrivate(this,e,t)},h.prototype.keyFromPublic=function(e,t){return s.fromPublic(this,e,t)},h.prototype.genKeyPair=function(e){e||(e={});for(var t=new i({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||d(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),a=this.n.sub(new r(2));;){var f=new r(t.generate(n));if(!(f.cmp(a)>0))return f.iaddn(1),this.keyFromPrivate(f)}},h.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},h.prototype.sign=function(e,t,n,a){"object"==typeof n&&(a=n,n=null),a||(a={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new r(e,16));for(var f=this.n.byteLength(),d=t.getPrivate().toArray("be",f),o=e.toArray("be",f),s=new i({hash:this.hash,entropy:d,nonce:o,pers:a.pers,persEnc:a.persEnc||"utf8"}),h=this.n.sub(new r(1)),u=0;;u++){var b=a.k?a.k(u):new r(s.generate(this.n.byteLength()));if(!((b=this._truncateToN(b,!0)).cmpn(1)<=0||b.cmp(h)>=0)){var l=this.g.mul(b);if(!l.isInfinity()){var p=l.getX(),m=p.umod(this.n);if(0!==m.cmpn(0)){var g=b.invm(this.n).mul(m.mul(t.getPrivate()).iadd(e));if(0!==(g=g.umod(this.n)).cmpn(0)){var y=(l.getY().isOdd()?1:0)|(0!==p.cmp(m)?2:0);return a.canonical&&g.cmp(this.nh)>0&&(g=this.n.sub(g),y^=1),new c({r:m,s:g,recoveryParam:y})}}}}}},h.prototype.verify=function(e,t,n,i){e=this._truncateToN(new r(e,16)),n=this.keyFromPublic(n,i);var a=(t=new c(t,"hex")).r,f=t.s;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;if(f.cmpn(1)<0||f.cmp(this.n)>=0)return!1;var d,o=f.invm(this.n),s=o.mul(e).umod(this.n),h=o.mul(a).umod(this.n);return this.curve._maxwellTrick?!(d=this.g.jmulAdd(s,n.getPublic(),h)).isInfinity()&&d.eqXToP(a):!(d=this.g.mulAdd(s,n.getPublic(),h)).isInfinity()&&0===d.getX().umod(this.n).cmp(a)},h.prototype.recoverPubKey=function(e,t,n,i){o((3&n)===n,"The recovery param is more than two bits"),t=new c(t,i);var a=this.n,f=new r(e),d=t.r,s=t.s,h=1&n,u=n>>1;if(d.cmp(this.curve.p.umod(this.curve.n))>=0&&u)throw new Error("Unable to find sencond key candinate");d=u?this.curve.pointFromX(d.add(this.curve.n),h):this.curve.pointFromX(d,h);var b=t.r.invm(a),l=a.sub(f).mul(b).umod(a),p=s.mul(b).umod(a);return this.g.mulAdd(l,d,p)},h.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new c(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var a;try{a=this.recoverPubKey(e,t,i)}catch(e){continue}if(a.eq(n))return i}throw new Error("Unable to find valid recovery factor")}},218:(e,t,n)=>{"use strict";var r=n(724),i=n(121).assert;function a(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=a,a.fromPublic=function(e,t,n){return t instanceof a?t:new a(e,{pub:t,pubEnc:n})},a.fromPrivate=function(e,t,n){return t instanceof a?t:new a(e,{priv:t,privEnc:n})},a.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},a.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},a.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},a.prototype._importPrivate=function(e,t){this.priv=new r(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},a.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},a.prototype.derive=function(e){return e.validate()||i(e.validate(),"public point not validated"),e.mul(this.priv).getX()},a.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},a.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},a.prototype.inspect=function(){return""}},655:(e,t,n)=>{"use strict";var r=n(724),i=n(121),a=i.assert;function f(e,t){if(e instanceof f)return e;this._importDER(e,t)||(a(e.r&&e.s,"Signature without r or s"),this.r=new r(e.r,16),this.s=new r(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function d(){this.place=0}function o(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;if(0===e[t.place])return!1;for(var i=0,a=0,f=t.place;a>>=0;return!(i<=127)&&(t.place=f,i)}function s(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}e.exports=f,f.prototype._importDER=function(e,t){e=i.toArray(e,t);var n=new d;if(48!==e[n.place++])return!1;var a=o(e,n);if(!1===a)return!1;if(a+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var f=o(e,n);if(!1===f)return!1;if(128&e[n.place])return!1;var s=e.slice(n.place,f+n.place);if(n.place+=f,2!==e[n.place++])return!1;var c=o(e,n);if(!1===c)return!1;if(e.length!==c+n.place)return!1;if(128&e[n.place])return!1;var h=e.slice(n.place,c+n.place);if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}if(0===h[0]){if(!(128&h[1]))return!1;h=h.slice(1)}return this.r=new r(s),this.s=new r(h),this.recoveryParam=null,!0},f.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=s(t),n=s(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];c(r,t.length),(r=r.concat(t)).push(2),c(r,n.length);var a=r.concat(n),f=[48];return c(f,a.length),f=f.concat(a),i.encode(f,e)}},32:(e,t,n)=>{"use strict";var r=n(402),i=n(414),a=n(121),f=a.assert,d=a.parseBytes,o=n(171),s=n(294);function c(e){if(f("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof c))return new c(e);e=i[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=r.sha512}e.exports=c,c.prototype.sign=function(e,t){e=d(e);var n=this.keyFromSecret(t),r=this.hashInt(n.messagePrefix(),e),i=this.g.mul(r),a=this.encodePoint(i),f=this.hashInt(a,n.pubBytes(),e).mul(n.priv()),o=r.add(f).umod(this.curve.n);return this.makeSignature({R:i,S:o,Rencoded:a})},c.prototype.verify=function(e,t,n){if(e=d(e),(t=this.makeSignature(t)).S().gte(t.eddsa.curve.n)||t.S().isNeg())return!1;var r=this.keyFromPublic(n),i=this.hashInt(t.Rencoded(),r.pubBytes(),e),a=this.g.mul(t.S());return t.R().add(r.pub().mul(i)).eq(a)},c.prototype.hashInt=function(){for(var e=this.hash(),t=0;t{"use strict";var r=n(121),i=r.assert,a=r.parseBytes,f=r.cachedProperty;function d(e,t){this.eddsa=e,this._secret=a(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=a(t.pub)}d.fromPublic=function(e,t){return t instanceof d?t:new d(e,{pub:t})},d.fromSecret=function(e,t){return t instanceof d?t:new d(e,{secret:t})},d.prototype.secret=function(){return this._secret},f(d,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),f(d,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),f(d,"privBytes",(function(){var e=this.eddsa,t=this.hash(),n=e.encodingLength-1,r=t.slice(0,e.encodingLength);return r[0]&=248,r[n]&=127,r[n]|=64,r})),f(d,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),f(d,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),f(d,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),d.prototype.sign=function(e){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},d.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},d.prototype.getSecret=function(e){return i(this._secret,"KeyPair is public only"),r.encode(this.secret(),e)},d.prototype.getPublic=function(e){return r.encode(this.pubBytes(),e)},e.exports=d},294:(e,t,n)=>{"use strict";var r=n(724),i=n(121),a=i.assert,f=i.cachedProperty,d=i.parseBytes;function o(e,t){this.eddsa=e,"object"!=typeof t&&(t=d(t)),Array.isArray(t)&&(a(t.length===2*e.encodingLength,"Signature has invalid size"),t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),a(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof r&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}f(o,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),f(o,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),f(o,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),f(o,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),o.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},o.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},e.exports=o},753:e=>{e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},121:(e,t,n)=>{"use strict";var r=t,i=n(724),a=n(637),f=n(138);r.assert=a,r.toArray=f.toArray,r.zero2=f.zero2,r.toHex=f.toHex,r.encode=f.encode,r.getNAF=function(e,t,n){var r,i=new Array(Math.max(e.bitLength(),n)+1);for(r=0;r(a>>1)-1?(a>>1)-o:o,f.isubn(d)):d=0,i[r]=d,f.iushrn(1)}return i},r.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,a=0;e.cmpn(-i)>0||t.cmpn(-a)>0;){var f,d,o=e.andln(3)+i&3,s=t.andln(3)+a&3;3===o&&(o=-1),3===s&&(s=-1),f=1&o?3!=(r=e.andln(7)+i&7)&&5!==r||2!==s?o:-o:0,n[0].push(f),d=1&s?3!=(r=t.andln(7)+a&7)&&5!==r||2!==o?s:-s:0,n[1].push(d),2*i===f+1&&(i=1-i),2*a===d+1&&(a=1-a),e.iushrn(1),t.iushrn(1)}return n},r.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new i(e,"hex","le")}},402:(e,t,n)=>{var r=t;r.utils=n(900),r.common=n(984),r.sha=n(991),r.ripemd=n(262),r.hmac=n(370),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},984:(e,t,n)=>{"use strict";var r=n(900),i=n(637);function a(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=a,a.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var i=0;i>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,a=8;a{"use strict";var r=n(900),i=n(637);function a(e,t,n){if(!(this instanceof a))return new a(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(t,n))}e.exports=a,a.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t{"use strict";var r=n(900),i=n(984),a=r.rotl32,f=r.sum32,d=r.sum32_3,o=r.sum32_4,s=i.BlockHash;function c(){if(!(this instanceof c))return new c;s.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function h(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function u(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function b(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}r.inherits(c,s),t.ripemd160=c,c.blockSize=512,c.outSize=160,c.hmacStrength=192,c.padLength=64,c.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],s=this.h[3],c=this.h[4],y=n,v=r,w=i,M=s,_=c,x=0;x<80;x++){var S=f(a(o(n,h(x,r,i,s),e[l[x]+t],u(x)),m[x]),c);n=c,c=s,s=a(i,10),i=r,r=S,S=f(a(o(y,h(79-x,v,w,M),e[p[x]+t],b(x)),g[x]),_),y=_,_=M,M=a(w,10),w=v,v=S}S=d(this.h[1],i,M),this.h[1]=d(this.h[2],s,_),this.h[2]=d(this.h[3],c,y),this.h[3]=d(this.h[4],n,v),this.h[4]=d(this.h[0],r,w),this.h[0]=S},c.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var l=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],p=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],m=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],g=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},991:(e,t,n)=>{"use strict";t.sha1=n(267),t.sha224=n(496),t.sha256=n(413),t.sha384=n(281),t.sha512=n(952)},267:(e,t,n)=>{"use strict";var r=n(900),i=n(984),a=n(339),f=r.rotl32,d=r.sum32,o=r.sum32_5,s=a.ft_1,c=i.BlockHash,h=[1518500249,1859775393,2400959708,3395469782];function u(){if(!(this instanceof u))return new u;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(u,c),e.exports=u,u.blockSize=512,u.outSize=160,u.hmacStrength=80,u.padLength=64,u.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(900),i=n(413);function a(){if(!(this instanceof a))return new a;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(a,i),e.exports=a,a.blockSize=512,a.outSize=224,a.hmacStrength=192,a.padLength=64,a.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},413:(e,t,n)=>{"use strict";var r=n(900),i=n(984),a=n(339),f=n(637),d=r.sum32,o=r.sum32_4,s=r.sum32_5,c=a.ch32,h=a.maj32,u=a.s0_256,b=a.s1_256,l=a.g0_256,p=a.g1_256,m=i.BlockHash,g=[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];function y(){if(!(this instanceof y))return new y;m.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=g,this.W=new Array(64)}r.inherits(y,m),e.exports=y,y.blockSize=512,y.outSize=256,y.hmacStrength=192,y.padLength=64,y.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(900),i=n(952);function a(){if(!(this instanceof a))return new a;i.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}r.inherits(a,i),e.exports=a,a.blockSize=1024,a.outSize=384,a.hmacStrength=192,a.padLength=128,a.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,12),"big"):r.split32(this.h.slice(0,12),"big")}},952:(e,t,n)=>{"use strict";var r=n(900),i=n(984),a=n(637),f=r.rotr64_hi,d=r.rotr64_lo,o=r.shr64_hi,s=r.shr64_lo,c=r.sum64,h=r.sum64_hi,u=r.sum64_lo,b=r.sum64_4_hi,l=r.sum64_4_lo,p=r.sum64_5_hi,m=r.sum64_5_lo,g=i.BlockHash,y=[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 v(){if(!(this instanceof v))return new v;g.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=y,this.W=new Array(160)}function w(e,t,n,r,i){var a=e&n^~e&i;return a<0&&(a+=4294967296),a}function M(e,t,n,r,i,a){var f=t&r^~t&a;return f<0&&(f+=4294967296),f}function _(e,t,n,r,i){var a=e&n^e&i^n&i;return a<0&&(a+=4294967296),a}function x(e,t,n,r,i,a){var f=t&r^t&a^r&a;return f<0&&(f+=4294967296),f}function S(e,t){var n=f(e,t,28)^f(t,e,2)^f(t,e,7);return n<0&&(n+=4294967296),n}function A(e,t){var n=d(e,t,28)^d(t,e,2)^d(t,e,7);return n<0&&(n+=4294967296),n}function k(e,t){var n=d(e,t,14)^d(e,t,18)^d(t,e,9);return n<0&&(n+=4294967296),n}function I(e,t){var n=f(e,t,1)^f(e,t,8)^o(e,t,7);return n<0&&(n+=4294967296),n}function z(e,t){var n=d(e,t,1)^d(e,t,8)^s(e,t,7);return n<0&&(n+=4294967296),n}function q(e,t){var n=d(e,t,19)^d(t,e,29)^s(e,t,6);return n<0&&(n+=4294967296),n}r.inherits(v,g),e.exports=v,v.blockSize=1024,v.outSize=512,v.hmacStrength=192,v.padLength=128,v.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(900).rotr32;function i(e,t,n){return e&t^~e&n}function a(e,t,n){return e&t^e&n^t&n}function f(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?i(t,n,r):1===e||3===e?f(t,n,r):2===e?a(t,n,r):void 0},t.ch32=i,t.maj32=a,t.p32=f,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},900:(e,t,n)=>{"use strict";var r=n(637),i=n(192);function a(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function f(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function d(e){return 1===e.length?"0"+e:e}function o(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i>6|192,n[r++]=63&f|128):a(e,i)?(f=65536+((1023&f)<<10)+(1023&e.charCodeAt(++i)),n[r++]=f>>18|240,n[r++]=f>>12&63|128,n[r++]=f>>6&63|128,n[r++]=63&f|128):(n[r++]=f>>12|224,n[r++]=f>>6&63|128,n[r++]=63&f|128)}else for(i=0;i>>0}return f},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r>>24,n[i+1]=a>>>16&255,n[i+2]=a>>>8&255,n[i+3]=255&a):(n[i+3]=a>>>24,n[i+2]=a>>>16&255,n[i+1]=a>>>8&255,n[i]=255&a)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},t.sum64=function(e,t,n,r){var i=e[t],a=r+e[t+1]>>>0,f=(a>>0,e[t+1]=a},t.sum64_hi=function(e,t,n,r){return(t+r>>>0>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,i,a,f,d){var o=0,s=t;return o+=(s=s+r>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,n,r,i,a,f,d){return t+r+a+d>>>0},t.sum64_5_hi=function(e,t,n,r,i,a,f,d,o,s){var c=0,h=t;return c+=(h=h+r>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,n,r,i,a,f,d,o,s){return t+r+a+d+s>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},756:(e,t,n)=>{"use strict";var r=n(402),i=n(138),a=n(637);function f(e){if(!(this instanceof f))return new f(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=i.toArray(e.entropy,e.entropyEnc||"hex"),n=i.toArray(e.nonce,e.nonceEnc||"hex"),r=i.toArray(e.pers,e.persEnc||"hex");a(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}e.exports=f,f.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},f.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=i.toArray(n,r||"hex"),this._update(n));for(var a=[];a.length{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},637:e=>{function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},138:(e,t)=>{"use strict";var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n>8,f=255&i;a?n.push(a,f):n.push(f)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}},623:(e,t,n)=>{"use strict";e.exports=n.p+"21cfd03815fda4edba72.wasm"},654:()=>{},780:()=>{},662:e=>{"use strict";e.exports={rE:"6.5.7"}}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var a=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.m=e,n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;n.g.importScripts&&(e=n.g.location+"");var t=n.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var i=r.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=r[i--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})(),n.b=document.baseURI||self.location.href,(()=>{"use strict";class e{#e=new Uint8Array(1);constructor(e,t){if("public"!==e.toLowerCase()&&"private"!==e.toLowerCase())throw new TypeError("Required property 'type' may only take 'public' or 'private' as values");if(this.keyType=e,!t||!t.fromByteArray&&!t.fromHexString)throw new TypeError("Missing required property 'fromByteArray' or 'fromHexString' in parameter 'details'");t.fromByteArray&&t.fromHexString&&console.warn("Both 'fromByteArray' and 'fromHexString' present. Value of 'fromHexString' will be used."),t.fromByteArray?this.#e=t.fromByteArray:t.fromHexString&&(this.#e=Uint8Array.from(t.fromHexString.match(/.{1,2}/g).map((e=>parseInt(e,16)))))}get asHexString(){return this.#e.reduce(((e,t)=>e+t.toString(16).padStart(2,"0")),"")}get asByteArray(){return this.#e}}function t(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function r(e,...t){if(!((n=e)instanceof Uint8Array||null!=n&&"object"==typeof n&&"Uint8Array"===n.constructor.name))throw new Error("Uint8Array expected");var n;if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function i(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");t(e.outputLen),t(e.blockLen)}function a(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}const f=e=>new DataView(e.buffer,e.byteOffset,e.byteLength);new Uint8Array(new Uint32Array([287454020]).buffer)[0];const d=async()=>{};async function o(e,t,n){let r=Date.now();for(let i=0;i=0&&ee().update(s(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}class b extends c{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,i(e);const n=s(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,a=new Uint8Array(r);a.set(n.length>r?e.create().update(n).digest():n);for(let e=0;enew b(e,t).update(n).digest();l.create=(e,t)=>new b(e,t);class p extends c{constructor(e,t,n,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=f(this.buffer)}update(e){a(this);const{view:t,buffer:n,blockLen:r}=this,i=(e=s(e)).length;for(let a=0;ai-o&&(this.process(n,0),o=0);for(let e=o;e>i&a),d=Number(n&a),o=r?4:0,s=r?0:4;e.setUint32(t+o,f,r),e.setUint32(t+s,d,r)}(n,i-8,BigInt(8*this.length),d),this.process(n,0);const s=f(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const h=c/4,u=this.get();if(h>u.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e>g&m)}:{h:0|Number(e>>g&m),l:0|Number(e&m)}}const v=function(e,t=!1){let n=new Uint32Array(e.length),r=new Uint32Array(e.length);for(let i=0;ie>>>n,M=(e,t,n)=>e<<32-n|t>>>n,_=(e,t,n)=>e>>>n|t<<32-n,x=(e,t,n)=>e<<32-n|t>>>n,S=(e,t,n)=>e<<64-n|t>>>n-32,A=(e,t,n)=>e>>>n-32|t<<64-n,k=function(e,t,n,r){const i=(t>>>0)+(r>>>0);return{h:e+n+(i/2**32|0)|0,l:0|i}},I=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),z=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,q=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),R=(e,t,n,r,i)=>t+n+r+i+(e/2**32|0)|0,E=(e,t,n,r,i,a)=>t+n+r+i+a+(e/2**32|0)|0,P=(e,t,n,r,i)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(i>>>0),[L,B]=(()=>v(["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)))))(),j=new Uint32Array(80),N=new Uint32Array(80);class T extends p{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:n,Bl:r,Ch:i,Cl:a,Dh:f,Dl:d,Eh:o,El:s,Fh:c,Fl:h,Gh:u,Gl:b,Hh:l,Hl:p}=this;return[e,t,n,r,i,a,f,d,o,s,c,h,u,b,l,p]}set(e,t,n,r,i,a,f,d,o,s,c,h,u,b,l,p){this.Ah=0|e,this.Al=0|t,this.Bh=0|n,this.Bl=0|r,this.Ch=0|i,this.Cl=0|a,this.Dh=0|f,this.Dl=0|d,this.Eh=0|o,this.El=0|s,this.Fh=0|c,this.Fl=0|h,this.Gh=0|u,this.Gl=0|b,this.Hh=0|l,this.Hl=0|p}process(e,t){for(let n=0;n<16;n++,t+=4)j[n]=e.getUint32(t),N[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|j[e-15],n=0|N[e-15],r=_(t,n,1)^_(t,n,8)^w(t,n,7),i=x(t,n,1)^x(t,n,8)^M(t,n,7),a=0|j[e-2],f=0|N[e-2],d=_(a,f,19)^S(a,f,61)^w(a,f,6),o=x(a,f,19)^A(a,f,61)^M(a,f,6),s=q(i,o,N[e-7],N[e-16]),c=R(s,r,d,j[e-7],j[e-16]);j[e]=0|c,N[e]=0|s}let{Ah:n,Al:r,Bh:i,Bl:a,Ch:f,Cl:d,Dh:o,Dl:s,Eh:c,El:h,Fh:u,Fl:b,Gh:l,Gl:p,Hh:m,Hl:g}=this;for(let e=0;e<80;e++){const t=_(c,h,14)^_(c,h,18)^S(c,h,41),y=x(c,h,14)^x(c,h,18)^A(c,h,41),v=c&u^~c&l,w=P(g,y,h&b^~h&p,B[e],N[e]),M=E(w,m,t,v,L[e],j[e]),q=0|w,R=_(n,r,28)^S(n,r,34)^S(n,r,39),T=x(n,r,28)^A(n,r,34)^A(n,r,39),H=n&i^n&f^i&f,O=r&a^r&d^a&d;m=0|l,g=0|p,l=0|u,p=0|b,u=0|c,b=0|h,({h:c,l:h}=k(0|o,0|s,0|M,0|q)),o=0|f,s=0|d,f=0|i,d=0|a,i=0|n,a=0|r;const U=I(q,T,O);n=z(U,M,R,H),r=0|U}({h:n,l:r}=k(0|this.Ah,0|this.Al,0|n,0|r)),({h:i,l:a}=k(0|this.Bh,0|this.Bl,0|i,0|a)),({h:f,l:d}=k(0|this.Ch,0|this.Cl,0|f,0|d)),({h:o,l:s}=k(0|this.Dh,0|this.Dl,0|o,0|s)),({h:c,l:h}=k(0|this.Eh,0|this.El,0|c,0|h)),({h:u,l:b}=k(0|this.Fh,0|this.Fl,0|u,0|b)),({h:l,l:p}=k(0|this.Gh,0|this.Gl,0|l,0|p)),({h:m,l:g}=k(0|this.Hh,0|this.Hl,0|m,0|g)),this.set(n,r,i,a,f,d,o,s,c,h,u,b,l,p,m,g)}roundClean(){j.fill(0),N.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const H=u((()=>new T));function O(e){if("string"!=typeof e)throw new TypeError("Invalid mnemonic type: "+typeof e);return e.normalize("NFKD")}function U(e,n=""){return async function(e,n,r){const{c:a,dkLen:d,asyncTick:c,DK:u,PRF:b,PRFSalt:p}=function(e,n,r,a){i(e);const f=function(e,t){if(void 0!==t&&"[object Object]"!==h.call(t))throw new Error("Options should be object or undefined");return Object.assign({dkLen:32,asyncTick:10},t)}(0,a),{c:d,dkLen:o,asyncTick:c}=f;if(t(d),t(o),t(c),d<1)throw new Error("PBKDF2: iterations (c) should be >= 1");const u=s(n),b=s(r),p=new Uint8Array(o),m=l.create(e,u),g=m._cloneInto().update(b);return{c:d,dkLen:o,asyncTick:c,DK:p,PRF:m,PRFSalt:g}}(e,n,r,{c:2048,dkLen:64});let m;const g=new Uint8Array(4),y=f(g),v=new Uint8Array(b.outputLen);for(let e=1,t=0;t{b._cloneInto(m).update(v).digestInto(v);for(let e=0;eO(`mnemonic${e}`))(n))}"abandon\nability\nable\nabout\nabove\nabsent\nabsorb\nabstract\nabsurd\nabuse\naccess\naccident\naccount\naccuse\nachieve\nacid\nacoustic\nacquire\nacross\nact\naction\nactor\nactress\nactual\nadapt\nadd\naddict\naddress\nadjust\nadmit\nadult\nadvance\nadvice\naerobic\naffair\nafford\nafraid\nagain\nage\nagent\nagree\nahead\naim\nair\nairport\naisle\nalarm\nalbum\nalcohol\nalert\nalien\nall\nalley\nallow\nalmost\nalone\nalpha\nalready\nalso\nalter\nalways\namateur\namazing\namong\namount\namused\nanalyst\nanchor\nancient\nanger\nangle\nangry\nanimal\nankle\nannounce\nannual\nanother\nanswer\nantenna\nantique\nanxiety\nany\napart\napology\nappear\napple\napprove\napril\narch\narctic\narea\narena\nargue\narm\narmed\narmor\narmy\naround\narrange\narrest\narrive\narrow\nart\nartefact\nartist\nartwork\nask\naspect\nassault\nasset\nassist\nassume\nasthma\nathlete\natom\nattack\nattend\nattitude\nattract\nauction\naudit\naugust\naunt\nauthor\nauto\nautumn\naverage\navocado\navoid\nawake\naware\naway\nawesome\nawful\nawkward\naxis\nbaby\nbachelor\nbacon\nbadge\nbag\nbalance\nbalcony\nball\nbamboo\nbanana\nbanner\nbar\nbarely\nbargain\nbarrel\nbase\nbasic\nbasket\nbattle\nbeach\nbean\nbeauty\nbecause\nbecome\nbeef\nbefore\nbegin\nbehave\nbehind\nbelieve\nbelow\nbelt\nbench\nbenefit\nbest\nbetray\nbetter\nbetween\nbeyond\nbicycle\nbid\nbike\nbind\nbiology\nbird\nbirth\nbitter\nblack\nblade\nblame\nblanket\nblast\nbleak\nbless\nblind\nblood\nblossom\nblouse\nblue\nblur\nblush\nboard\nboat\nbody\nboil\nbomb\nbone\nbonus\nbook\nboost\nborder\nboring\nborrow\nboss\nbottom\nbounce\nbox\nboy\nbracket\nbrain\nbrand\nbrass\nbrave\nbread\nbreeze\nbrick\nbridge\nbrief\nbright\nbring\nbrisk\nbroccoli\nbroken\nbronze\nbroom\nbrother\nbrown\nbrush\nbubble\nbuddy\nbudget\nbuffalo\nbuild\nbulb\nbulk\nbullet\nbundle\nbunker\nburden\nburger\nburst\nbus\nbusiness\nbusy\nbutter\nbuyer\nbuzz\ncabbage\ncabin\ncable\ncactus\ncage\ncake\ncall\ncalm\ncamera\ncamp\ncan\ncanal\ncancel\ncandy\ncannon\ncanoe\ncanvas\ncanyon\ncapable\ncapital\ncaptain\ncar\ncarbon\ncard\ncargo\ncarpet\ncarry\ncart\ncase\ncash\ncasino\ncastle\ncasual\ncat\ncatalog\ncatch\ncategory\ncattle\ncaught\ncause\ncaution\ncave\nceiling\ncelery\ncement\ncensus\ncentury\ncereal\ncertain\nchair\nchalk\nchampion\nchange\nchaos\nchapter\ncharge\nchase\nchat\ncheap\ncheck\ncheese\nchef\ncherry\nchest\nchicken\nchief\nchild\nchimney\nchoice\nchoose\nchronic\nchuckle\nchunk\nchurn\ncigar\ncinnamon\ncircle\ncitizen\ncity\ncivil\nclaim\nclap\nclarify\nclaw\nclay\nclean\nclerk\nclever\nclick\nclient\ncliff\nclimb\nclinic\nclip\nclock\nclog\nclose\ncloth\ncloud\nclown\nclub\nclump\ncluster\nclutch\ncoach\ncoast\ncoconut\ncode\ncoffee\ncoil\ncoin\ncollect\ncolor\ncolumn\ncombine\ncome\ncomfort\ncomic\ncommon\ncompany\nconcert\nconduct\nconfirm\ncongress\nconnect\nconsider\ncontrol\nconvince\ncook\ncool\ncopper\ncopy\ncoral\ncore\ncorn\ncorrect\ncost\ncotton\ncouch\ncountry\ncouple\ncourse\ncousin\ncover\ncoyote\ncrack\ncradle\ncraft\ncram\ncrane\ncrash\ncrater\ncrawl\ncrazy\ncream\ncredit\ncreek\ncrew\ncricket\ncrime\ncrisp\ncritic\ncrop\ncross\ncrouch\ncrowd\ncrucial\ncruel\ncruise\ncrumble\ncrunch\ncrush\ncry\ncrystal\ncube\nculture\ncup\ncupboard\ncurious\ncurrent\ncurtain\ncurve\ncushion\ncustom\ncute\ncycle\ndad\ndamage\ndamp\ndance\ndanger\ndaring\ndash\ndaughter\ndawn\nday\ndeal\ndebate\ndebris\ndecade\ndecember\ndecide\ndecline\ndecorate\ndecrease\ndeer\ndefense\ndefine\ndefy\ndegree\ndelay\ndeliver\ndemand\ndemise\ndenial\ndentist\ndeny\ndepart\ndepend\ndeposit\ndepth\ndeputy\nderive\ndescribe\ndesert\ndesign\ndesk\ndespair\ndestroy\ndetail\ndetect\ndevelop\ndevice\ndevote\ndiagram\ndial\ndiamond\ndiary\ndice\ndiesel\ndiet\ndiffer\ndigital\ndignity\ndilemma\ndinner\ndinosaur\ndirect\ndirt\ndisagree\ndiscover\ndisease\ndish\ndismiss\ndisorder\ndisplay\ndistance\ndivert\ndivide\ndivorce\ndizzy\ndoctor\ndocument\ndog\ndoll\ndolphin\ndomain\ndonate\ndonkey\ndonor\ndoor\ndose\ndouble\ndove\ndraft\ndragon\ndrama\ndrastic\ndraw\ndream\ndress\ndrift\ndrill\ndrink\ndrip\ndrive\ndrop\ndrum\ndry\nduck\ndumb\ndune\nduring\ndust\ndutch\nduty\ndwarf\ndynamic\neager\neagle\nearly\nearn\nearth\neasily\neast\neasy\necho\necology\neconomy\nedge\nedit\neducate\neffort\negg\neight\neither\nelbow\nelder\nelectric\nelegant\nelement\nelephant\nelevator\nelite\nelse\nembark\nembody\nembrace\nemerge\nemotion\nemploy\nempower\nempty\nenable\nenact\nend\nendless\nendorse\nenemy\nenergy\nenforce\nengage\nengine\nenhance\nenjoy\nenlist\nenough\nenrich\nenroll\nensure\nenter\nentire\nentry\nenvelope\nepisode\nequal\nequip\nera\nerase\nerode\nerosion\nerror\nerupt\nescape\nessay\nessence\nestate\neternal\nethics\nevidence\nevil\nevoke\nevolve\nexact\nexample\nexcess\nexchange\nexcite\nexclude\nexcuse\nexecute\nexercise\nexhaust\nexhibit\nexile\nexist\nexit\nexotic\nexpand\nexpect\nexpire\nexplain\nexpose\nexpress\nextend\nextra\neye\neyebrow\nfabric\nface\nfaculty\nfade\nfaint\nfaith\nfall\nfalse\nfame\nfamily\nfamous\nfan\nfancy\nfantasy\nfarm\nfashion\nfat\nfatal\nfather\nfatigue\nfault\nfavorite\nfeature\nfebruary\nfederal\nfee\nfeed\nfeel\nfemale\nfence\nfestival\nfetch\nfever\nfew\nfiber\nfiction\nfield\nfigure\nfile\nfilm\nfilter\nfinal\nfind\nfine\nfinger\nfinish\nfire\nfirm\nfirst\nfiscal\nfish\nfit\nfitness\nfix\nflag\nflame\nflash\nflat\nflavor\nflee\nflight\nflip\nfloat\nflock\nfloor\nflower\nfluid\nflush\nfly\nfoam\nfocus\nfog\nfoil\nfold\nfollow\nfood\nfoot\nforce\nforest\nforget\nfork\nfortune\nforum\nforward\nfossil\nfoster\nfound\nfox\nfragile\nframe\nfrequent\nfresh\nfriend\nfringe\nfrog\nfront\nfrost\nfrown\nfrozen\nfruit\nfuel\nfun\nfunny\nfurnace\nfury\nfuture\ngadget\ngain\ngalaxy\ngallery\ngame\ngap\ngarage\ngarbage\ngarden\ngarlic\ngarment\ngas\ngasp\ngate\ngather\ngauge\ngaze\ngeneral\ngenius\ngenre\ngentle\ngenuine\ngesture\nghost\ngiant\ngift\ngiggle\nginger\ngiraffe\ngirl\ngive\nglad\nglance\nglare\nglass\nglide\nglimpse\nglobe\ngloom\nglory\nglove\nglow\nglue\ngoat\ngoddess\ngold\ngood\ngoose\ngorilla\ngospel\ngossip\ngovern\ngown\ngrab\ngrace\ngrain\ngrant\ngrape\ngrass\ngravity\ngreat\ngreen\ngrid\ngrief\ngrit\ngrocery\ngroup\ngrow\ngrunt\nguard\nguess\nguide\nguilt\nguitar\ngun\ngym\nhabit\nhair\nhalf\nhammer\nhamster\nhand\nhappy\nharbor\nhard\nharsh\nharvest\nhat\nhave\nhawk\nhazard\nhead\nhealth\nheart\nheavy\nhedgehog\nheight\nhello\nhelmet\nhelp\nhen\nhero\nhidden\nhigh\nhill\nhint\nhip\nhire\nhistory\nhobby\nhockey\nhold\nhole\nholiday\nhollow\nhome\nhoney\nhood\nhope\nhorn\nhorror\nhorse\nhospital\nhost\nhotel\nhour\nhover\nhub\nhuge\nhuman\nhumble\nhumor\nhundred\nhungry\nhunt\nhurdle\nhurry\nhurt\nhusband\nhybrid\nice\nicon\nidea\nidentify\nidle\nignore\nill\nillegal\nillness\nimage\nimitate\nimmense\nimmune\nimpact\nimpose\nimprove\nimpulse\ninch\ninclude\nincome\nincrease\nindex\nindicate\nindoor\nindustry\ninfant\ninflict\ninform\ninhale\ninherit\ninitial\ninject\ninjury\ninmate\ninner\ninnocent\ninput\ninquiry\ninsane\ninsect\ninside\ninspire\ninstall\nintact\ninterest\ninto\ninvest\ninvite\ninvolve\niron\nisland\nisolate\nissue\nitem\nivory\njacket\njaguar\njar\njazz\njealous\njeans\njelly\njewel\njob\njoin\njoke\njourney\njoy\njudge\njuice\njump\njungle\njunior\njunk\njust\nkangaroo\nkeen\nkeep\nketchup\nkey\nkick\nkid\nkidney\nkind\nkingdom\nkiss\nkit\nkitchen\nkite\nkitten\nkiwi\nknee\nknife\nknock\nknow\nlab\nlabel\nlabor\nladder\nlady\nlake\nlamp\nlanguage\nlaptop\nlarge\nlater\nlatin\nlaugh\nlaundry\nlava\nlaw\nlawn\nlawsuit\nlayer\nlazy\nleader\nleaf\nlearn\nleave\nlecture\nleft\nleg\nlegal\nlegend\nleisure\nlemon\nlend\nlength\nlens\nleopard\nlesson\nletter\nlevel\nliar\nliberty\nlibrary\nlicense\nlife\nlift\nlight\nlike\nlimb\nlimit\nlink\nlion\nliquid\nlist\nlittle\nlive\nlizard\nload\nloan\nlobster\nlocal\nlock\nlogic\nlonely\nlong\nloop\nlottery\nloud\nlounge\nlove\nloyal\nlucky\nluggage\nlumber\nlunar\nlunch\nluxury\nlyrics\nmachine\nmad\nmagic\nmagnet\nmaid\nmail\nmain\nmajor\nmake\nmammal\nman\nmanage\nmandate\nmango\nmansion\nmanual\nmaple\nmarble\nmarch\nmargin\nmarine\nmarket\nmarriage\nmask\nmass\nmaster\nmatch\nmaterial\nmath\nmatrix\nmatter\nmaximum\nmaze\nmeadow\nmean\nmeasure\nmeat\nmechanic\nmedal\nmedia\nmelody\nmelt\nmember\nmemory\nmention\nmenu\nmercy\nmerge\nmerit\nmerry\nmesh\nmessage\nmetal\nmethod\nmiddle\nmidnight\nmilk\nmillion\nmimic\nmind\nminimum\nminor\nminute\nmiracle\nmirror\nmisery\nmiss\nmistake\nmix\nmixed\nmixture\nmobile\nmodel\nmodify\nmom\nmoment\nmonitor\nmonkey\nmonster\nmonth\nmoon\nmoral\nmore\nmorning\nmosquito\nmother\nmotion\nmotor\nmountain\nmouse\nmove\nmovie\nmuch\nmuffin\nmule\nmultiply\nmuscle\nmuseum\nmushroom\nmusic\nmust\nmutual\nmyself\nmystery\nmyth\nnaive\nname\nnapkin\nnarrow\nnasty\nnation\nnature\nnear\nneck\nneed\nnegative\nneglect\nneither\nnephew\nnerve\nnest\nnet\nnetwork\nneutral\nnever\nnews\nnext\nnice\nnight\nnoble\nnoise\nnominee\nnoodle\nnormal\nnorth\nnose\nnotable\nnote\nnothing\nnotice\nnovel\nnow\nnuclear\nnumber\nnurse\nnut\noak\nobey\nobject\noblige\nobscure\nobserve\nobtain\nobvious\noccur\nocean\noctober\nodor\noff\noffer\noffice\noften\noil\nokay\nold\nolive\nolympic\nomit\nonce\none\nonion\nonline\nonly\nopen\nopera\nopinion\noppose\noption\norange\norbit\norchard\norder\nordinary\norgan\norient\noriginal\norphan\nostrich\nother\noutdoor\nouter\noutput\noutside\noval\noven\nover\nown\nowner\noxygen\noyster\nozone\npact\npaddle\npage\npair\npalace\npalm\npanda\npanel\npanic\npanther\npaper\nparade\nparent\npark\nparrot\nparty\npass\npatch\npath\npatient\npatrol\npattern\npause\npave\npayment\npeace\npeanut\npear\npeasant\npelican\npen\npenalty\npencil\npeople\npepper\nperfect\npermit\nperson\npet\nphone\nphoto\nphrase\nphysical\npiano\npicnic\npicture\npiece\npig\npigeon\npill\npilot\npink\npioneer\npipe\npistol\npitch\npizza\nplace\nplanet\nplastic\nplate\nplay\nplease\npledge\npluck\nplug\nplunge\npoem\npoet\npoint\npolar\npole\npolice\npond\npony\npool\npopular\nportion\nposition\npossible\npost\npotato\npottery\npoverty\npowder\npower\npractice\npraise\npredict\nprefer\nprepare\npresent\npretty\nprevent\nprice\npride\nprimary\nprint\npriority\nprison\nprivate\nprize\nproblem\nprocess\nproduce\nprofit\nprogram\nproject\npromote\nproof\nproperty\nprosper\nprotect\nproud\nprovide\npublic\npudding\npull\npulp\npulse\npumpkin\npunch\npupil\npuppy\npurchase\npurity\npurpose\npurse\npush\nput\npuzzle\npyramid\nquality\nquantum\nquarter\nquestion\nquick\nquit\nquiz\nquote\nrabbit\nraccoon\nrace\nrack\nradar\nradio\nrail\nrain\nraise\nrally\nramp\nranch\nrandom\nrange\nrapid\nrare\nrate\nrather\nraven\nraw\nrazor\nready\nreal\nreason\nrebel\nrebuild\nrecall\nreceive\nrecipe\nrecord\nrecycle\nreduce\nreflect\nreform\nrefuse\nregion\nregret\nregular\nreject\nrelax\nrelease\nrelief\nrely\nremain\nremember\nremind\nremove\nrender\nrenew\nrent\nreopen\nrepair\nrepeat\nreplace\nreport\nrequire\nrescue\nresemble\nresist\nresource\nresponse\nresult\nretire\nretreat\nreturn\nreunion\nreveal\nreview\nreward\nrhythm\nrib\nribbon\nrice\nrich\nride\nridge\nrifle\nright\nrigid\nring\nriot\nripple\nrisk\nritual\nrival\nriver\nroad\nroast\nrobot\nrobust\nrocket\nromance\nroof\nrookie\nroom\nrose\nrotate\nrough\nround\nroute\nroyal\nrubber\nrude\nrug\nrule\nrun\nrunway\nrural\nsad\nsaddle\nsadness\nsafe\nsail\nsalad\nsalmon\nsalon\nsalt\nsalute\nsame\nsample\nsand\nsatisfy\nsatoshi\nsauce\nsausage\nsave\nsay\nscale\nscan\nscare\nscatter\nscene\nscheme\nschool\nscience\nscissors\nscorpion\nscout\nscrap\nscreen\nscript\nscrub\nsea\nsearch\nseason\nseat\nsecond\nsecret\nsection\nsecurity\nseed\nseek\nsegment\nselect\nsell\nseminar\nsenior\nsense\nsentence\nseries\nservice\nsession\nsettle\nsetup\nseven\nshadow\nshaft\nshallow\nshare\nshed\nshell\nsheriff\nshield\nshift\nshine\nship\nshiver\nshock\nshoe\nshoot\nshop\nshort\nshoulder\nshove\nshrimp\nshrug\nshuffle\nshy\nsibling\nsick\nside\nsiege\nsight\nsign\nsilent\nsilk\nsilly\nsilver\nsimilar\nsimple\nsince\nsing\nsiren\nsister\nsituate\nsix\nsize\nskate\nsketch\nski\nskill\nskin\nskirt\nskull\nslab\nslam\nsleep\nslender\nslice\nslide\nslight\nslim\nslogan\nslot\nslow\nslush\nsmall\nsmart\nsmile\nsmoke\nsmooth\nsnack\nsnake\nsnap\nsniff\nsnow\nsoap\nsoccer\nsocial\nsock\nsoda\nsoft\nsolar\nsoldier\nsolid\nsolution\nsolve\nsomeone\nsong\nsoon\nsorry\nsort\nsoul\nsound\nsoup\nsource\nsouth\nspace\nspare\nspatial\nspawn\nspeak\nspecial\nspeed\nspell\nspend\nsphere\nspice\nspider\nspike\nspin\nspirit\nsplit\nspoil\nsponsor\nspoon\nsport\nspot\nspray\nspread\nspring\nspy\nsquare\nsqueeze\nsquirrel\nstable\nstadium\nstaff\nstage\nstairs\nstamp\nstand\nstart\nstate\nstay\nsteak\nsteel\nstem\nstep\nstereo\nstick\nstill\nsting\nstock\nstomach\nstone\nstool\nstory\nstove\nstrategy\nstreet\nstrike\nstrong\nstruggle\nstudent\nstuff\nstumble\nstyle\nsubject\nsubmit\nsubway\nsuccess\nsuch\nsudden\nsuffer\nsugar\nsuggest\nsuit\nsummer\nsun\nsunny\nsunset\nsuper\nsupply\nsupreme\nsure\nsurface\nsurge\nsurprise\nsurround\nsurvey\nsuspect\nsustain\nswallow\nswamp\nswap\nswarm\nswear\nsweet\nswift\nswim\nswing\nswitch\nsword\nsymbol\nsymptom\nsyrup\nsystem\ntable\ntackle\ntag\ntail\ntalent\ntalk\ntank\ntape\ntarget\ntask\ntaste\ntattoo\ntaxi\nteach\nteam\ntell\nten\ntenant\ntennis\ntent\nterm\ntest\ntext\nthank\nthat\ntheme\nthen\ntheory\nthere\nthey\nthing\nthis\nthought\nthree\nthrive\nthrow\nthumb\nthunder\nticket\ntide\ntiger\ntilt\ntimber\ntime\ntiny\ntip\ntired\ntissue\ntitle\ntoast\ntobacco\ntoday\ntoddler\ntoe\ntogether\ntoilet\ntoken\ntomato\ntomorrow\ntone\ntongue\ntonight\ntool\ntooth\ntop\ntopic\ntopple\ntorch\ntornado\ntortoise\ntoss\ntotal\ntourist\ntoward\ntower\ntown\ntoy\ntrack\ntrade\ntraffic\ntragic\ntrain\ntransfer\ntrap\ntrash\ntravel\ntray\ntreat\ntree\ntrend\ntrial\ntribe\ntrick\ntrigger\ntrim\ntrip\ntrophy\ntrouble\ntruck\ntrue\ntruly\ntrumpet\ntrust\ntruth\ntry\ntube\ntuition\ntumble\ntuna\ntunnel\nturkey\nturn\nturtle\ntwelve\ntwenty\ntwice\ntwin\ntwist\ntwo\ntype\ntypical\nugly\numbrella\nunable\nunaware\nuncle\nuncover\nunder\nundo\nunfair\nunfold\nunhappy\nuniform\nunique\nunit\nuniverse\nunknown\nunlock\nuntil\nunusual\nunveil\nupdate\nupgrade\nuphold\nupon\nupper\nupset\nurban\nurge\nusage\nuse\nused\nuseful\nuseless\nusual\nutility\nvacant\nvacuum\nvague\nvalid\nvalley\nvalve\nvan\nvanish\nvapor\nvarious\nvast\nvault\nvehicle\nvelvet\nvendor\nventure\nvenue\nverb\nverify\nversion\nvery\nvessel\nveteran\nviable\nvibrant\nvicious\nvictory\nvideo\nview\nvillage\nvintage\nviolin\nvirtual\nvirus\nvisa\nvisit\nvisual\nvital\nvivid\nvocal\nvoice\nvoid\nvolcano\nvolume\nvote\nvoyage\nwage\nwagon\nwait\nwalk\nwall\nwalnut\nwant\nwarfare\nwarm\nwarrior\nwash\nwasp\nwaste\nwater\nwave\nway\nwealth\nweapon\nwear\nweasel\nweather\nweb\nwedding\nweekend\nweird\nwelcome\nwest\nwet\nwhale\nwhat\nwheat\nwheel\nwhen\nwhere\nwhip\nwhisper\nwide\nwidth\nwife\nwild\nwill\nwin\nwindow\nwine\nwing\nwink\nwinner\nwinter\nwire\nwisdom\nwise\nwish\nwitness\nwolf\nwoman\nwonder\nwood\nwool\nword\nwork\nworld\nworry\nworth\nwrap\nwreck\nwrestle\nwrist\nwrite\nwrong\nyard\nyear\nyellow\nyou\nyoung\nyouth\nzebra\nzero\nzone\nzoo".split("\n");var F=n(695);var C=n(103);(0,C.Ay)();const D=new TextDecoder,K=new TextEncoder,Z=1024;function J(t,n){if(!(t instanceof e))throw new TypeError("publicKey must be an instance of Key");if(!(n instanceof Uint8Array))throw new TypeError("plaintext must be an instance of Uint8Array");return C.w(t.asByteArray,n)}function W(t,n){if(!(t instanceof e))throw new TypeError("privateKey must be an instance of Key");if(!(n instanceof Uint8Array))throw new TypeError("ciphertext must be an instance of Uint8Array");return C.Yc(t.asByteArray,n)}let V;Uint8Array.prototype.asHexString?console.warn("asHexString method already exists on Uint8Array.prototype"):Uint8Array.prototype.asHexString=function(){return this.reduce(((e,t)=>e+t.toString(16).padStart(2,"0")),"")};const X=document.querySelector("#fileInput");X.addEventListener("change",(function(t){const n=t.target.files[0];if(n){const t=new FileReader;t.onload=function(t){const n=t.target.result,r=new Uint8Array(n);if(!V)return void console.error("keypair not ready, skipping file enc/dec");console.log("File to be encrypted:",X.files[0].name);const i=function(t,n,r){if(!(t instanceof e))throw new TypeError("publicKey must be an instance of Key");if(!(r instanceof Uint8Array))throw new TypeError("data must be an instance of Uint8Array");n||(n="Unknown file");const i=new Uint8Array(Z+r.length),a=K.encode(n);var f;return i.set([255&(f=a.length)?255&f:0,f>>8&255?f>>8&255:0,f>>16&255?f>>16&255:0,f>>24&255?f>>24&255:0]),i.set(a,4),i.set(r,Z),J(t,i)}(V.pkey,X.files[0].name,r);console.log("Ciphertext bytes:",i);{const e=i.length/4,t=Math.floor(Math.sqrt(e)),n=Math.ceil(e/t),r=document.getElementById("bitmapCanvas"),a=r.getContext("2d");r.width=t,r.height=n;const f=a.createImageData(t,n);for(let e=0;e{console.log("start");const{publicKey:t,privateKey:n}=await async function(){const t=(await U("digital radio analyst fine casino have mass blood potato hat web capital prefer debate fee differ spray cloud")).toString("hex"),n=new F.ec("secp256k1").genKeyPair({entropy:t.slice(0,32)});return{publicKey:new e("public",{fromHexString:n.getPublic("hex")}),privateKey:new e("private",{fromHexString:n.getPrivate("hex")})}}();V={pkey:t,skey:n};const r=function(t,n){if(!(t instanceof e))throw new TypeError("publicKey must be an instance of Key");return J(t,K.encode(n)).asHexString()}(t,"message");console.log("encrypted string is",r),console.log("decrypted string is",function(t,n){if(!(t instanceof e))throw new TypeError("privateKey must be an instance of Key");if("string"!=typeof n)throw new TypeError("string must be of type string");/^[0-9a-fA-F]+$/.test(n)||console.warn("string does not seem to be a valid hexadecimal string");const r=W(t,Uint8Array.from(n.match(/.{1,2}/g).map((e=>parseInt(e,16)))));return D.decode(r)}(n,r)),console.log("end")}),1e3)})()})(); \ No newline at end of file diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000..bf96c36 --- /dev/null +++ b/dist/index.html @@ -0,0 +1,18 @@ + + + + + ZKL Crypto Provider Demo + + + +

ZKL Crypto Provider Demo

+

Upload a file to be encrypted. The ciphertext will be presented as a bitmap here.

+ + +
+

Yigid BALABAN, https://fybx.dev/

+ + + + diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..6f43512 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,83 @@ +import { generateKeypair } from "@zklx/kds"; +import { + encryptFile, + decryptFile, + encryptString, + decryptString, +} from "../crypto.js"; + +let keypair; +const el_fileInput = document.querySelector("#fileInput"); + +el_fileInput.addEventListener("change", function (event) { + const file = event.target.files[0]; + if (file) { + const reader = new FileReader(); + + reader.onload = function (e) { + const arrayBuffer = e.target.result; + const byteArray = new Uint8Array(arrayBuffer); + if (!keypair) { + console.error("keypair not ready, skipping file enc/dec"); + return; + } + + console.log("File to be encrypted:", el_fileInput.files[0].name); + const cipherFile = encryptFile( + keypair.pkey, + el_fileInput.files[0].name, + byteArray, + ); + console.log("Ciphertext bytes:", cipherFile); + + { + const numPixels = cipherFile.length / 4; + const width = Math.floor(Math.sqrt(numPixels)); + const height = Math.ceil(numPixels / width); + + const canvas = document.getElementById("bitmapCanvas"); + const context = canvas.getContext("2d"); + + canvas.width = width; + canvas.height = height; + + const imageData = context.createImageData(width, height); + + for (let i = 0; i < cipherFile.length; i++) { + imageData.data[i] = cipherFile[i]; + } + + context.putImageData(imageData, 0, 0); + } + + const plainFile = decryptFile(keypair.skey, cipherFile); + console.log("Decrypted raw data:", plainFile.data); + console.log( + "Decrypted decoded:", + new TextDecoder().decode(plainFile.data), + ); + console.log("Decrypted file name:", plainFile.fileName); + }; + + reader.readAsArrayBuffer(file); + } else { + console.warn("No file selected"); + } +}); + +// we wait for a second before executing this block +// because WASM module takes time to load +setTimeout(async () => { + console.log("start"); + const mnemonic = + "digital radio analyst fine casino have mass blood potato hat web capital prefer debate fee differ spray cloud"; + + // for this time, skey means private key, and pkey is public + const { publicKey: pkey, privateKey: skey } = await generateKeypair(mnemonic); + keypair = { pkey, skey }; + + const cipherText = encryptString(pkey, "message"); + console.log("encrypted string is", cipherText); + console.log("decrypted string is", decryptString(skey, cipherText)); + console.log("end"); +}, 1000); diff --git a/index.html b/index.html deleted file mode 100644 index f5e5092..0000000 --- a/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - ZKL Crypto Provider Demo - - -

ZKL Crypto Provider Demo

-

Upload a file to be encrypted. The ciphertext will be presented as a bitmap here.

- - -
-

Yigid BALABAN, https://fybx.dev/

- - - \ No newline at end of file diff --git a/index.js b/index.js index 46c0242..c40e01d 100644 --- a/index.js +++ b/index.js @@ -1,77 +1 @@ -import { generateKeypair } from "./zkl-kds/key-derivation.js"; -import { - encryptFile, - decryptFile, - encryptString, - decryptString, -} from "./crypto.js"; - -let keypair; -const el_fileInput = document.querySelector("#fileInput"); - -el_fileInput - .addEventListener("change", function (event) { - const file = event.target.files[0]; - if (file) { - const reader = new FileReader(); - - reader.onload = function (e) { - const arrayBuffer = e.target.result; - const byteArray = new Uint8Array(arrayBuffer); - if (!keypair) { - console.error("keypair not ready, skipping file enc/dec"); - return; - } - - console.log('File to be encrypted:', el_fileInput.files[0].name); - const cipherFile = encryptFile(keypair.pkey, el_fileInput.files[0].name, byteArray); - console.log('Ciphertext bytes:', cipherFile); - - { - const numPixels = cipherFile.length / 4; - const width = Math.floor(Math.sqrt(numPixels)); - const height = Math.ceil(numPixels / width); - - const canvas = document.getElementById("bitmapCanvas"); - const context = canvas.getContext("2d"); - - canvas.width = width; - canvas.height = height; - - const imageData = context.createImageData(width, height); - - for (let i = 0; i < cipherFile.length; i++) { - imageData.data[i] = cipherFile[i]; - } - - context.putImageData(imageData, 0, 0); - } - - const plainFile = decryptFile(keypair.skey, cipherFile); - console.log("Decrypted raw data:", plainFile.data); - console.log("Decrypted decoded:", (new TextDecoder()).decode(plainFile.data)); - console.log("Decrypted file name:", plainFile.fileName); - }; - - reader.readAsArrayBuffer(file); - } else { - console.warn("No file selected"); - } - }); - -// we wait for a second before executing this block -// because WASM module takes time to load -setTimeout(async () => { - console.log("start"); - const mnemonic = - "digital radio analyst fine casino have mass blood potato hat web capital prefer debate fee differ spray cloud"; - - // for this time, skey means private key, and pkey is public - const { publicKey: pkey, privateKey: skey } = await generateKeypair(mnemonic); - keypair = { pkey, skey }; - - const cipherText = encryptString(pkey, "message"); - console.log("encrypted string is", cipherText); - console.log("decrypted string is", decryptString(skey, cipherText)); - console.log("end"); -}, 1000); +export * from "./crypto.js"; diff --git a/package.json b/package.json index 28f3954..f6e55fd 100644 --- a/package.json +++ b/package.json @@ -1,20 +1,22 @@ { - "name": "zkl-crypto", + "name": "@zklx/crypto", "version": "1.0.0", - "description": "", + "description": "zk-Lokomotive cryptographic applications provider", + "type": "module", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "keywords": [], + "keywords": ["cryptography", "zero knowledge", "elliptic"], "author": "Yigid BALABAN ", "license": "LGPL-2.0-only", "devDependencies": { - "babel-loader": "^9.1.3", - "webpack": "^5.94.0", + "babel-loader": "^9.2.1", + "webpack": "^5.95.0", "webpack-cli": "^5.1.4" }, "dependencies": { + "@zklx/kds": "^1.0.2", "ecies-wasm": "^0.2.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7099995..fa16d51 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,19 +8,22 @@ importers: .: dependencies: + '@zklx/kds': + specifier: ^1.0.2 + version: 1.0.2 ecies-wasm: specifier: ^0.2.0 version: 0.2.0 devDependencies: babel-loader: - specifier: ^9.1.3 - version: 9.1.3(@babel/core@7.25.2)(webpack@5.94.0(webpack-cli@5.1.4)) + specifier: ^9.2.1 + version: 9.2.1(@babel/core@7.25.2)(webpack@5.95.0(webpack-cli@5.1.4)) webpack: - specifier: ^5.94.0 - version: 5.94.0(webpack-cli@5.1.4) + specifier: ^5.95.0 + version: 5.95.0(webpack-cli@5.1.4) webpack-cli: specifier: ^5.1.4 - version: 5.1.4(webpack@5.94.0) + version: 5.1.4(webpack@5.95.0) packages: @@ -28,75 +31,75 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + '@babel/code-frame@7.25.7': + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.4': - resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} + '@babel/compat-data@7.25.7': + resolution: {integrity: sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==} engines: {node: '>=6.9.0'} '@babel/core@7.25.2': resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.6': - resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} + '@babel/generator@7.25.7': + resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.2': - resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + '@babel/helper-compilation-targets@7.25.7': + resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + '@babel/helper-module-imports@7.25.7': + resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.25.2': - resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + '@babel/helper-module-transforms@7.25.7': + resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + '@babel/helper-simple-access@7.25.7': + resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + '@babel/helper-string-parser@7.25.7': + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.8': - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + '@babel/helper-validator-option@7.25.7': + resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.25.6': - resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} + '@babel/helpers@7.25.7': + resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + '@babel/highlight@7.25.7': + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.25.6': - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + '@babel/parser@7.25.7': + resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + '@babel/template@7.25.7': + resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.6': - resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} + '@babel/traverse@7.25.7': + resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.6': - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + '@babel/types@7.25.7': + resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==} engines: {node: '>=6.9.0'} '@discoveryjs/json-ext@0.5.7': @@ -124,14 +127,24 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@noble/hashes@1.5.0': + resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} + engines: {node: ^14.21.3 || >=16} + + '@scure/base@1.1.9': + resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} + + '@scure/bip39@1.4.0': + resolution: {integrity: sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@22.5.4': - resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} + '@types/node@22.7.4': + resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==} '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -209,6 +222,9 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + '@zklx/kds@1.0.2': + resolution: {integrity: sha512-566DGii/l7FO8fl9QieLj3lRHE6K+TPoVrloRbYeTKGieI7FjBPAeP0wLQlTFPVsygGAKvGzNpakJGZe6Coo1g==} + acorn-import-attributes@1.9.5: resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: @@ -247,23 +263,29 @@ packages: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} - babel-loader@9.1.3: - resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} + babel-loader@9.2.1: + resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} engines: {node: '>= 14.15.0'} peerDependencies: '@babel/core': ^7.12.0 webpack: '>=5' - browserslist@4.23.3: - resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} + + brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - caniuse-lite@1.0.30001660: - resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} + caniuse-lite@1.0.30001667: + resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -315,15 +337,18 @@ packages: ecies-wasm@0.2.0: resolution: {integrity: sha512-T0wkoz2iOu3IN0wugO3gzCn3ADAafA8FRDQUWWST31InPWlUSvH5JH5akegAZw48or1kwQsWE5jGiNqh5woxhg==} - electron-to-chromium@1.5.18: - resolution: {integrity: sha512-1OfuVACu+zKlmjsNdcJuVQuVE61sZOLbNM4JAQ1Rvh6EOj0/EUKhMJjRH73InPlXSh8HIJk1cVZ8pyOV/FMdUQ==} + electron-to-chromium@1.5.32: + resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} + + elliptic@6.5.7: + resolution: {integrity: sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==} enhanced-resolve@5.17.1: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} - envinfo@7.13.0: - resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} + envinfo@7.14.0: + resolution: {integrity: sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==} engines: {node: '>=4'} hasBin: true @@ -364,8 +389,8 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-uri@3.0.1: - resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + fast-uri@3.0.2: + resolution: {integrity: sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==} fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} @@ -412,15 +437,24 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + import-local@3.2.0: resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} engines: {node: '>=8'} hasBin: true + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + interpret@3.1.1: resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} engines: {node: '>=10.13.0'} @@ -447,9 +481,9 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} hasBin: true json-parse-even-better-errors@2.3.1: @@ -496,6 +530,12 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -647,8 +687,8 @@ packages: uglify-js: optional: true - terser@5.32.0: - resolution: {integrity: sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ==} + terser@5.34.1: + resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==} engines: {node: '>=10'} hasBin: true @@ -659,8 +699,8 @@ packages: undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -697,8 +737,8 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - webpack@5.94.0: - resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} + webpack@5.95.0: + resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -729,25 +769,25 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@babel/code-frame@7.24.7': + '@babel/code-frame@7.25.7': dependencies: - '@babel/highlight': 7.24.7 + '@babel/highlight': 7.25.7 picocolors: 1.1.0 - '@babel/compat-data@7.25.4': {} + '@babel/compat-data@7.25.7': {} '@babel/core@7.25.2': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.2) + '@babel/helpers': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 convert-source-map: 2.0.0 debug: 4.3.7 gensync: 1.0.0-beta.2 @@ -756,89 +796,89 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.25.6': + '@babel/generator@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + jsesc: 3.0.2 - '@babel/helper-compilation-targets@7.25.2': + '@babel/helper-compilation-targets@7.25.7': dependencies: - '@babel/compat-data': 7.25.4 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.3 + '@babel/compat-data': 7.25.7 + '@babel/helper-validator-option': 7.25.7 + browserslist: 4.24.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-module-imports@7.24.7': + '@babel/helper-module-imports@7.25.7': dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': + '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-simple-access': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-simple-access@7.24.7': + '@babel/helper-simple-access@7.25.7': dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-string-parser@7.25.7': {} - '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-identifier@7.25.7': {} - '@babel/helper-validator-option@7.24.8': {} + '@babel/helper-validator-option@7.25.7': {} - '@babel/helpers@7.25.6': + '@babel/helpers@7.25.7': dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 - '@babel/highlight@7.24.7': + '@babel/highlight@7.25.7': dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.25.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.0 - '@babel/parser@7.25.6': + '@babel/parser@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 - '@babel/template@7.25.0': + '@babel/template@7.25.7': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 - '@babel/traverse@7.25.6': + '@babel/traverse@7.25.7': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.25.6': + '@babel/types@7.25.7': dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 '@discoveryjs/json-ext@0.5.7': {} @@ -865,11 +905,20 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@types/estree@1.0.5': {} + '@noble/hashes@1.5.0': {} + + '@scure/base@1.1.9': {} + + '@scure/bip39@1.4.0': + dependencies: + '@noble/hashes': 1.5.0 + '@scure/base': 1.1.9 + + '@types/estree@1.0.6': {} '@types/json-schema@7.0.15': {} - '@types/node@22.5.4': + '@types/node@22.7.4': dependencies: undici-types: 6.19.8 @@ -949,25 +998,30 @@ snapshots: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4))': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack@5.95.0))(webpack@5.95.0(webpack-cli@5.1.4))': dependencies: - webpack: 5.94.0(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.94.0) + webpack: 5.95.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.95.0) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4))': + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack@5.95.0))(webpack@5.95.0(webpack-cli@5.1.4))': dependencies: - webpack: 5.94.0(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.94.0) + webpack: 5.95.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.95.0) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4))': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack@5.95.0))(webpack@5.95.0(webpack-cli@5.1.4))': dependencies: - webpack: 5.94.0(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.94.0) + webpack: 5.95.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.95.0) '@xtuc/ieee754@1.2.0': {} '@xtuc/long@4.2.2': {} + '@zklx/kds@1.0.2': + dependencies: + '@scure/bip39': 1.4.0 + elliptic: 6.5.7 + acorn-import-attributes@1.9.5(acorn@8.12.1): dependencies: acorn: 8.12.1 @@ -997,7 +1051,7 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.1 + fast-uri: 3.0.2 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -1005,23 +1059,27 @@ snapshots: dependencies: color-convert: 1.9.3 - babel-loader@9.1.3(@babel/core@7.25.2)(webpack@5.94.0(webpack-cli@5.1.4)): + babel-loader@9.2.1(@babel/core@7.25.2)(webpack@5.95.0(webpack-cli@5.1.4)): dependencies: '@babel/core': 7.25.2 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.95.0(webpack-cli@5.1.4) - browserslist@4.23.3: + bn.js@4.12.0: {} + + brorand@1.1.0: {} + + browserslist@4.24.0: dependencies: - caniuse-lite: 1.0.30001660 - electron-to-chromium: 1.5.18 + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.32 node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.3) + update-browserslist-db: 1.1.1(browserslist@4.24.0) buffer-from@1.1.2: {} - caniuse-lite@1.0.30001660: {} + caniuse-lite@1.0.30001667: {} chalk@2.4.2: dependencies: @@ -1065,14 +1123,24 @@ snapshots: ecies-wasm@0.2.0: {} - electron-to-chromium@1.5.18: {} + electron-to-chromium@1.5.32: {} + + elliptic@6.5.7: + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - envinfo@7.13.0: {} + envinfo@7.14.0: {} es-module-lexer@1.5.4: {} @@ -1099,7 +1167,7 @@ snapshots: fast-json-stable-stringify@2.1.0: {} - fast-uri@3.0.1: {} + fast-uri@3.0.2: {} fastest-levenshtein@1.0.16: {} @@ -1134,15 +1202,28 @@ snapshots: has-flag@4.0.0: {} + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + hasown@2.0.2: dependencies: function-bind: 1.1.2 + hmac-drbg@1.0.1: + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + import-local@3.2.0: dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 + inherits@2.0.4: {} + interpret@3.1.1: {} is-core-module@2.15.1: @@ -1159,13 +1240,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.5.4 + '@types/node': 22.7.4 merge-stream: 2.0.0 supports-color: 8.1.1 js-tokens@4.0.0: {} - jsesc@2.5.2: {} + jsesc@3.0.2: {} json-parse-even-better-errors@2.3.1: {} @@ -1199,6 +1280,10 @@ snapshots: dependencies: mime-db: 1.52.0 + minimalistic-assert@1.0.1: {} + + minimalistic-crypto-utils@1.0.1: {} + ms@2.1.3: {} neo-async@2.6.2: {} @@ -1315,16 +1400,16 @@ snapshots: tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(webpack@5.94.0(webpack-cli@5.1.4)): + terser-webpack-plugin@5.3.10(webpack@5.95.0(webpack-cli@5.1.4)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.32.0 - webpack: 5.94.0(webpack-cli@5.1.4) + terser: 5.34.1 + webpack: 5.95.0(webpack-cli@5.1.4) - terser@5.32.0: + terser@5.34.1: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 @@ -1335,9 +1420,9 @@ snapshots: undici-types@6.19.8: {} - update-browserslist-db@1.1.0(browserslist@4.23.3): + update-browserslist-db@1.1.1(browserslist@4.24.0): dependencies: - browserslist: 4.23.3 + browserslist: 4.24.0 escalade: 3.2.0 picocolors: 1.1.0 @@ -1350,21 +1435,21 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - webpack-cli@5.1.4(webpack@5.94.0): + webpack-cli@5.1.4(webpack@5.95.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4)) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4)) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4)) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack@5.95.0))(webpack@5.95.0(webpack-cli@5.1.4)) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack@5.95.0))(webpack@5.95.0(webpack-cli@5.1.4)) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack@5.95.0))(webpack@5.95.0(webpack-cli@5.1.4)) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 - envinfo: 7.13.0 + envinfo: 7.14.0 fastest-levenshtein: 1.0.16 import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.95.0(webpack-cli@5.1.4) webpack-merge: 5.10.0 webpack-merge@5.10.0: @@ -1375,15 +1460,15 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.94.0(webpack-cli@5.1.4): + webpack@5.95.0(webpack-cli@5.1.4): dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.12.1 acorn-import-attributes: 1.9.5(acorn@8.12.1) - browserslist: 4.23.3 + browserslist: 4.24.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 es-module-lexer: 1.5.4 @@ -1397,11 +1482,11 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.94.0(webpack-cli@5.1.4)) + terser-webpack-plugin: 5.3.10(webpack@5.95.0(webpack-cli@5.1.4)) watchpack: 2.4.2 webpack-sources: 3.2.3 optionalDependencies: - webpack-cli: 5.1.4(webpack@5.94.0) + webpack-cli: 5.1.4(webpack@5.95.0) transitivePeerDependencies: - '@swc/core' - esbuild diff --git a/webpack.config.js b/webpack.config.js index d3dd1d8..fd99e17 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,13 +1,17 @@ -const path = require("path"); +import path from "path"; +import { fileURLToPath } from "url"; -module.exports = { - entry: "./index.js", +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +export default { + entry: "./dist/index.js", output: { - filename: "bundle.js", + filename: "./bundle.js", path: path.resolve(__dirname, "dist"), }, experiments: { syncWebAssembly: true, }, - mode: "development", + mode: "production", }; diff --git a/zkl-kds b/zkl-kds deleted file mode 160000 index ca521e0..0000000 --- a/zkl-kds +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ca521e033f6e4434d336b6fd9e8e2f4f3cb11bee