@txnlab/use-wallet-ui-react 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -0
- package/dist/cjs/chunks/floating-ui.react-Hg8yTXAw.cjs +5 -0
- package/dist/cjs/chunks/floating-ui.react-Hg8yTXAw.cjs.map +1 -0
- package/dist/cjs/index.cjs +15 -18
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/plugins/export-key.cjs +9 -0
- package/dist/cjs/plugins/export-key.cjs.map +1 -0
- package/dist/esm/chunks/floating-ui.react-BBJf3vGf.js +2599 -0
- package/dist/esm/chunks/floating-ui.react-BBJf3vGf.js.map +1 -0
- package/dist/esm/index.js +4780 -7744
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/plugins/export-key.js +3030 -0
- package/dist/esm/plugins/export-key.js.map +1 -0
- package/dist/style.css +112 -1
- package/dist/types/components/AlgoSymbol.d.ts +11 -0
- package/dist/types/components/AlgoSymbol.d.ts.map +1 -0
- package/dist/types/components/ConnectWalletButton.d.ts +9 -0
- package/dist/types/components/ConnectWalletButton.d.ts.map +1 -0
- package/dist/types/components/ConnectWalletMenu.d.ts +10 -0
- package/dist/types/components/ConnectWalletMenu.d.ts.map +1 -0
- package/dist/types/components/ConnectedWalletButton.d.ts +9 -0
- package/dist/types/components/ConnectedWalletButton.d.ts.map +1 -0
- package/dist/types/components/ConnectedWalletMenu.d.ts +10 -0
- package/dist/types/components/ConnectedWalletMenu.d.ts.map +1 -0
- package/dist/types/components/NfdAvatar.d.ts +24 -0
- package/dist/types/components/NfdAvatar.d.ts.map +1 -0
- package/dist/types/components/WalletButton.d.ts +12 -0
- package/dist/types/components/WalletButton.d.ts.map +1 -0
- package/dist/types/components/WalletList.d.ts +7 -0
- package/dist/types/components/WalletList.d.ts.map +1 -0
- package/dist/types/hooks/useAccountInfo.d.ts +12 -0
- package/dist/types/hooks/useAccountInfo.d.ts.map +1 -0
- package/dist/types/hooks/useNfd.d.ts +32 -0
- package/dist/types/hooks/useNfd.d.ts.map +1 -0
- package/dist/types/hooks/useResolvedTheme.d.ts +11 -0
- package/dist/types/hooks/useResolvedTheme.d.ts.map +1 -0
- package/dist/types/index.d.cts +17 -197
- package/dist/types/index.d.ts +17 -197
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/plugins/PluginContext.d.ts +29 -0
- package/dist/types/plugins/PluginContext.d.ts.map +1 -0
- package/dist/types/plugins/PluginDialogRenderer.d.ts +10 -0
- package/dist/types/plugins/PluginDialogRenderer.d.ts.map +1 -0
- package/dist/types/plugins/PluginLifecycleManager.d.ts +9 -0
- package/dist/types/plugins/PluginLifecycleManager.d.ts.map +1 -0
- package/dist/types/plugins/PluginSlot.d.ts +10 -0
- package/dist/types/plugins/PluginSlot.d.ts.map +1 -0
- package/dist/types/plugins/export-key/ExportKeyDialog.d.ts +6 -0
- package/dist/types/plugins/export-key/ExportKeyDialog.d.ts.map +1 -0
- package/dist/types/plugins/export-key/ExportKeyMenuButton.d.ts +5 -0
- package/dist/types/plugins/export-key/ExportKeyMenuButton.d.ts.map +1 -0
- package/dist/types/plugins/export-key/constants.d.ts +2 -0
- package/dist/types/plugins/export-key/constants.d.ts.map +1 -0
- package/dist/types/plugins/export-key/index.d.cts +12 -0
- package/dist/types/plugins/export-key/index.d.ts +12 -0
- package/dist/types/plugins/export-key/index.d.ts.map +1 -0
- package/dist/types/plugins/index.d.ts +6 -0
- package/dist/types/plugins/index.d.ts.map +1 -0
- package/dist/types/plugins/types.d.ts +109 -0
- package/dist/types/plugins/types.d.ts.map +1 -0
- package/dist/types/providers/WalletUIProvider.d.ts +58 -0
- package/dist/types/providers/WalletUIProvider.d.ts.map +1 -0
- package/dist/types/test/setup.d.ts +2 -0
- package/dist/types/test/setup.d.ts.map +1 -0
- package/dist/types/utils/cn.d.ts +16 -0
- package/dist/types/utils/cn.d.ts.map +1 -0
- package/dist/types/utils/fontLoader.d.ts +8 -0
- package/dist/types/utils/fontLoader.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +3 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/ipfs.d.ts +10 -0
- package/dist/types/utils/ipfs.d.ts.map +1 -0
- package/dist/types/utils/ipfs.test.d.ts +2 -0
- package/dist/types/utils/ipfs.test.d.ts.map +1 -0
- package/package.json +21 -11
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-key.js","sources":["../../../src/plugins/export-key/constants.ts","../../../../../node_modules/.pnpm/js-sha512@0.8.0/node_modules/js-sha512/src/sha512.js","../../../../../node_modules/.pnpm/algosdk@3.5.2/node_modules/algosdk/dist/esm/nacl/naclWrappers.js","../../../../../node_modules/.pnpm/algosdk@3.5.2/node_modules/algosdk/dist/esm/mnemonic/wordlists/english.js","../../../../../node_modules/.pnpm/algosdk@3.5.2/node_modules/algosdk/dist/esm/mnemonic/mnemonic.js","../../../src/plugins/export-key/ExportKeyDialog.tsx","../../../src/plugins/export-key/ExportKeyMenuButton.tsx","../../../src/plugins/export-key/index.tsx"],"sourcesContent":["export const EXPORT_KEY_DIALOG = 'export-key-dialog'\n","/*\n * [js-sha512]{@link https://github.com/emn178/js-sha512}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA512_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA512_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA512_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA512_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428A2F98, 0xD728AE22, 0x71374491, 0x23EF65CD,\n 0xB5C0FBCF, 0xEC4D3B2F, 0xE9B5DBA5, 0x8189DBBC,\n 0x3956C25B, 0xF348B538, 0x59F111F1, 0xB605D019,\n 0x923F82A4, 0xAF194F9B, 0xAB1C5ED5, 0xDA6D8118,\n 0xD807AA98, 0xA3030242, 0x12835B01, 0x45706FBE,\n 0x243185BE, 0x4EE4B28C, 0x550C7DC3, 0xD5FFB4E2,\n 0x72BE5D74, 0xF27B896F, 0x80DEB1FE, 0x3B1696B1,\n 0x9BDC06A7, 0x25C71235, 0xC19BF174, 0xCF692694,\n 0xE49B69C1, 0x9EF14AD2, 0xEFBE4786, 0x384F25E3,\n 0x0FC19DC6, 0x8B8CD5B5, 0x240CA1CC, 0x77AC9C65,\n 0x2DE92C6F, 0x592B0275, 0x4A7484AA, 0x6EA6E483,\n 0x5CB0A9DC, 0xBD41FBD4, 0x76F988DA, 0x831153B5,\n 0x983E5152, 0xEE66DFAB, 0xA831C66D, 0x2DB43210,\n 0xB00327C8, 0x98FB213F, 0xBF597FC7, 0xBEEF0EE4,\n 0xC6E00BF3, 0x3DA88FC2, 0xD5A79147, 0x930AA725,\n 0x06CA6351, 0xE003826F, 0x14292967, 0x0A0E6E70,\n 0x27B70A85, 0x46D22FFC, 0x2E1B2138, 0x5C26C926,\n 0x4D2C6DFC, 0x5AC42AED, 0x53380D13, 0x9D95B3DF,\n 0x650A7354, 0x8BAF63DE, 0x766A0ABB, 0x3C77B2A8,\n 0x81C2C92E, 0x47EDAEE6, 0x92722C85, 0x1482353B,\n 0xA2BFE8A1, 0x4CF10364, 0xA81A664B, 0xBC423001,\n 0xC24B8B70, 0xD0F89791, 0xC76C51A3, 0x0654BE30,\n 0xD192E819, 0xD6EF5218, 0xD6990624, 0x5565A910,\n 0xF40E3585, 0x5771202A, 0x106AA070, 0x32BBD1B8,\n 0x19A4C116, 0xB8D2D0C8, 0x1E376C08, 0x5141AB53,\n 0x2748774C, 0xDF8EEB99, 0x34B0BCB5, 0xE19B48A8,\n 0x391C0CB3, 0xC5C95A63, 0x4ED8AA4A, 0xE3418ACB,\n 0x5B9CCA4F, 0x7763E373, 0x682E6FF3, 0xD6B2B8A3,\n 0x748F82EE, 0x5DEFB2FC, 0x78A5636F, 0x43172F60,\n 0x84C87814, 0xA1F0AB72, 0x8CC70208, 0x1A6439EC,\n 0x90BEFFFA, 0x23631E28, 0xA4506CEB, 0xDE82BDE9,\n 0xBEF9A3F7, 0xB2C67915, 0xC67178F2, 0xE372532B,\n 0xCA273ECE, 0xEA26619C, 0xD186B8C7, 0x21C0C207,\n 0xEADA7DD6, 0xCDE0EB1E, 0xF57D4F7F, 0xEE6ED178,\n 0x06F067AA, 0x72176FBA, 0x0A637DC5, 0xA2C898A6,\n 0x113F9804, 0xBEF90DAE, 0x1B710B35, 0x131C471B,\n 0x28DB77F5, 0x23047D84, 0x32CAAB7B, 0x40C72493,\n 0x3C9EBE0A, 0x15C9BEBC, 0x431D67C4, 0x9C100D4C,\n 0x4CC5D4BE, 0xCB3E42B6, 0x597F299C, 0xFC657E2A,\n 0x5FCB6FAB, 0x3AD6FAEC, 0x6C44198C, 0x4A475817\n ];\n\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA512_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA512_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, bits) {\n return function (message) {\n return new Sha512(bits, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (bits) {\n var method = createOutputMethod('hex', bits);\n method.create = function () {\n return new Sha512(bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, bits);\n }\n return method;\n };\n\n var createHmacOutputMethod = function (outputType, bits) {\n return function (key, message) {\n return new HmacSha512(key, bits, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (bits) {\n var method = createHmacOutputMethod('hex', bits);\n method.create = function (key) {\n return new HmacSha512(key, bits);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, bits);\n }\n return method;\n };\n\n function Sha512(bits, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[1] = blocks[2] = blocks[3] = blocks[4] =\n blocks[5] = blocks[6] = blocks[7] = blocks[8] =\n blocks[9] = blocks[10] = blocks[11] = blocks[12] =\n blocks[13] = blocks[14] = blocks[15] = blocks[16] =\n blocks[17] = blocks[18] = blocks[19] = blocks[20] =\n blocks[21] = blocks[22] = blocks[23] = blocks[24] =\n blocks[25] = blocks[26] = blocks[27] = blocks[28] =\n blocks[29] = blocks[30] = blocks[31] = blocks[32] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (bits == 384) {\n this.h0h = 0xCBBB9D5D;\n this.h0l = 0xC1059ED8;\n this.h1h = 0x629A292A;\n this.h1l = 0x367CD507;\n this.h2h = 0x9159015A;\n this.h2l = 0x3070DD17;\n this.h3h = 0x152FECD8;\n this.h3l = 0xF70E5939;\n this.h4h = 0x67332667;\n this.h4l = 0xFFC00B31;\n this.h5h = 0x8EB44A87;\n this.h5l = 0x68581511;\n this.h6h = 0xDB0C2E0D;\n this.h6l = 0x64F98FA7;\n this.h7h = 0x47B5481D;\n this.h7l = 0xBEFA4FA4;\n } else if (bits == 256) {\n this.h0h = 0x22312194;\n this.h0l = 0xFC2BF72C;\n this.h1h = 0x9F555FA3;\n this.h1l = 0xC84C64C2;\n this.h2h = 0x2393B86B;\n this.h2l = 0x6F53B151;\n this.h3h = 0x96387719;\n this.h3l = 0x5940EABD;\n this.h4h = 0x96283EE2;\n this.h4l = 0xA88EFFE3;\n this.h5h = 0xBE5E1E25;\n this.h5l = 0x53863992;\n this.h6h = 0x2B0199FC;\n this.h6l = 0x2C85B8AA;\n this.h7h = 0x0EB72DDC;\n this.h7l = 0x81C52CA2;\n } else if (bits == 224) {\n this.h0h = 0x8C3D37C8;\n this.h0l = 0x19544DA2;\n this.h1h = 0x73E19966;\n this.h1l = 0x89DCD4D6;\n this.h2h = 0x1DFAB7AE;\n this.h2l = 0x32FF9C82;\n this.h3h = 0x679DD514;\n this.h3l = 0x582F9FCF;\n this.h4h = 0x0F6D2B69;\n this.h4l = 0x7BD44DA8;\n this.h5h = 0x77E36F73;\n this.h5l = 0x04C48942;\n this.h6h = 0x3F9D85A8;\n this.h6l = 0x6A1D36C8;\n this.h7h = 0x1112E6AD;\n this.h7l = 0x91D692A1;\n } else { // 512\n this.h0h = 0x6A09E667;\n this.h0l = 0xF3BCC908;\n this.h1h = 0xBB67AE85;\n this.h1l = 0x84CAA73B;\n this.h2h = 0x3C6EF372;\n this.h2l = 0xFE94F82B;\n this.h3h = 0xA54FF53A;\n this.h3l = 0x5F1D36F1;\n this.h4h = 0x510E527F;\n this.h4l = 0xADE682D1;\n this.h5h = 0x9B05688C;\n this.h5l = 0x2B3E6C1F;\n this.h6h = 0x1F83D9AB;\n this.h6l = 0xFB41BD6B;\n this.h7h = 0x5BE0CD19;\n this.h7l = 0x137E2179;\n }\n this.bits = bits;\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n }\n\n Sha512.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[1] = blocks[2] = blocks[3] = blocks[4] =\n blocks[5] = blocks[6] = blocks[7] = blocks[8] =\n blocks[9] = blocks[10] = blocks[11] = blocks[12] =\n blocks[13] = blocks[14] = blocks[15] = blocks[16] =\n blocks[17] = blocks[18] = blocks[19] = blocks[20] =\n blocks[21] = blocks[22] = blocks[23] = blocks[24] =\n blocks[25] = blocks[26] = blocks[27] = blocks[28] =\n blocks[29] = blocks[30] = blocks[31] = blocks[32] = 0;\n }\n\n if(notString) {\n for (i = this.start; index < length && i < 128; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 128; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 128) {\n this.block = blocks[32];\n this.start = i - 128;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha512.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[32] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[32];\n if (i >= 112) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[1] = blocks[2] = blocks[3] = blocks[4] =\n blocks[5] = blocks[6] = blocks[7] = blocks[8] =\n blocks[9] = blocks[10] = blocks[11] = blocks[12] =\n blocks[13] = blocks[14] = blocks[15] = blocks[16] =\n blocks[17] = blocks[18] = blocks[19] = blocks[20] =\n blocks[21] = blocks[22] = blocks[23] = blocks[24] =\n blocks[25] = blocks[26] = blocks[27] = blocks[28] =\n blocks[29] = blocks[30] = blocks[31] = blocks[32] = 0;\n }\n blocks[30] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[31] = this.bytes << 3;\n this.hash();\n };\n\n Sha512.prototype.hash = function () {\n var h0h = this.h0h, h0l = this.h0l, h1h = this.h1h, h1l = this.h1l,\n h2h = this.h2h, h2l = this.h2l, h3h = this.h3h, h3l = this.h3l,\n h4h = this.h4h, h4l = this.h4l, h5h = this.h5h, h5l = this.h5l,\n h6h = this.h6h, h6l = this.h6l, h7h = this.h7h, h7l = this.h7l,\n blocks = this.blocks, j, s0h, s0l, s1h, s1l, c1, c2, c3, c4,\n abh, abl, dah, dal, cdh, cdl, bch, bcl,\n majh, majl, t1h, t1l, t2h, t2l, chh, chl;\n\n for (j = 32; j < 160; j += 2) {\n t1h = blocks[j - 30];\n t1l = blocks[j - 29];\n s0h = ((t1h >>> 1) | (t1l << 31)) ^ ((t1h >>> 8) | (t1l << 24)) ^ (t1h >>> 7);\n s0l = ((t1l >>> 1) | (t1h << 31)) ^ ((t1l >>> 8) | (t1h << 24)) ^ ((t1l >>> 7) | t1h << 25);\n\n t1h = blocks[j - 4];\n t1l = blocks[j - 3];\n s1h = ((t1h >>> 19) | (t1l << 13)) ^ ((t1l >>> 29) | (t1h << 3)) ^ (t1h >>> 6);\n s1l = ((t1l >>> 19) | (t1h << 13)) ^ ((t1h >>> 29) | (t1l << 3)) ^ ((t1l >>> 6) | t1h << 26);\n\n t1h = blocks[j - 32];\n t1l = blocks[j - 31];\n t2h = blocks[j - 14];\n t2l = blocks[j - 13];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (s0l & 0xFFFF) + (s1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (s0l >>> 16) + (s1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (s0h & 0xFFFF) + (s1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (s0h >>> 16) + (s1h >>> 16) + (c3 >>> 16);\n\n blocks[j] = (c4 << 16) | (c3 & 0xFFFF);\n blocks[j + 1] = (c2 << 16) | (c1 & 0xFFFF);\n }\n\n var ah = h0h, al = h0l, bh = h1h, bl = h1l, ch = h2h, cl = h2l, dh = h3h, dl = h3l, eh = h4h, el = h4l, fh = h5h, fl = h5l, gh = h6h, gl = h6l, hh = h7h, hl = h7l;\n bch = bh & ch;\n bcl = bl & cl;\n for (j = 0; j < 160; j += 8) {\n s0h = ((ah >>> 28) | (al << 4)) ^ ((al >>> 2) | (ah << 30)) ^ ((al >>> 7) | (ah << 25));\n s0l = ((al >>> 28) | (ah << 4)) ^ ((ah >>> 2) | (al << 30)) ^ ((ah >>> 7) | (al << 25));\n\n s1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((el >>> 9) | (eh << 23));\n s1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((eh >>> 9) | (el << 23));\n\n abh = ah & bh;\n abl = al & bl;\n majh = abh ^ (ah & ch) ^ bch;\n majl = abl ^ (al & cl) ^ bcl;\n\n chh = (eh & fh) ^ (~eh & gh);\n chl = (el & fl) ^ (~el & gl);\n\n t1h = blocks[j];\n t1l = blocks[j + 1];\n t2h = K[j];\n t2l = K[j + 1];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (chl & 0xFFFF) + (s1l & 0xFFFF) + (hl & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (chl >>> 16) + (s1l >>> 16) + (hl >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (chh & 0xFFFF) + (s1h & 0xFFFF) + (hh & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (chh >>> 16) + (s1h >>> 16) + (hh >>> 16) + (c3 >>> 16);\n\n t1h = (c4 << 16) | (c3 & 0xFFFF);\n t1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (majl & 0xFFFF) + (s0l & 0xFFFF);\n c2 = (majl >>> 16) + (s0l >>> 16) + (c1 >>> 16);\n c3 = (majh & 0xFFFF) + (s0h & 0xFFFF) + (c2 >>> 16);\n c4 = (majh >>> 16) + (s0h >>> 16) + (c3 >>> 16);\n\n t2h = (c4 << 16) | (c3 & 0xFFFF);\n t2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (dl & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (dl >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (dh & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (dh >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n hh = (c4 << 16) | (c3 & 0xFFFF);\n hl = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n dh = (c4 << 16) | (c3 & 0xFFFF);\n dl = (c2 << 16) | (c1 & 0xFFFF);\n\n s0h = ((dh >>> 28) | (dl << 4)) ^ ((dl >>> 2) | (dh << 30)) ^ ((dl >>> 7) | (dh << 25));\n s0l = ((dl >>> 28) | (dh << 4)) ^ ((dh >>> 2) | (dl << 30)) ^ ((dh >>> 7) | (dl << 25));\n\n s1h = ((hh >>> 14) | (hl << 18)) ^ ((hh >>> 18) | (hl << 14)) ^ ((hl >>> 9) | (hh << 23));\n s1l = ((hl >>> 14) | (hh << 18)) ^ ((hl >>> 18) | (hh << 14)) ^ ((hh >>> 9) | (hl << 23));\n\n dah = dh & ah;\n dal = dl & al;\n majh = dah ^ (dh & bh) ^ abh;\n majl = dal ^ (dl & bl) ^ abl;\n\n chh = (hh & eh) ^ (~hh & fh);\n chl = (hl & el) ^ (~hl & fl);\n\n t1h = blocks[j + 2];\n t1l = blocks[j + 3];\n t2h = K[j + 2];\n t2l = K[j + 3];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (chl & 0xFFFF) + (s1l & 0xFFFF) + (gl & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (chl >>> 16) + (s1l >>> 16) + (gl >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (chh & 0xFFFF) + (s1h & 0xFFFF) + (gh & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (chh >>> 16) + (s1h >>> 16) + (gh >>> 16) + (c3 >>> 16);\n\n t1h = (c4 << 16) | (c3 & 0xFFFF);\n t1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (majl & 0xFFFF) + (s0l & 0xFFFF);\n c2 = (majl >>> 16) + (s0l >>> 16) + (c1 >>> 16);\n c3 = (majh & 0xFFFF) + (s0h & 0xFFFF) + (c2 >>> 16);\n c4 = (majh >>> 16) + (s0h >>> 16) + (c3 >>> 16);\n\n t2h = (c4 << 16) | (c3 & 0xFFFF);\n t2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (cl & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (cl >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (ch & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (ch >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n gh = (c4 << 16) | (c3 & 0xFFFF);\n gl = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n ch = (c4 << 16) | (c3 & 0xFFFF);\n cl = (c2 << 16) | (c1 & 0xFFFF);\n\n s0h = ((ch >>> 28) | (cl << 4)) ^ ((cl >>> 2) | (ch << 30)) ^ ((cl >>> 7) | (ch << 25));\n s0l = ((cl >>> 28) | (ch << 4)) ^ ((ch >>> 2) | (cl << 30)) ^ ((ch >>> 7) | (cl << 25));\n\n s1h = ((gh >>> 14) | (gl << 18)) ^ ((gh >>> 18) | (gl << 14)) ^ ((gl >>> 9) | (gh << 23));\n s1l = ((gl >>> 14) | (gh << 18)) ^ ((gl >>> 18) | (gh << 14)) ^ ((gh >>> 9) | (gl << 23));\n\n cdh = ch & dh;\n cdl = cl & dl;\n majh = cdh ^ (ch & ah) ^ dah;\n majl = cdl ^ (cl & al) ^ dal;\n\n chh = (gh & hh) ^ (~gh & eh);\n chl = (gl & hl) ^ (~gl & el);\n\n t1h = blocks[j + 4];\n t1l = blocks[j + 5];\n t2h = K[j + 4];\n t2l = K[j + 5];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (chl & 0xFFFF) + (s1l & 0xFFFF) + (fl & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (chl >>> 16) + (s1l >>> 16) + (fl >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (chh & 0xFFFF) + (s1h & 0xFFFF) + (fh & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (chh >>> 16) + (s1h >>> 16) + (fh >>> 16) + (c3 >>> 16);\n\n t1h = (c4 << 16) | (c3 & 0xFFFF);\n t1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (majl & 0xFFFF) + (s0l & 0xFFFF);\n c2 = (majl >>> 16) + (s0l >>> 16) + (c1 >>> 16);\n c3 = (majh & 0xFFFF) + (s0h & 0xFFFF) + (c2 >>> 16);\n c4 = (majh >>> 16) + (s0h >>> 16) + (c3 >>> 16);\n\n t2h = (c4 << 16) | (c3 & 0xFFFF);\n t2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (bl & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (bl >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (bh & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (bh >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n fh = (c4 << 16) | (c3 & 0xFFFF);\n fl = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n bh = (c4 << 16) | (c3 & 0xFFFF);\n bl = (c2 << 16) | (c1 & 0xFFFF);\n\n s0h = ((bh >>> 28) | (bl << 4)) ^ ((bl >>> 2) | (bh << 30)) ^ ((bl >>> 7) | (bh << 25));\n s0l = ((bl >>> 28) | (bh << 4)) ^ ((bh >>> 2) | (bl << 30)) ^ ((bh >>> 7) | (bl << 25));\n\n s1h = ((fh >>> 14) | (fl << 18)) ^ ((fh >>> 18) | (fl << 14)) ^ ((fl >>> 9) | (fh << 23));\n s1l = ((fl >>> 14) | (fh << 18)) ^ ((fl >>> 18) | (fh << 14)) ^ ((fh >>> 9) | (fl << 23));\n\n bch = bh & ch;\n bcl = bl & cl;\n majh = bch ^ (bh & dh) ^ cdh;\n majl = bcl ^ (bl & dl) ^ cdl;\n\n chh = (fh & gh) ^ (~fh & hh);\n chl = (fl & gl) ^ (~fl & hl);\n\n t1h = blocks[j + 6];\n t1l = blocks[j + 7];\n t2h = K[j + 6];\n t2l = K[j + 7];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (chl & 0xFFFF) + (s1l & 0xFFFF) + (el & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (chl >>> 16) + (s1l >>> 16) + (el >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (chh & 0xFFFF) + (s1h & 0xFFFF) + (eh & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (chh >>> 16) + (s1h >>> 16) + (eh >>> 16) + (c3 >>> 16);\n\n t1h = (c4 << 16) | (c3 & 0xFFFF);\n t1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (majl & 0xFFFF) + (s0l & 0xFFFF);\n c2 = (majl >>> 16) + (s0l >>> 16) + (c1 >>> 16);\n c3 = (majh & 0xFFFF) + (s0h & 0xFFFF) + (c2 >>> 16);\n c4 = (majh >>> 16) + (s0h >>> 16) + (c3 >>> 16);\n\n t2h = (c4 << 16) | (c3 & 0xFFFF);\n t2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (al & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (al >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (ah & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (ah >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n eh = (c4 << 16) | (c3 & 0xFFFF);\n el = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n ah = (c4 << 16) | (c3 & 0xFFFF);\n al = (c2 << 16) | (c1 & 0xFFFF);\n }\n\n c1 = (h0l & 0xFFFF) + (al & 0xFFFF);\n c2 = (h0l >>> 16) + (al >>> 16) + (c1 >>> 16);\n c3 = (h0h & 0xFFFF) + (ah & 0xFFFF) + (c2 >>> 16);\n c4 = (h0h >>> 16) + (ah >>> 16) + (c3 >>> 16);\n\n this.h0h = (c4 << 16) | (c3 & 0xFFFF);\n this.h0l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h1l & 0xFFFF) + (bl & 0xFFFF);\n c2 = (h1l >>> 16) + (bl >>> 16) + (c1 >>> 16);\n c3 = (h1h & 0xFFFF) + (bh & 0xFFFF) + (c2 >>> 16);\n c4 = (h1h >>> 16) + (bh >>> 16) + (c3 >>> 16);\n\n this.h1h = (c4 << 16) | (c3 & 0xFFFF);\n this.h1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h2l & 0xFFFF) + (cl & 0xFFFF);\n c2 = (h2l >>> 16) + (cl >>> 16) + (c1 >>> 16);\n c3 = (h2h & 0xFFFF) + (ch & 0xFFFF) + (c2 >>> 16);\n c4 = (h2h >>> 16) + (ch >>> 16) + (c3 >>> 16);\n\n this.h2h = (c4 << 16) | (c3 & 0xFFFF);\n this.h2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h3l & 0xFFFF) + (dl & 0xFFFF);\n c2 = (h3l >>> 16) + (dl >>> 16) + (c1 >>> 16);\n c3 = (h3h & 0xFFFF) + (dh & 0xFFFF) + (c2 >>> 16);\n c4 = (h3h >>> 16) + (dh >>> 16) + (c3 >>> 16);\n\n this.h3h = (c4 << 16) | (c3 & 0xFFFF);\n this.h3l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h4l & 0xFFFF) + (el & 0xFFFF);\n c2 = (h4l >>> 16) + (el >>> 16) + (c1 >>> 16);\n c3 = (h4h & 0xFFFF) + (eh & 0xFFFF) + (c2 >>> 16);\n c4 = (h4h >>> 16) + (eh >>> 16) + (c3 >>> 16);\n\n this.h4h = (c4 << 16) | (c3 & 0xFFFF);\n this.h4l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h5l & 0xFFFF) + (fl & 0xFFFF);\n c2 = (h5l >>> 16) + (fl >>> 16) + (c1 >>> 16);\n c3 = (h5h & 0xFFFF) + (fh & 0xFFFF) + (c2 >>> 16);\n c4 = (h5h >>> 16) + (fh >>> 16) + (c3 >>> 16);\n\n this.h5h = (c4 << 16) | (c3 & 0xFFFF);\n this.h5l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h6l & 0xFFFF) + (gl & 0xFFFF);\n c2 = (h6l >>> 16) + (gl >>> 16) + (c1 >>> 16);\n c3 = (h6h & 0xFFFF) + (gh & 0xFFFF) + (c2 >>> 16);\n c4 = (h6h >>> 16) + (gh >>> 16) + (c3 >>> 16);\n\n this.h6h = (c4 << 16) | (c3 & 0xFFFF);\n this.h6l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h7l & 0xFFFF) + (hl & 0xFFFF);\n c2 = (h7l >>> 16) + (hl >>> 16) + (c1 >>> 16);\n c3 = (h7h & 0xFFFF) + (hh & 0xFFFF) + (c2 >>> 16);\n c4 = (h7h >>> 16) + (hh >>> 16) + (c3 >>> 16);\n\n this.h7h = (c4 << 16) | (c3 & 0xFFFF);\n this.h7l = (c2 << 16) | (c1 & 0xFFFF);\n };\n\n Sha512.prototype.hex = function () {\n this.finalize();\n\n var h0h = this.h0h, h0l = this.h0l, h1h = this.h1h, h1l = this.h1l,\n h2h = this.h2h, h2l = this.h2l, h3h = this.h3h, h3l = this.h3l,\n h4h = this.h4h, h4l = this.h4l, h5h = this.h5h, h5l = this.h5l,\n h6h = this.h6h, h6l = this.h6l, h7h = this.h7h, h7l = this.h7l,\n bits = this.bits;\n\n var hex = HEX_CHARS[(h0h >> 28) & 0x0F] + HEX_CHARS[(h0h >> 24) & 0x0F] +\n HEX_CHARS[(h0h >> 20) & 0x0F] + HEX_CHARS[(h0h >> 16) & 0x0F] +\n HEX_CHARS[(h0h >> 12) & 0x0F] + HEX_CHARS[(h0h >> 8) & 0x0F] +\n HEX_CHARS[(h0h >> 4) & 0x0F] + HEX_CHARS[h0h & 0x0F] +\n HEX_CHARS[(h0l >> 28) & 0x0F] + HEX_CHARS[(h0l >> 24) & 0x0F] +\n HEX_CHARS[(h0l >> 20) & 0x0F] + HEX_CHARS[(h0l >> 16) & 0x0F] +\n HEX_CHARS[(h0l >> 12) & 0x0F] + HEX_CHARS[(h0l >> 8) & 0x0F] +\n HEX_CHARS[(h0l >> 4) & 0x0F] + HEX_CHARS[h0l & 0x0F] +\n HEX_CHARS[(h1h >> 28) & 0x0F] + HEX_CHARS[(h1h >> 24) & 0x0F] +\n HEX_CHARS[(h1h >> 20) & 0x0F] + HEX_CHARS[(h1h >> 16) & 0x0F] +\n HEX_CHARS[(h1h >> 12) & 0x0F] + HEX_CHARS[(h1h >> 8) & 0x0F] +\n HEX_CHARS[(h1h >> 4) & 0x0F] + HEX_CHARS[h1h & 0x0F] +\n HEX_CHARS[(h1l >> 28) & 0x0F] + HEX_CHARS[(h1l >> 24) & 0x0F] +\n HEX_CHARS[(h1l >> 20) & 0x0F] + HEX_CHARS[(h1l >> 16) & 0x0F] +\n HEX_CHARS[(h1l >> 12) & 0x0F] + HEX_CHARS[(h1l >> 8) & 0x0F] +\n HEX_CHARS[(h1l >> 4) & 0x0F] + HEX_CHARS[h1l & 0x0F] +\n HEX_CHARS[(h2h >> 28) & 0x0F] + HEX_CHARS[(h2h >> 24) & 0x0F] +\n HEX_CHARS[(h2h >> 20) & 0x0F] + HEX_CHARS[(h2h >> 16) & 0x0F] +\n HEX_CHARS[(h2h >> 12) & 0x0F] + HEX_CHARS[(h2h >> 8) & 0x0F] +\n HEX_CHARS[(h2h >> 4) & 0x0F] + HEX_CHARS[h2h & 0x0F] +\n HEX_CHARS[(h2l >> 28) & 0x0F] + HEX_CHARS[(h2l >> 24) & 0x0F] +\n HEX_CHARS[(h2l >> 20) & 0x0F] + HEX_CHARS[(h2l >> 16) & 0x0F] +\n HEX_CHARS[(h2l >> 12) & 0x0F] + HEX_CHARS[(h2l >> 8) & 0x0F] +\n HEX_CHARS[(h2l >> 4) & 0x0F] + HEX_CHARS[h2l & 0x0F] +\n HEX_CHARS[(h3h >> 28) & 0x0F] + HEX_CHARS[(h3h >> 24) & 0x0F] +\n HEX_CHARS[(h3h >> 20) & 0x0F] + HEX_CHARS[(h3h >> 16) & 0x0F] +\n HEX_CHARS[(h3h >> 12) & 0x0F] + HEX_CHARS[(h3h >> 8) & 0x0F] +\n HEX_CHARS[(h3h >> 4) & 0x0F] + HEX_CHARS[h3h & 0x0F];\n if (bits >= 256) {\n hex += HEX_CHARS[(h3l >> 28) & 0x0F] + HEX_CHARS[(h3l >> 24) & 0x0F] +\n HEX_CHARS[(h3l >> 20) & 0x0F] + HEX_CHARS[(h3l >> 16) & 0x0F] +\n HEX_CHARS[(h3l >> 12) & 0x0F] + HEX_CHARS[(h3l >> 8) & 0x0F] +\n HEX_CHARS[(h3l >> 4) & 0x0F] + HEX_CHARS[h3l & 0x0F];\n }\n if (bits >= 384) {\n hex += HEX_CHARS[(h4h >> 28) & 0x0F] + HEX_CHARS[(h4h >> 24) & 0x0F] +\n HEX_CHARS[(h4h >> 20) & 0x0F] + HEX_CHARS[(h4h >> 16) & 0x0F] +\n HEX_CHARS[(h4h >> 12) & 0x0F] + HEX_CHARS[(h4h >> 8) & 0x0F] +\n HEX_CHARS[(h4h >> 4) & 0x0F] + HEX_CHARS[h4h & 0x0F] +\n HEX_CHARS[(h4l >> 28) & 0x0F] + HEX_CHARS[(h4l >> 24) & 0x0F] +\n HEX_CHARS[(h4l >> 20) & 0x0F] + HEX_CHARS[(h4l >> 16) & 0x0F] +\n HEX_CHARS[(h4l >> 12) & 0x0F] + HEX_CHARS[(h4l >> 8) & 0x0F] +\n HEX_CHARS[(h4l >> 4) & 0x0F] + HEX_CHARS[h4l & 0x0F] +\n HEX_CHARS[(h5h >> 28) & 0x0F] + HEX_CHARS[(h5h >> 24) & 0x0F] +\n HEX_CHARS[(h5h >> 20) & 0x0F] + HEX_CHARS[(h5h >> 16) & 0x0F] +\n HEX_CHARS[(h5h >> 12) & 0x0F] + HEX_CHARS[(h5h >> 8) & 0x0F] +\n HEX_CHARS[(h5h >> 4) & 0x0F] + HEX_CHARS[h5h & 0x0F] +\n HEX_CHARS[(h5l >> 28) & 0x0F] + HEX_CHARS[(h5l >> 24) & 0x0F] +\n HEX_CHARS[(h5l >> 20) & 0x0F] + HEX_CHARS[(h5l >> 16) & 0x0F] +\n HEX_CHARS[(h5l >> 12) & 0x0F] + HEX_CHARS[(h5l >> 8) & 0x0F] +\n HEX_CHARS[(h5l >> 4) & 0x0F] + HEX_CHARS[h5l & 0x0F];\n }\n if (bits == 512) {\n hex += HEX_CHARS[(h6h >> 28) & 0x0F] + HEX_CHARS[(h6h >> 24) & 0x0F] +\n HEX_CHARS[(h6h >> 20) & 0x0F] + HEX_CHARS[(h6h >> 16) & 0x0F] +\n HEX_CHARS[(h6h >> 12) & 0x0F] + HEX_CHARS[(h6h >> 8) & 0x0F] +\n HEX_CHARS[(h6h >> 4) & 0x0F] + HEX_CHARS[h6h & 0x0F] +\n HEX_CHARS[(h6l >> 28) & 0x0F] + HEX_CHARS[(h6l >> 24) & 0x0F] +\n HEX_CHARS[(h6l >> 20) & 0x0F] + HEX_CHARS[(h6l >> 16) & 0x0F] +\n HEX_CHARS[(h6l >> 12) & 0x0F] + HEX_CHARS[(h6l >> 8) & 0x0F] +\n HEX_CHARS[(h6l >> 4) & 0x0F] + HEX_CHARS[h6l & 0x0F] +\n HEX_CHARS[(h7h >> 28) & 0x0F] + HEX_CHARS[(h7h >> 24) & 0x0F] +\n HEX_CHARS[(h7h >> 20) & 0x0F] + HEX_CHARS[(h7h >> 16) & 0x0F] +\n HEX_CHARS[(h7h >> 12) & 0x0F] + HEX_CHARS[(h7h >> 8) & 0x0F] +\n HEX_CHARS[(h7h >> 4) & 0x0F] + HEX_CHARS[h7h & 0x0F] +\n HEX_CHARS[(h7l >> 28) & 0x0F] + HEX_CHARS[(h7l >> 24) & 0x0F] +\n HEX_CHARS[(h7l >> 20) & 0x0F] + HEX_CHARS[(h7l >> 16) & 0x0F] +\n HEX_CHARS[(h7l >> 12) & 0x0F] + HEX_CHARS[(h7l >> 8) & 0x0F] +\n HEX_CHARS[(h7l >> 4) & 0x0F] + HEX_CHARS[h7l & 0x0F];\n }\n return hex;\n };\n\n Sha512.prototype.toString = Sha512.prototype.hex;\n\n Sha512.prototype.digest = function () {\n this.finalize();\n\n var h0h = this.h0h, h0l = this.h0l, h1h = this.h1h, h1l = this.h1l,\n h2h = this.h2h, h2l = this.h2l, h3h = this.h3h, h3l = this.h3l,\n h4h = this.h4h, h4l = this.h4l, h5h = this.h5h, h5l = this.h5l,\n h6h = this.h6h, h6l = this.h6l, h7h = this.h7h, h7l = this.h7l,\n bits = this.bits;\n\n var arr = [\n (h0h >> 24) & 0xFF, (h0h >> 16) & 0xFF, (h0h >> 8) & 0xFF, h0h & 0xFF,\n (h0l >> 24) & 0xFF, (h0l >> 16) & 0xFF, (h0l >> 8) & 0xFF, h0l & 0xFF,\n (h1h >> 24) & 0xFF, (h1h >> 16) & 0xFF, (h1h >> 8) & 0xFF, h1h & 0xFF,\n (h1l >> 24) & 0xFF, (h1l >> 16) & 0xFF, (h1l >> 8) & 0xFF, h1l & 0xFF,\n (h2h >> 24) & 0xFF, (h2h >> 16) & 0xFF, (h2h >> 8) & 0xFF, h2h & 0xFF,\n (h2l >> 24) & 0xFF, (h2l >> 16) & 0xFF, (h2l >> 8) & 0xFF, h2l & 0xFF,\n (h3h >> 24) & 0xFF, (h3h >> 16) & 0xFF, (h3h >> 8) & 0xFF, h3h & 0xFF\n ];\n\n if (bits >= 256) {\n arr.push((h3l >> 24) & 0xFF, (h3l >> 16) & 0xFF, (h3l >> 8) & 0xFF, h3l & 0xFF);\n }\n if (bits >= 384) {\n arr.push(\n (h4h >> 24) & 0xFF, (h4h >> 16) & 0xFF, (h4h >> 8) & 0xFF, h4h & 0xFF,\n (h4l >> 24) & 0xFF, (h4l >> 16) & 0xFF, (h4l >> 8) & 0xFF, h4l & 0xFF,\n (h5h >> 24) & 0xFF, (h5h >> 16) & 0xFF, (h5h >> 8) & 0xFF, h5h & 0xFF,\n (h5l >> 24) & 0xFF, (h5l >> 16) & 0xFF, (h5l >> 8) & 0xFF, h5l & 0xFF\n );\n }\n if (bits == 512) {\n arr.push(\n (h6h >> 24) & 0xFF, (h6h >> 16) & 0xFF, (h6h >> 8) & 0xFF, h6h & 0xFF,\n (h6l >> 24) & 0xFF, (h6l >> 16) & 0xFF, (h6l >> 8) & 0xFF, h6l & 0xFF,\n (h7h >> 24) & 0xFF, (h7h >> 16) & 0xFF, (h7h >> 8) & 0xFF, h7h & 0xFF,\n (h7l >> 24) & 0xFF, (h7l >> 16) & 0xFF, (h7l >> 8) & 0xFF, h7l & 0xFF\n );\n }\n return arr;\n };\n\n Sha512.prototype.array = Sha512.prototype.digest;\n\n Sha512.prototype.arrayBuffer = function () {\n this.finalize();\n\n var bits = this.bits;\n var buffer = new ArrayBuffer(bits / 8);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0h);\n dataView.setUint32(4, this.h0l);\n dataView.setUint32(8, this.h1h);\n dataView.setUint32(12, this.h1l);\n dataView.setUint32(16, this.h2h);\n dataView.setUint32(20, this.h2l);\n dataView.setUint32(24, this.h3h);\n\n if (bits >= 256) {\n dataView.setUint32(28, this.h3l);\n }\n if (bits >= 384) {\n dataView.setUint32(32, this.h4h);\n dataView.setUint32(36, this.h4l);\n dataView.setUint32(40, this.h5h);\n dataView.setUint32(44, this.h5l);\n }\n if (bits == 512) {\n dataView.setUint32(48, this.h6h);\n dataView.setUint32(52, this.h6l);\n dataView.setUint32(56, this.h7h);\n dataView.setUint32(60, this.h7l);\n }\n return buffer;\n };\n\n Sha512.prototype.clone = function () {\n var hash = new Sha512(this.bits, false);\n this.copyTo(hash);\n return hash;\n };\n\n Sha512.prototype.copyTo = function (hash) {\n var i = 0, attrs = [\n 'h0h', 'h0l', 'h1h', 'h1l', 'h2h', 'h2l', 'h3h', 'h3l', 'h4h', 'h4l', 'h5h', 'h5l', 'h6h', 'h6l', 'h7h', 'h7l',\n 'start', 'bytes', 'hBytes', 'finalized', 'hashed', 'lastByteIndex'\n ];\n for (i = 0; i < attrs.length; ++i) {\n hash[attrs[i]] = this[attrs[i]];\n }\n for (i = 0; i < this.blocks.length; ++i) {\n hash.blocks[i] = this.blocks[i];\n }\n };\n\n function HmacSha512(key, bits, sharedMemory) {\n var notString, type = typeof key;\n if (type !== 'string') {\n if (type === 'object') {\n if (key === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var length = key.length;\n if (!notString) {\n var bytes = [], length = key.length, index = 0, code;\n for (var i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n }\n\n if (key.length > 128) {\n key = (new Sha512(bits, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (var i = 0; i < 128; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha512.call(this, bits, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha512.prototype = new Sha512();\n\n HmacSha512.prototype.finalize = function () {\n Sha512.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha512.call(this, this.bits, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha512.prototype.finalize.call(this);\n }\n };\n\n HmacSha512.prototype.clone = function () {\n var hash = new HmacSha512([], this.bits, false);\n this.copyTo(hash);\n hash.inner = this.inner;\n for (var i = 0; i < this.oKeyPad.length; ++i) {\n hash.oKeyPad[i] = this.oKeyPad[i];\n }\n return hash;\n };\n\n var exports = createMethod(512);\n exports.sha512 = exports;\n exports.sha384 = createMethod(384);\n exports.sha512_256 = createMethod(256);\n exports.sha512_224 = createMethod(224);\n exports.sha512.hmac = createHmacMethod(512);\n exports.sha384.hmac = createHmacMethod(384);\n exports.sha512_256.hmac = createHmacMethod(256);\n exports.sha512_224.hmac = createHmacMethod(224);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha512 = exports.sha512;\n root.sha384 = exports.sha384;\n root.sha512_256 = exports.sha512_256;\n root.sha512_224 = exports.sha512_224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","import nacl from 'tweetnacl';\nimport sha512 from 'js-sha512';\nimport { isReactNative } from '../utils/utils.js';\nexport function genericHash(arr) {\n return sha512.sha512_256.array(arr);\n}\nexport function randomBytes(length) {\n if (isReactNative()) {\n console.warn(`It looks like you're running in react-native. In order to perform common crypto operations you will need to polyfill common operations such as crypto.getRandomValues`);\n }\n return nacl.randomBytes(length);\n}\nexport function keyPairFromSeed(seed) {\n return nacl.sign.keyPair.fromSeed(seed);\n}\nexport function keyPair() {\n const seed = randomBytes(nacl.box.secretKeyLength);\n return keyPairFromSeed(seed);\n}\nexport function isValidSignatureLength(len) {\n return len === nacl.sign.signatureLength;\n}\nexport function keyPairFromSecretKey(sk) {\n return nacl.sign.keyPair.fromSecretKey(sk);\n}\nexport function sign(msg, secretKey) {\n return nacl.sign.detached(msg, secretKey);\n}\nexport function bytesEqual(a, b) {\n return nacl.verify(a, b);\n}\nexport function verify(message, signature, verifyKey) {\n return nacl.sign.detached.verify(message, signature, verifyKey);\n}\n// constants\nexport const PUBLIC_KEY_LENGTH = nacl.sign.publicKeyLength;\nexport const SECRET_KEY_LENGTH = nacl.sign.secretKeyLength;\nexport const HASH_BYTES_LENGTH = 32;\nexport const SEED_BTYES_LENGTH = 32;\n//# sourceMappingURL=naclWrappers.js.map","const english = [\n 'abandon',\n 'ability',\n 'able',\n 'about',\n 'above',\n 'absent',\n 'absorb',\n 'abstract',\n 'absurd',\n 'abuse',\n 'access',\n 'accident',\n 'account',\n 'accuse',\n 'achieve',\n 'acid',\n 'acoustic',\n 'acquire',\n 'across',\n 'act',\n 'action',\n 'actor',\n 'actress',\n 'actual',\n 'adapt',\n 'add',\n 'addict',\n 'address',\n 'adjust',\n 'admit',\n 'adult',\n 'advance',\n 'advice',\n 'aerobic',\n 'affair',\n 'afford',\n 'afraid',\n 'again',\n 'age',\n 'agent',\n 'agree',\n 'ahead',\n 'aim',\n 'air',\n 'airport',\n 'aisle',\n 'alarm',\n 'album',\n 'alcohol',\n 'alert',\n 'alien',\n 'all',\n 'alley',\n 'allow',\n 'almost',\n 'alone',\n 'alpha',\n 'already',\n 'also',\n 'alter',\n 'always',\n 'amateur',\n 'amazing',\n 'among',\n 'amount',\n 'amused',\n 'analyst',\n 'anchor',\n 'ancient',\n 'anger',\n 'angle',\n 'angry',\n 'animal',\n 'ankle',\n 'announce',\n 'annual',\n 'another',\n 'answer',\n 'antenna',\n 'antique',\n 'anxiety',\n 'any',\n 'apart',\n 'apology',\n 'appear',\n 'apple',\n 'approve',\n 'april',\n 'arch',\n 'arctic',\n 'area',\n 'arena',\n 'argue',\n 'arm',\n 'armed',\n 'armor',\n 'army',\n 'around',\n 'arrange',\n 'arrest',\n 'arrive',\n 'arrow',\n 'art',\n 'artefact',\n 'artist',\n 'artwork',\n 'ask',\n 'aspect',\n 'assault',\n 'asset',\n 'assist',\n 'assume',\n 'asthma',\n 'athlete',\n 'atom',\n 'attack',\n 'attend',\n 'attitude',\n 'attract',\n 'auction',\n 'audit',\n 'august',\n 'aunt',\n 'author',\n 'auto',\n 'autumn',\n 'average',\n 'avocado',\n 'avoid',\n 'awake',\n 'aware',\n 'away',\n 'awesome',\n 'awful',\n 'awkward',\n 'axis',\n 'baby',\n 'bachelor',\n 'bacon',\n 'badge',\n 'bag',\n 'balance',\n 'balcony',\n 'ball',\n 'bamboo',\n 'banana',\n 'banner',\n 'bar',\n 'barely',\n 'bargain',\n 'barrel',\n 'base',\n 'basic',\n 'basket',\n 'battle',\n 'beach',\n 'bean',\n 'beauty',\n 'because',\n 'become',\n 'beef',\n 'before',\n 'begin',\n 'behave',\n 'behind',\n 'believe',\n 'below',\n 'belt',\n 'bench',\n 'benefit',\n 'best',\n 'betray',\n 'better',\n 'between',\n 'beyond',\n 'bicycle',\n 'bid',\n 'bike',\n 'bind',\n 'biology',\n 'bird',\n 'birth',\n 'bitter',\n 'black',\n 'blade',\n 'blame',\n 'blanket',\n 'blast',\n 'bleak',\n 'bless',\n 'blind',\n 'blood',\n 'blossom',\n 'blouse',\n 'blue',\n 'blur',\n 'blush',\n 'board',\n 'boat',\n 'body',\n 'boil',\n 'bomb',\n 'bone',\n 'bonus',\n 'book',\n 'boost',\n 'border',\n 'boring',\n 'borrow',\n 'boss',\n 'bottom',\n 'bounce',\n 'box',\n 'boy',\n 'bracket',\n 'brain',\n 'brand',\n 'brass',\n 'brave',\n 'bread',\n 'breeze',\n 'brick',\n 'bridge',\n 'brief',\n 'bright',\n 'bring',\n 'brisk',\n 'broccoli',\n 'broken',\n 'bronze',\n 'broom',\n 'brother',\n 'brown',\n 'brush',\n 'bubble',\n 'buddy',\n 'budget',\n 'buffalo',\n 'build',\n 'bulb',\n 'bulk',\n 'bullet',\n 'bundle',\n 'bunker',\n 'burden',\n 'burger',\n 'burst',\n 'bus',\n 'business',\n 'busy',\n 'butter',\n 'buyer',\n 'buzz',\n 'cabbage',\n 'cabin',\n 'cable',\n 'cactus',\n 'cage',\n 'cake',\n 'call',\n 'calm',\n 'camera',\n 'camp',\n 'can',\n 'canal',\n 'cancel',\n 'candy',\n 'cannon',\n 'canoe',\n 'canvas',\n 'canyon',\n 'capable',\n 'capital',\n 'captain',\n 'car',\n 'carbon',\n 'card',\n 'cargo',\n 'carpet',\n 'carry',\n 'cart',\n 'case',\n 'cash',\n 'casino',\n 'castle',\n 'casual',\n 'cat',\n 'catalog',\n 'catch',\n 'category',\n 'cattle',\n 'caught',\n 'cause',\n 'caution',\n 'cave',\n 'ceiling',\n 'celery',\n 'cement',\n 'census',\n 'century',\n 'cereal',\n 'certain',\n 'chair',\n 'chalk',\n 'champion',\n 'change',\n 'chaos',\n 'chapter',\n 'charge',\n 'chase',\n 'chat',\n 'cheap',\n 'check',\n 'cheese',\n 'chef',\n 'cherry',\n 'chest',\n 'chicken',\n 'chief',\n 'child',\n 'chimney',\n 'choice',\n 'choose',\n 'chronic',\n 'chuckle',\n 'chunk',\n 'churn',\n 'cigar',\n 'cinnamon',\n 'circle',\n 'citizen',\n 'city',\n 'civil',\n 'claim',\n 'clap',\n 'clarify',\n 'claw',\n 'clay',\n 'clean',\n 'clerk',\n 'clever',\n 'click',\n 'client',\n 'cliff',\n 'climb',\n 'clinic',\n 'clip',\n 'clock',\n 'clog',\n 'close',\n 'cloth',\n 'cloud',\n 'clown',\n 'club',\n 'clump',\n 'cluster',\n 'clutch',\n 'coach',\n 'coast',\n 'coconut',\n 'code',\n 'coffee',\n 'coil',\n 'coin',\n 'collect',\n 'color',\n 'column',\n 'combine',\n 'come',\n 'comfort',\n 'comic',\n 'common',\n 'company',\n 'concert',\n 'conduct',\n 'confirm',\n 'congress',\n 'connect',\n 'consider',\n 'control',\n 'convince',\n 'cook',\n 'cool',\n 'copper',\n 'copy',\n 'coral',\n 'core',\n 'corn',\n 'correct',\n 'cost',\n 'cotton',\n 'couch',\n 'country',\n 'couple',\n 'course',\n 'cousin',\n 'cover',\n 'coyote',\n 'crack',\n 'cradle',\n 'craft',\n 'cram',\n 'crane',\n 'crash',\n 'crater',\n 'crawl',\n 'crazy',\n 'cream',\n 'credit',\n 'creek',\n 'crew',\n 'cricket',\n 'crime',\n 'crisp',\n 'critic',\n 'crop',\n 'cross',\n 'crouch',\n 'crowd',\n 'crucial',\n 'cruel',\n 'cruise',\n 'crumble',\n 'crunch',\n 'crush',\n 'cry',\n 'crystal',\n 'cube',\n 'culture',\n 'cup',\n 'cupboard',\n 'curious',\n 'current',\n 'curtain',\n 'curve',\n 'cushion',\n 'custom',\n 'cute',\n 'cycle',\n 'dad',\n 'damage',\n 'damp',\n 'dance',\n 'danger',\n 'daring',\n 'dash',\n 'daughter',\n 'dawn',\n 'day',\n 'deal',\n 'debate',\n 'debris',\n 'decade',\n 'december',\n 'decide',\n 'decline',\n 'decorate',\n 'decrease',\n 'deer',\n 'defense',\n 'define',\n 'defy',\n 'degree',\n 'delay',\n 'deliver',\n 'demand',\n 'demise',\n 'denial',\n 'dentist',\n 'deny',\n 'depart',\n 'depend',\n 'deposit',\n 'depth',\n 'deputy',\n 'derive',\n 'describe',\n 'desert',\n 'design',\n 'desk',\n 'despair',\n 'destroy',\n 'detail',\n 'detect',\n 'develop',\n 'device',\n 'devote',\n 'diagram',\n 'dial',\n 'diamond',\n 'diary',\n 'dice',\n 'diesel',\n 'diet',\n 'differ',\n 'digital',\n 'dignity',\n 'dilemma',\n 'dinner',\n 'dinosaur',\n 'direct',\n 'dirt',\n 'disagree',\n 'discover',\n 'disease',\n 'dish',\n 'dismiss',\n 'disorder',\n 'display',\n 'distance',\n 'divert',\n 'divide',\n 'divorce',\n 'dizzy',\n 'doctor',\n 'document',\n 'dog',\n 'doll',\n 'dolphin',\n 'domain',\n 'donate',\n 'donkey',\n 'donor',\n 'door',\n 'dose',\n 'double',\n 'dove',\n 'draft',\n 'dragon',\n 'drama',\n 'drastic',\n 'draw',\n 'dream',\n 'dress',\n 'drift',\n 'drill',\n 'drink',\n 'drip',\n 'drive',\n 'drop',\n 'drum',\n 'dry',\n 'duck',\n 'dumb',\n 'dune',\n 'during',\n 'dust',\n 'dutch',\n 'duty',\n 'dwarf',\n 'dynamic',\n 'eager',\n 'eagle',\n 'early',\n 'earn',\n 'earth',\n 'easily',\n 'east',\n 'easy',\n 'echo',\n 'ecology',\n 'economy',\n 'edge',\n 'edit',\n 'educate',\n 'effort',\n 'egg',\n 'eight',\n 'either',\n 'elbow',\n 'elder',\n 'electric',\n 'elegant',\n 'element',\n 'elephant',\n 'elevator',\n 'elite',\n 'else',\n 'embark',\n 'embody',\n 'embrace',\n 'emerge',\n 'emotion',\n 'employ',\n 'empower',\n 'empty',\n 'enable',\n 'enact',\n 'end',\n 'endless',\n 'endorse',\n 'enemy',\n 'energy',\n 'enforce',\n 'engage',\n 'engine',\n 'enhance',\n 'enjoy',\n 'enlist',\n 'enough',\n 'enrich',\n 'enroll',\n 'ensure',\n 'enter',\n 'entire',\n 'entry',\n 'envelope',\n 'episode',\n 'equal',\n 'equip',\n 'era',\n 'erase',\n 'erode',\n 'erosion',\n 'error',\n 'erupt',\n 'escape',\n 'essay',\n 'essence',\n 'estate',\n 'eternal',\n 'ethics',\n 'evidence',\n 'evil',\n 'evoke',\n 'evolve',\n 'exact',\n 'example',\n 'excess',\n 'exchange',\n 'excite',\n 'exclude',\n 'excuse',\n 'execute',\n 'exercise',\n 'exhaust',\n 'exhibit',\n 'exile',\n 'exist',\n 'exit',\n 'exotic',\n 'expand',\n 'expect',\n 'expire',\n 'explain',\n 'expose',\n 'express',\n 'extend',\n 'extra',\n 'eye',\n 'eyebrow',\n 'fabric',\n 'face',\n 'faculty',\n 'fade',\n 'faint',\n 'faith',\n 'fall',\n 'false',\n 'fame',\n 'family',\n 'famous',\n 'fan',\n 'fancy',\n 'fantasy',\n 'farm',\n 'fashion',\n 'fat',\n 'fatal',\n 'father',\n 'fatigue',\n 'fault',\n 'favorite',\n 'feature',\n 'february',\n 'federal',\n 'fee',\n 'feed',\n 'feel',\n 'female',\n 'fence',\n 'festival',\n 'fetch',\n 'fever',\n 'few',\n 'fiber',\n 'fiction',\n 'field',\n 'figure',\n 'file',\n 'film',\n 'filter',\n 'final',\n 'find',\n 'fine',\n 'finger',\n 'finish',\n 'fire',\n 'firm',\n 'first',\n 'fiscal',\n 'fish',\n 'fit',\n 'fitness',\n 'fix',\n 'flag',\n 'flame',\n 'flash',\n 'flat',\n 'flavor',\n 'flee',\n 'flight',\n 'flip',\n 'float',\n 'flock',\n 'floor',\n 'flower',\n 'fluid',\n 'flush',\n 'fly',\n 'foam',\n 'focus',\n 'fog',\n 'foil',\n 'fold',\n 'follow',\n 'food',\n 'foot',\n 'force',\n 'forest',\n 'forget',\n 'fork',\n 'fortune',\n 'forum',\n 'forward',\n 'fossil',\n 'foster',\n 'found',\n 'fox',\n 'fragile',\n 'frame',\n 'frequent',\n 'fresh',\n 'friend',\n 'fringe',\n 'frog',\n 'front',\n 'frost',\n 'frown',\n 'frozen',\n 'fruit',\n 'fuel',\n 'fun',\n 'funny',\n 'furnace',\n 'fury',\n 'future',\n 'gadget',\n 'gain',\n 'galaxy',\n 'gallery',\n 'game',\n 'gap',\n 'garage',\n 'garbage',\n 'garden',\n 'garlic',\n 'garment',\n 'gas',\n 'gasp',\n 'gate',\n 'gather',\n 'gauge',\n 'gaze',\n 'general',\n 'genius',\n 'genre',\n 'gentle',\n 'genuine',\n 'gesture',\n 'ghost',\n 'giant',\n 'gift',\n 'giggle',\n 'ginger',\n 'giraffe',\n 'girl',\n 'give',\n 'glad',\n 'glance',\n 'glare',\n 'glass',\n 'glide',\n 'glimpse',\n 'globe',\n 'gloom',\n 'glory',\n 'glove',\n 'glow',\n 'glue',\n 'goat',\n 'goddess',\n 'gold',\n 'good',\n 'goose',\n 'gorilla',\n 'gospel',\n 'gossip',\n 'govern',\n 'gown',\n 'grab',\n 'grace',\n 'grain',\n 'grant',\n 'grape',\n 'grass',\n 'gravity',\n 'great',\n 'green',\n 'grid',\n 'grief',\n 'grit',\n 'grocery',\n 'group',\n 'grow',\n 'grunt',\n 'guard',\n 'guess',\n 'guide',\n 'guilt',\n 'guitar',\n 'gun',\n 'gym',\n 'habit',\n 'hair',\n 'half',\n 'hammer',\n 'hamster',\n 'hand',\n 'happy',\n 'harbor',\n 'hard',\n 'harsh',\n 'harvest',\n 'hat',\n 'have',\n 'hawk',\n 'hazard',\n 'head',\n 'health',\n 'heart',\n 'heavy',\n 'hedgehog',\n 'height',\n 'hello',\n 'helmet',\n 'help',\n 'hen',\n 'hero',\n 'hidden',\n 'high',\n 'hill',\n 'hint',\n 'hip',\n 'hire',\n 'history',\n 'hobby',\n 'hockey',\n 'hold',\n 'hole',\n 'holiday',\n 'hollow',\n 'home',\n 'honey',\n 'hood',\n 'hope',\n 'horn',\n 'horror',\n 'horse',\n 'hospital',\n 'host',\n 'hotel',\n 'hour',\n 'hover',\n 'hub',\n 'huge',\n 'human',\n 'humble',\n 'humor',\n 'hundred',\n 'hungry',\n 'hunt',\n 'hurdle',\n 'hurry',\n 'hurt',\n 'husband',\n 'hybrid',\n 'ice',\n 'icon',\n 'idea',\n 'identify',\n 'idle',\n 'ignore',\n 'ill',\n 'illegal',\n 'illness',\n 'image',\n 'imitate',\n 'immense',\n 'immune',\n 'impact',\n 'impose',\n 'improve',\n 'impulse',\n 'inch',\n 'include',\n 'income',\n 'increase',\n 'index',\n 'indicate',\n 'indoor',\n 'industry',\n 'infant',\n 'inflict',\n 'inform',\n 'inhale',\n 'inherit',\n 'initial',\n 'inject',\n 'injury',\n 'inmate',\n 'inner',\n 'innocent',\n 'input',\n 'inquiry',\n 'insane',\n 'insect',\n 'inside',\n 'inspire',\n 'install',\n 'intact',\n 'interest',\n 'into',\n 'invest',\n 'invite',\n 'involve',\n 'iron',\n 'island',\n 'isolate',\n 'issue',\n 'item',\n 'ivory',\n 'jacket',\n 'jaguar',\n 'jar',\n 'jazz',\n 'jealous',\n 'jeans',\n 'jelly',\n 'jewel',\n 'job',\n 'join',\n 'joke',\n 'journey',\n 'joy',\n 'judge',\n 'juice',\n 'jump',\n 'jungle',\n 'junior',\n 'junk',\n 'just',\n 'kangaroo',\n 'keen',\n 'keep',\n 'ketchup',\n 'key',\n 'kick',\n 'kid',\n 'kidney',\n 'kind',\n 'kingdom',\n 'kiss',\n 'kit',\n 'kitchen',\n 'kite',\n 'kitten',\n 'kiwi',\n 'knee',\n 'knife',\n 'knock',\n 'know',\n 'lab',\n 'label',\n 'labor',\n 'ladder',\n 'lady',\n 'lake',\n 'lamp',\n 'language',\n 'laptop',\n 'large',\n 'later',\n 'latin',\n 'laugh',\n 'laundry',\n 'lava',\n 'law',\n 'lawn',\n 'lawsuit',\n 'layer',\n 'lazy',\n 'leader',\n 'leaf',\n 'learn',\n 'leave',\n 'lecture',\n 'left',\n 'leg',\n 'legal',\n 'legend',\n 'leisure',\n 'lemon',\n 'lend',\n 'length',\n 'lens',\n 'leopard',\n 'lesson',\n 'letter',\n 'level',\n 'liar',\n 'liberty',\n 'library',\n 'license',\n 'life',\n 'lift',\n 'light',\n 'like',\n 'limb',\n 'limit',\n 'link',\n 'lion',\n 'liquid',\n 'list',\n 'little',\n 'live',\n 'lizard',\n 'load',\n 'loan',\n 'lobster',\n 'local',\n 'lock',\n 'logic',\n 'lonely',\n 'long',\n 'loop',\n 'lottery',\n 'loud',\n 'lounge',\n 'love',\n 'loyal',\n 'lucky',\n 'luggage',\n 'lumber',\n 'lunar',\n 'lunch',\n 'luxury',\n 'lyrics',\n 'machine',\n 'mad',\n 'magic',\n 'magnet',\n 'maid',\n 'mail',\n 'main',\n 'major',\n 'make',\n 'mammal',\n 'man',\n 'manage',\n 'mandate',\n 'mango',\n 'mansion',\n 'manual',\n 'maple',\n 'marble',\n 'march',\n 'margin',\n 'marine',\n 'market',\n 'marriage',\n 'mask',\n 'mass',\n 'master',\n 'match',\n 'material',\n 'math',\n 'matrix',\n 'matter',\n 'maximum',\n 'maze',\n 'meadow',\n 'mean',\n 'measure',\n 'meat',\n 'mechanic',\n 'medal',\n 'media',\n 'melody',\n 'melt',\n 'member',\n 'memory',\n 'mention',\n 'menu',\n 'mercy',\n 'merge',\n 'merit',\n 'merry',\n 'mesh',\n 'message',\n 'metal',\n 'method',\n 'middle',\n 'midnight',\n 'milk',\n 'million',\n 'mimic',\n 'mind',\n 'minimum',\n 'minor',\n 'minute',\n 'miracle',\n 'mirror',\n 'misery',\n 'miss',\n 'mistake',\n 'mix',\n 'mixed',\n 'mixture',\n 'mobile',\n 'model',\n 'modify',\n 'mom',\n 'moment',\n 'monitor',\n 'monkey',\n 'monster',\n 'month',\n 'moon',\n 'moral',\n 'more',\n 'morning',\n 'mosquito',\n 'mother',\n 'motion',\n 'motor',\n 'mountain',\n 'mouse',\n 'move',\n 'movie',\n 'much',\n 'muffin',\n 'mule',\n 'multiply',\n 'muscle',\n 'museum',\n 'mushroom',\n 'music',\n 'must',\n 'mutual',\n 'myself',\n 'mystery',\n 'myth',\n 'naive',\n 'name',\n 'napkin',\n 'narrow',\n 'nasty',\n 'nation',\n 'nature',\n 'near',\n 'neck',\n 'need',\n 'negative',\n 'neglect',\n 'neither',\n 'nephew',\n 'nerve',\n 'nest',\n 'net',\n 'network',\n 'neutral',\n 'never',\n 'news',\n 'next',\n 'nice',\n 'night',\n 'noble',\n 'noise',\n 'nominee',\n 'noodle',\n 'normal',\n 'north',\n 'nose',\n 'notable',\n 'note',\n 'nothing',\n 'notice',\n 'novel',\n 'now',\n 'nuclear',\n 'number',\n 'nurse',\n 'nut',\n 'oak',\n 'obey',\n 'object',\n 'oblige',\n 'obscure',\n 'observe',\n 'obtain',\n 'obvious',\n 'occur',\n 'ocean',\n 'october',\n 'odor',\n 'off',\n 'offer',\n 'office',\n 'often',\n 'oil',\n 'okay',\n 'old',\n 'olive',\n 'olympic',\n 'omit',\n 'once',\n 'one',\n 'onion',\n 'online',\n 'only',\n 'open',\n 'opera',\n 'opinion',\n 'oppose',\n 'option',\n 'orange',\n 'orbit',\n 'orchard',\n 'order',\n 'ordinary',\n 'organ',\n 'orient',\n 'original',\n 'orphan',\n 'ostrich',\n 'other',\n 'outdoor',\n 'outer',\n 'output',\n 'outside',\n 'oval',\n 'oven',\n 'over',\n 'own',\n 'owner',\n 'oxygen',\n 'oyster',\n 'ozone',\n 'pact',\n 'paddle',\n 'page',\n 'pair',\n 'palace',\n 'palm',\n 'panda',\n 'panel',\n 'panic',\n 'panther',\n 'paper',\n 'parade',\n 'parent',\n 'park',\n 'parrot',\n 'party',\n 'pass',\n 'patch',\n 'path',\n 'patient',\n 'patrol',\n 'pattern',\n 'pause',\n 'pave',\n 'payment',\n 'peace',\n 'peanut',\n 'pear',\n 'peasant',\n 'pelican',\n 'pen',\n 'penalty',\n 'pencil',\n 'people',\n 'pepper',\n 'perfect',\n 'permit',\n 'person',\n 'pet',\n 'phone',\n 'photo',\n 'phrase',\n 'physical',\n 'piano',\n 'picnic',\n 'picture',\n 'piece',\n 'pig',\n 'pigeon',\n 'pill',\n 'pilot',\n 'pink',\n 'pioneer',\n 'pipe',\n 'pistol',\n 'pitch',\n 'pizza',\n 'place',\n 'planet',\n 'plastic',\n 'plate',\n 'play',\n 'please',\n 'pledge',\n 'pluck',\n 'plug',\n 'plunge',\n 'poem',\n 'poet',\n 'point',\n 'polar',\n 'pole',\n 'police',\n 'pond',\n 'pony',\n 'pool',\n 'popular',\n 'portion',\n 'position',\n 'possible',\n 'post',\n 'potato',\n 'pottery',\n 'poverty',\n 'powder',\n 'power',\n 'practice',\n 'praise',\n 'predict',\n 'prefer',\n 'prepare',\n 'present',\n 'pretty',\n 'prevent',\n 'price',\n 'pride',\n 'primary',\n 'print',\n 'priority',\n 'prison',\n 'private',\n 'prize',\n 'problem',\n 'process',\n 'produce',\n 'profit',\n 'program',\n 'project',\n 'promote',\n 'proof',\n 'property',\n 'prosper',\n 'protect',\n 'proud',\n 'provide',\n 'public',\n 'pudding',\n 'pull',\n 'pulp',\n 'pulse',\n 'pumpkin',\n 'punch',\n 'pupil',\n 'puppy',\n 'purchase',\n 'purity',\n 'purpose',\n 'purse',\n 'push',\n 'put',\n 'puzzle',\n 'pyramid',\n 'quality',\n 'quantum',\n 'quarter',\n 'question',\n 'quick',\n 'quit',\n 'quiz',\n 'quote',\n 'rabbit',\n 'raccoon',\n 'race',\n 'rack',\n 'radar',\n 'radio',\n 'rail',\n 'rain',\n 'raise',\n 'rally',\n 'ramp',\n 'ranch',\n 'random',\n 'range',\n 'rapid',\n 'rare',\n 'rate',\n 'rather',\n 'raven',\n 'raw',\n 'razor',\n 'ready',\n 'real',\n 'reason',\n 'rebel',\n 'rebuild',\n 'recall',\n 'receive',\n 'recipe',\n 'record',\n 'recycle',\n 'reduce',\n 'reflect',\n 'reform',\n 'refuse',\n 'region',\n 'regret',\n 'regular',\n 'reject',\n 'relax',\n 'release',\n 'relief',\n 'rely',\n 'remain',\n 'remember',\n 'remind',\n 'remove',\n 'render',\n 'renew',\n 'rent',\n 'reopen',\n 'repair',\n 'repeat',\n 'replace',\n 'report',\n 'require',\n 'rescue',\n 'resemble',\n 'resist',\n 'resource',\n 'response',\n 'result',\n 'retire',\n 'retreat',\n 'return',\n 'reunion',\n 'reveal',\n 'review',\n 'reward',\n 'rhythm',\n 'rib',\n 'ribbon',\n 'rice',\n 'rich',\n 'ride',\n 'ridge',\n 'rifle',\n 'right',\n 'rigid',\n 'ring',\n 'riot',\n 'ripple',\n 'risk',\n 'ritual',\n 'rival',\n 'river',\n 'road',\n 'roast',\n 'robot',\n 'robust',\n 'rocket',\n 'romance',\n 'roof',\n 'rookie',\n 'room',\n 'rose',\n 'rotate',\n 'rough',\n 'round',\n 'route',\n 'royal',\n 'rubber',\n 'rude',\n 'rug',\n 'rule',\n 'run',\n 'runway',\n 'rural',\n 'sad',\n 'saddle',\n 'sadness',\n 'safe',\n 'sail',\n 'salad',\n 'salmon',\n 'salon',\n 'salt',\n 'salute',\n 'same',\n 'sample',\n 'sand',\n 'satisfy',\n 'satoshi',\n 'sauce',\n 'sausage',\n 'save',\n 'say',\n 'scale',\n 'scan',\n 'scare',\n 'scatter',\n 'scene',\n 'scheme',\n 'school',\n 'science',\n 'scissors',\n 'scorpion',\n 'scout',\n 'scrap',\n 'screen',\n 'script',\n 'scrub',\n 'sea',\n 'search',\n 'season',\n 'seat',\n 'second',\n 'secret',\n 'section',\n 'security',\n 'seed',\n 'seek',\n 'segment',\n 'select',\n 'sell',\n 'seminar',\n 'senior',\n 'sense',\n 'sentence',\n 'series',\n 'service',\n 'session',\n 'settle',\n 'setup',\n 'seven',\n 'shadow',\n 'shaft',\n 'shallow',\n 'share',\n 'shed',\n 'shell',\n 'sheriff',\n 'shield',\n 'shift',\n 'shine',\n 'ship',\n 'shiver',\n 'shock',\n 'shoe',\n 'shoot',\n 'shop',\n 'short',\n 'shoulder',\n 'shove',\n 'shrimp',\n 'shrug',\n 'shuffle',\n 'shy',\n 'sibling',\n 'sick',\n 'side',\n 'siege',\n 'sight',\n 'sign',\n 'silent',\n 'silk',\n 'silly',\n 'silver',\n 'similar',\n 'simple',\n 'since',\n 'sing',\n 'siren',\n 'sister',\n 'situate',\n 'six',\n 'size',\n 'skate',\n 'sketch',\n 'ski',\n 'skill',\n 'skin',\n 'skirt',\n 'skull',\n 'slab',\n 'slam',\n 'sleep',\n 'slender',\n 'slice',\n 'slide',\n 'slight',\n 'slim',\n 'slogan',\n 'slot',\n 'slow',\n 'slush',\n 'small',\n 'smart',\n 'smile',\n 'smoke',\n 'smooth',\n 'snack',\n 'snake',\n 'snap',\n 'sniff',\n 'snow',\n 'soap',\n 'soccer',\n 'social',\n 'sock',\n 'soda',\n 'soft',\n 'solar',\n 'soldier',\n 'solid',\n 'solution',\n 'solve',\n 'someone',\n 'song',\n 'soon',\n 'sorry',\n 'sort',\n 'soul',\n 'sound',\n 'soup',\n 'source',\n 'south',\n 'space',\n 'spare',\n 'spatial',\n 'spawn',\n 'speak',\n 'special',\n 'speed',\n 'spell',\n 'spend',\n 'sphere',\n 'spice',\n 'spider',\n 'spike',\n 'spin',\n 'spirit',\n 'split',\n 'spoil',\n 'sponsor',\n 'spoon',\n 'sport',\n 'spot',\n 'spray',\n 'spread',\n 'spring',\n 'spy',\n 'square',\n 'squeeze',\n 'squirrel',\n 'stable',\n 'stadium',\n 'staff',\n 'stage',\n 'stairs',\n 'stamp',\n 'stand',\n 'start',\n 'state',\n 'stay',\n 'steak',\n 'steel',\n 'stem',\n 'step',\n 'stereo',\n 'stick',\n 'still',\n 'sting',\n 'stock',\n 'stomach',\n 'stone',\n 'stool',\n 'story',\n 'stove',\n 'strategy',\n 'street',\n 'strike',\n 'strong',\n 'struggle',\n 'student',\n 'stuff',\n 'stumble',\n 'style',\n 'subject',\n 'submit',\n 'subway',\n 'success',\n 'such',\n 'sudden',\n 'suffer',\n 'sugar',\n 'suggest',\n 'suit',\n 'summer',\n 'sun',\n 'sunny',\n 'sunset',\n 'super',\n 'supply',\n 'supreme',\n 'sure',\n 'surface',\n 'surge',\n 'surprise',\n 'surround',\n 'survey',\n 'suspect',\n 'sustain',\n 'swallow',\n 'swamp',\n 'swap',\n 'swarm',\n 'swear',\n 'sweet',\n 'swift',\n 'swim',\n 'swing',\n 'switch',\n 'sword',\n 'symbol',\n 'symptom',\n 'syrup',\n 'system',\n 'table',\n 'tackle',\n 'tag',\n 'tail',\n 'talent',\n 'talk',\n 'tank',\n 'tape',\n 'target',\n 'task',\n 'taste',\n 'tattoo',\n 'taxi',\n 'teach',\n 'team',\n 'tell',\n 'ten',\n 'tenant',\n 'tennis',\n 'tent',\n 'term',\n 'test',\n 'text',\n 'thank',\n 'that',\n 'theme',\n 'then',\n 'theory',\n 'there',\n 'they',\n 'thing',\n 'this',\n 'thought',\n 'three',\n 'thrive',\n 'throw',\n 'thumb',\n 'thunder',\n 'ticket',\n 'tide',\n 'tiger',\n 'tilt',\n 'timber',\n 'time',\n 'tiny',\n 'tip',\n 'tired',\n 'tissue',\n 'title',\n 'toast',\n 'tobacco',\n 'today',\n 'toddler',\n 'toe',\n 'together',\n 'toilet',\n 'token',\n 'tomato',\n 'tomorrow',\n 'tone',\n 'tongue',\n 'tonight',\n 'tool',\n 'tooth',\n 'top',\n 'topic',\n 'topple',\n 'torch',\n 'tornado',\n 'tortoise',\n 'toss',\n 'total',\n 'tourist',\n 'toward',\n 'tower',\n 'town',\n 'toy',\n 'track',\n 'trade',\n 'traffic',\n 'tragic',\n 'train',\n 'transfer',\n 'trap',\n 'trash',\n 'travel',\n 'tray',\n 'treat',\n 'tree',\n 'trend',\n 'trial',\n 'tribe',\n 'trick',\n 'trigger',\n 'trim',\n 'trip',\n 'trophy',\n 'trouble',\n 'truck',\n 'true',\n 'truly',\n 'trumpet',\n 'trust',\n 'truth',\n 'try',\n 'tube',\n 'tuition',\n 'tumble',\n 'tuna',\n 'tunnel',\n 'turkey',\n 'turn',\n 'turtle',\n 'twelve',\n 'twenty',\n 'twice',\n 'twin',\n 'twist',\n 'two',\n 'type',\n 'typical',\n 'ugly',\n 'umbrella',\n 'unable',\n 'unaware',\n 'uncle',\n 'uncover',\n 'under',\n 'undo',\n 'unfair',\n 'unfold',\n 'unhappy',\n 'uniform',\n 'unique',\n 'unit',\n 'universe',\n 'unknown',\n 'unlock',\n 'until',\n 'unusual',\n 'unveil',\n 'update',\n 'upgrade',\n 'uphold',\n 'upon',\n 'upper',\n 'upset',\n 'urban',\n 'urge',\n 'usage',\n 'use',\n 'used',\n 'useful',\n 'useless',\n 'usual',\n 'utility',\n 'vacant',\n 'vacuum',\n 'vague',\n 'valid',\n 'valley',\n 'valve',\n 'van',\n 'vanish',\n 'vapor',\n 'various',\n 'vast',\n 'vault',\n 'vehicle',\n 'velvet',\n 'vendor',\n 'venture',\n 'venue',\n 'verb',\n 'verify',\n 'version',\n 'very',\n 'vessel',\n 'veteran',\n 'viable',\n 'vibrant',\n 'vicious',\n 'victory',\n 'video',\n 'view',\n 'village',\n 'vintage',\n 'violin',\n 'virtual',\n 'virus',\n 'visa',\n 'visit',\n 'visual',\n 'vital',\n 'vivid',\n 'vocal',\n 'voice',\n 'void',\n 'volcano',\n 'volume',\n 'vote',\n 'voyage',\n 'wage',\n 'wagon',\n 'wait',\n 'walk',\n 'wall',\n 'walnut',\n 'want',\n 'warfare',\n 'warm',\n 'warrior',\n 'wash',\n 'wasp',\n 'waste',\n 'water',\n 'wave',\n 'way',\n 'wealth',\n 'weapon',\n 'wear',\n 'weasel',\n 'weather',\n 'web',\n 'wedding',\n 'weekend',\n 'weird',\n 'welcome',\n 'west',\n 'wet',\n 'whale',\n 'what',\n 'wheat',\n 'wheel',\n 'when',\n 'where',\n 'whip',\n 'whisper',\n 'wide',\n 'width',\n 'wife',\n 'wild',\n 'will',\n 'win',\n 'window',\n 'wine',\n 'wing',\n 'wink',\n 'winner',\n 'winter',\n 'wire',\n 'wisdom',\n 'wise',\n 'wish',\n 'witness',\n 'wolf',\n 'woman',\n 'wonder',\n 'wood',\n 'wool',\n 'word',\n 'work',\n 'world',\n 'worry',\n 'worth',\n 'wrap',\n 'wreck',\n 'wrestle',\n 'wrist',\n 'write',\n 'wrong',\n 'yard',\n 'year',\n 'yellow',\n 'you',\n 'young',\n 'youth',\n 'zebra',\n 'zero',\n 'zone',\n 'zoo',\n];\nexport default english;\n//# sourceMappingURL=english.js.map","/* eslint-disable no-bitwise */\nimport english from './wordlists/english.js';\nimport * as nacl from '../nacl/naclWrappers.js';\nimport { Address } from '../encoding/address.js';\nexport const FAIL_TO_DECODE_MNEMONIC_ERROR_MSG = 'failed to decode mnemonic';\nexport const NOT_IN_WORDS_LIST_ERROR_MSG = 'the mnemonic contains a word that is not in the wordlist';\n// https://stackoverflow.com/a/51452614\nfunction toUint11Array(buffer8) {\n const buffer11 = [];\n let acc = 0;\n let accBits = 0;\n function add(octet) {\n acc |= octet << accBits;\n accBits += 8;\n if (accBits >= 11) {\n buffer11.push(acc & 0x7ff);\n acc >>= 11;\n accBits -= 11;\n }\n }\n function flush() {\n if (accBits) {\n buffer11.push(acc);\n }\n }\n buffer8.forEach(add);\n flush();\n return buffer11;\n}\nfunction applyWords(nums) {\n return nums.map((n) => english[n]);\n}\nfunction computeChecksum(seed) {\n const hashBuffer = nacl.genericHash(seed);\n const uint11Hash = toUint11Array(hashBuffer);\n const words = applyWords(uint11Hash);\n return words[0];\n}\n/**\n * mnemonicFromSeed converts a 32-byte key into a 25 word mnemonic. The generated mnemonic includes a checksum.\n * Each word in the mnemonic represents 11 bits of data, and the last 11 bits are reserved for the checksum.\n * @param seed - 32 bytes long seed\n * @returns 25 words mnemonic\n */\nexport function mnemonicFromSeed(seed) {\n // Sanity length check\n if (seed.length !== nacl.SEED_BTYES_LENGTH) {\n throw new RangeError(`Seed length must be ${nacl.SEED_BTYES_LENGTH}`);\n }\n const uint11Array = toUint11Array(seed);\n const words = applyWords(uint11Array);\n const checksumWord = computeChecksum(seed);\n return `${words.join(' ')} ${checksumWord}`;\n}\n// from Uint11Array\n// https://stackoverflow.com/a/51452614\nfunction toUint8Array(buffer11) {\n const buffer8 = [];\n let acc = 0;\n let accBits = 0;\n function add(ui11) {\n acc |= ui11 << accBits;\n accBits += 11;\n while (accBits >= 8) {\n buffer8.push(acc & 0xff);\n acc >>= 8;\n accBits -= 8;\n }\n }\n function flush() {\n if (accBits) {\n buffer8.push(acc);\n }\n }\n buffer11.forEach(add);\n flush();\n return new Uint8Array(buffer8);\n}\n/**\n * seedFromMnemonic converts a mnemonic generated using this library into the source key used to create it.\n * It returns an error if the passed mnemonic has an incorrect checksum, if the number of words is unexpected, or if one\n * of the passed words is not found in the words list.\n * @param mnemonic - 25 words mnemonic\n * @returns 32 bytes long seed\n */\nexport function seedFromMnemonic(mnemonic) {\n const words = mnemonic.split(' ');\n const key = words.slice(0, 24);\n // Check that all words are in list\n for (const w of key) {\n if (english.indexOf(w) === -1)\n throw new Error(NOT_IN_WORDS_LIST_ERROR_MSG);\n }\n const checksum = words[words.length - 1];\n const uint11Array = key.map((word) => english.indexOf(word));\n // Convert the key to uint8Array\n let uint8Array = toUint8Array(uint11Array);\n // We need to chop the last byte -\n // the short explanation - Since 256 is not divisible by 11, we have an extra 0x0 byte.\n // The longer explanation - When splitting the 256 bits to chunks of 11, we get 23 words and a left over of 3 bits.\n // This left gets padded with another 8 bits to the create the 24th word.\n // While converting back to byte array, our new 264 bits array is divisible by 8 but the last byte is just the padding.\n // check that we have 33 bytes long array as expected\n if (uint8Array.length !== 33)\n throw new Error(FAIL_TO_DECODE_MNEMONIC_ERROR_MSG);\n // check that the last byte is actually 0x0\n if (uint8Array[uint8Array.length - 1] !== 0x0)\n throw new Error(FAIL_TO_DECODE_MNEMONIC_ERROR_MSG);\n // chop it !\n uint8Array = uint8Array.slice(0, uint8Array.length - 1);\n // compute checksum\n const cs = computeChecksum(uint8Array);\n // success!\n if (cs === checksum)\n return uint8Array;\n throw new Error(FAIL_TO_DECODE_MNEMONIC_ERROR_MSG);\n}\n/**\n * mnemonicToSecretKey takes a mnemonic string and returns the corresponding Algorand address and its secret key.\n * @param mn - 25 words Algorand mnemonic\n * @throws error if fails to decode the mnemonic\n */\nexport function mnemonicToSecretKey(mn) {\n const seed = seedFromMnemonic(mn);\n const keys = nacl.keyPairFromSeed(seed);\n const addr = new Address(keys.publicKey);\n return { addr, sk: keys.secretKey };\n}\n/**\n * secretKeyToMnemonic takes an Algorand secret key and returns the corresponding mnemonic.\n * @param sk - Algorand secret key\n * @returns Secret key's associated mnemonic\n */\nexport function secretKeyToMnemonic(sk) {\n // get the seed from the sk\n const seed = sk.slice(0, nacl.SEED_BTYES_LENGTH);\n return mnemonicFromSeed(seed);\n}\n/**\n * mnemonicToMasterDerivationKey takes a mnemonic string and returns the corresponding master derivation key.\n * @param mn - 25 words Algorand mnemonic\n * @returns Uint8Array\n * @throws error if fails to decode the mnemonic\n */\nexport function mnemonicToMasterDerivationKey(mn) {\n return seedFromMnemonic(mn);\n}\n/**\n * masterDerivationKeyToMnemonic takes a master derivation key and returns the corresponding mnemonic.\n * @param mdk - Uint8Array\n * @returns string mnemonic\n */\nexport function masterDerivationKeyToMnemonic(mdk) {\n return mnemonicFromSeed(mdk);\n}\n//# sourceMappingURL=mnemonic.js.map","import {\n FloatingFocusManager,\n FloatingOverlay,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react'\nimport { useWallet } from '@txnlab/use-wallet-react'\nimport { secretKeyToMnemonic } from 'algosdk'\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\ntype DialogStep = 'warning' | 'loading' | 'display' | 'error'\n\nconst DEFAULT_DISPLAY_TIMEOUT = 120\n\nexport interface ExportKeyDialogProps {\n onClose: () => void\n displayTimeout?: number\n}\n\nexport function ExportKeyDialog({\n onClose,\n displayTimeout = DEFAULT_DISPLAY_TIMEOUT,\n}: ExportKeyDialogProps) {\n const { withPrivateKey } = useWallet()\n\n const [step, setStep] = useState<DialogStep>('warning')\n const [mnemonicWords, setMnemonicWords] = useState<string[] | null>(null)\n const [timeRemaining, setTimeRemaining] = useState(displayTimeout)\n const [hasCopied, setHasCopied] = useState(false)\n const [errorMessage, setErrorMessage] = useState<string | null>(null)\n const [animationState, setAnimationState] = useState<\n 'starting' | 'entered' | 'exiting' | null\n >('starting')\n\n const timerRef = useRef<ReturnType<typeof setInterval> | null>(null)\n\n const { refs, context } = useFloating({\n open: true,\n onOpenChange: (open) => {\n if (!open) {\n handleClose()\n }\n },\n })\n\n const dismiss = useDismiss(context, { outsidePressEvent: 'mousedown' })\n const role = useRole(context, { role: 'dialog' })\n const { getFloatingProps } = useInteractions([dismiss, role])\n\n // Entry animation\n useEffect(() => {\n requestAnimationFrame(() => {\n setAnimationState('entered')\n })\n }, [])\n\n const clearSensitiveData = useCallback(() => {\n setMnemonicWords(null)\n if (hasCopied) {\n navigator.clipboard.writeText('').catch(() => {})\n }\n if (timerRef.current) {\n clearInterval(timerRef.current)\n timerRef.current = null\n }\n }, [hasCopied])\n\n const handleClose = useCallback(() => {\n clearSensitiveData()\n setAnimationState('exiting')\n setTimeout(() => {\n onClose()\n }, 150)\n }, [clearSensitiveData, onClose])\n\n // Countdown timer\n useEffect(() => {\n if (step !== 'display' || !mnemonicWords) return\n\n timerRef.current = setInterval(() => {\n setTimeRemaining((prev) => {\n if (prev <= 1) {\n handleClose()\n return 0\n }\n return prev - 1\n })\n }, 1000)\n\n return () => {\n if (timerRef.current) {\n clearInterval(timerRef.current)\n timerRef.current = null\n }\n }\n }, [step, mnemonicWords, handleClose])\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n setMnemonicWords(null)\n if (timerRef.current) {\n clearInterval(timerRef.current)\n }\n }\n }, [])\n\n const handleReveal = async () => {\n setStep('loading')\n try {\n await withPrivateKey(async (secretKey) => {\n const mnemonic = secretKeyToMnemonic(secretKey)\n setMnemonicWords(mnemonic.split(' '))\n setStep('display')\n })\n } catch (error) {\n setErrorMessage(\n error instanceof Error ? error.message : 'Failed to export key',\n )\n setStep('error')\n }\n }\n\n const handleCopy = () => {\n if (!mnemonicWords) return\n navigator.clipboard.writeText(mnemonicWords.join(' '))\n setHasCopied(true)\n setTimeout(() => setHasCopied(false), 2000)\n }\n\n const handleRetry = () => {\n setErrorMessage(null)\n setStep('warning')\n }\n\n const formatTime = (seconds: number): string => {\n const mins = Math.floor(seconds / 60)\n const secs = seconds % 60\n return `${mins}:${secs.toString().padStart(2, '0')}`\n }\n\n // Rendered inside PluginDialogRenderer's FloatingPortal,\n // so no FloatingPortal wrapper here\n return (\n <FloatingOverlay\n className=\"grid place-items-center px-4 z-50 transition-opacity duration-150 ease-in-out bg-[var(--wui-color-overlay)] data-[state=starting]:opacity-0 data-[state=exiting]:opacity-0 data-[state=entered]:opacity-100\"\n data-state={animationState}\n lockScroll\n >\n <FloatingFocusManager context={context} modal={true}>\n <div\n ref={refs.setFloating}\n {...getFloatingProps()}\n role=\"dialog\"\n aria-label={\n step === 'display' ? 'Recovery Phrase' : 'Export Recovery Phrase'\n }\n data-state={animationState}\n className=\"w-full max-w-sm rounded-3xl bg-[var(--wui-color-bg)] shadow-xl transform transition-all duration-150 ease-in-out data-[state=starting]:opacity-0 data-[state=starting]:scale-90 data-[state=exiting]:opacity-0 data-[state=exiting]:scale-90 data-[state=entered]:opacity-100 data-[state=entered]:scale-100\"\n style={{ marginTop: '-0.5rem' }}\n >\n {step === 'warning' && (\n <WarningStep onReveal={handleReveal} onClose={handleClose} />\n )}\n\n {step === 'loading' && <LoadingStep />}\n\n {step === 'display' && mnemonicWords && (\n <DisplayStep\n words={mnemonicWords}\n timeRemaining={timeRemaining}\n formatTime={formatTime}\n hasCopied={hasCopied}\n onCopy={handleCopy}\n onClose={handleClose}\n />\n )}\n\n {step === 'error' && (\n <ErrorStep\n message={errorMessage}\n onRetry={handleRetry}\n onClose={handleClose}\n />\n )}\n </div>\n </FloatingFocusManager>\n </FloatingOverlay>\n )\n}\n\nfunction WarningStep({\n onReveal,\n onClose,\n}: {\n onReveal: () => void\n onClose: () => void\n}) {\n return (\n <>\n {/* Header */}\n <div className=\"relative flex items-center px-6 pt-5 pb-4\">\n <h2 className=\"text-xl font-bold text-[var(--wui-color-text)] wallet-custom-font\">\n Export Recovery Phrase\n </h2>\n <button\n onClick={onClose}\n className=\"absolute right-4 rounded-full bg-[var(--wui-color-bg-tertiary)] p-2 text-[var(--wui-color-text-secondary)] hover:brightness-90 transition-all\"\n aria-label=\"Close dialog\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </button>\n </div>\n\n {/* Warning content */}\n <div className=\"px-6 pb-4\">\n <div className=\"bg-[var(--wui-color-danger-bg)] rounded-xl p-4\">\n <div className=\"flex items-start gap-3\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5 text-[var(--wui-color-danger-text)] shrink-0 mt-0.5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M10 1.944A11.954 11.954 0 012.166 5C2.056 5.649 2 6.319 2 7c0 5.225 3.34 9.67 8 11.317C14.66 16.67 18 12.225 18 7c0-.682-.057-1.35-.166-2.001A11.954 11.954 0 0110 1.944zM11 14a1 1 0 11-2 0 1 1 0 012 0zm0-7a1 1 0 10-2 0v3a1 1 0 102 0V7z\"\n clipRule=\"evenodd\"\n />\n </svg>\n <div>\n <p className=\"text-sm font-medium text-[var(--wui-color-danger-text)] mb-2\">\n Your recovery phrase gives full access to your account and\n funds.\n </p>\n <ul className=\"text-sm text-[var(--wui-color-danger-text)] space-y-1.5\">\n <li className=\"flex items-start gap-2\">\n <span className=\"shrink-0 mt-1\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-3 w-3\"\n viewBox=\"0 0 12 12\"\n fill=\"currentColor\"\n >\n <circle cx=\"6\" cy=\"6\" r=\"2\" />\n </svg>\n </span>\n Never share it with anyone\n </li>\n <li className=\"flex items-start gap-2\">\n <span className=\"shrink-0 mt-1\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-3 w-3\"\n viewBox=\"0 0 12 12\"\n fill=\"currentColor\"\n >\n <circle cx=\"6\" cy=\"6\" r=\"2\" />\n </svg>\n </span>\n Never enter it on unverified websites\n </li>\n <li className=\"flex items-start gap-2\">\n <span className=\"shrink-0 mt-1\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-3 w-3\"\n viewBox=\"0 0 12 12\"\n fill=\"currentColor\"\n >\n <circle cx=\"6\" cy=\"6\" r=\"2\" />\n </svg>\n </span>\n Write it down and store it securely\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n\n {/* Footer buttons */}\n <div className=\"px-6 pb-5 flex gap-2\">\n <button\n onClick={onClose}\n className=\"flex-1 py-2.5 px-4 bg-[var(--wui-color-bg-tertiary)] text-[var(--wui-color-text-secondary)] font-medium rounded-xl hover:brightness-90 transition-all text-sm\"\n >\n Cancel\n </button>\n <button\n onClick={onReveal}\n className=\"flex-1 py-2.5 px-4 bg-[var(--wui-color-danger-bg)] text-[var(--wui-color-danger-text)] font-medium rounded-xl hover:bg-[var(--wui-color-danger-bg-hover)] transition-colors text-sm\"\n >\n Reveal Recovery Phrase\n </button>\n </div>\n </>\n )\n}\n\nfunction LoadingStep() {\n return (\n <div className=\"px-6 py-12 flex flex-col items-center gap-3\">\n <svg\n className=\"h-8 w-8 text-[var(--wui-color-text-tertiary)] animate-spin\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n <p className=\"text-sm text-[var(--wui-color-text-secondary)]\">\n Retrieving key...\n </p>\n </div>\n )\n}\n\nfunction DisplayStep({\n words,\n timeRemaining,\n formatTime,\n hasCopied,\n onCopy,\n onClose,\n}: {\n words: string[]\n timeRemaining: number\n formatTime: (seconds: number) => string\n hasCopied: boolean\n onCopy: () => void\n onClose: () => void\n}) {\n return (\n <>\n {/* Header with timer */}\n <div className=\"relative flex items-center justify-between px-6 pt-5 pb-3\">\n <h2 className=\"text-xl font-bold text-[var(--wui-color-text)] wallet-custom-font\">\n Recovery Phrase\n </h2>\n <div className=\"flex items-center gap-2\">\n <span\n className=\"text-sm font-medium tabular-nums text-[var(--wui-color-text-secondary)]\"\n aria-label={`${timeRemaining} seconds remaining`}\n >\n {formatTime(timeRemaining)}\n </span>\n <button\n onClick={onClose}\n className=\"rounded-full bg-[var(--wui-color-bg-tertiary)] p-2 text-[var(--wui-color-text-secondary)] hover:brightness-90 transition-all\"\n aria-label=\"Close dialog\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </button>\n </div>\n </div>\n\n {/* Mnemonic grid */}\n <div className=\"px-6 pb-4\">\n <div\n className=\"bg-[var(--wui-color-bg-secondary)] rounded-xl p-3\"\n style={{ userSelect: 'none' }}\n >\n <div className=\"grid grid-cols-3 gap-1.5\">\n {words.map((word, i) => (\n <div\n key={i}\n className=\"text-center py-1.5 px-1 rounded-lg bg-[var(--wui-color-bg)] border border-[var(--wui-color-border)]\"\n >\n <span className=\"text-[10px] leading-none text-[var(--wui-color-text-tertiary)] block mb-0.5\">\n {i + 1}\n </span>\n <span className=\"text-xs font-medium text-[var(--wui-color-text)]\">\n {word}\n </span>\n </div>\n ))}\n </div>\n </div>\n </div>\n\n {/* Action buttons */}\n <div className=\"px-6 pb-2 flex gap-2\">\n <button\n onClick={onCopy}\n className=\"flex-1 py-2 px-4 bg-[var(--wui-color-bg-tertiary)] text-[var(--wui-color-text-secondary)] font-medium rounded-xl hover:brightness-90 transition-all text-sm flex items-center justify-center\"\n title=\"Copy recovery phrase\"\n >\n {hasCopied ? (\n <>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-4 w-4 text-green-500 mr-1.5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n Copied\n </>\n ) : (\n <>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-4 w-4 mr-1.5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path d=\"M8 3a1 1 0 011-1h2a1 1 0 110 2H9a1 1 0 01-1-1z\" />\n <path d=\"M6 3a2 2 0 00-2 2v11a2 2 0 002 2h8a2 2 0 002-2V5a2 2 0 00-2-2 3 3 0 01-3 3H9a3 3 0 01-3-3z\" />\n </svg>\n Copy\n </>\n )}\n </button>\n <button\n onClick={onClose}\n className=\"flex-1 py-2 px-4 bg-[var(--wui-color-primary)] text-[var(--wui-color-primary-text)] font-medium rounded-xl hover:bg-[var(--wui-color-primary-hover)] transition-colors text-sm\"\n >\n Done\n </button>\n </div>\n\n {/* Clipboard warning */}\n <div className=\"px-6 pb-5\">\n <p className=\"text-xs text-[var(--wui-color-text-tertiary)] text-center\">\n Remember to clear your clipboard after use\n </p>\n </div>\n </>\n )\n}\n\nfunction ErrorStep({\n message,\n onRetry,\n onClose,\n}: {\n message: string | null\n onRetry: () => void\n onClose: () => void\n}) {\n return (\n <>\n {/* Header */}\n <div className=\"relative flex items-center px-6 pt-5 pb-4\">\n <h2 className=\"text-xl font-bold text-[var(--wui-color-text)] wallet-custom-font\">\n Export Recovery Phrase\n </h2>\n <button\n onClick={onClose}\n className=\"absolute right-4 rounded-full bg-[var(--wui-color-bg-tertiary)] p-2 text-[var(--wui-color-text-secondary)] hover:brightness-90 transition-all\"\n aria-label=\"Close dialog\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </button>\n </div>\n\n {/* Error content */}\n <div className=\"px-6 pb-4\">\n <div className=\"bg-[var(--wui-color-danger-bg)] rounded-xl p-4\">\n <div className=\"flex items-start gap-3\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5 text-[var(--wui-color-danger-text)] shrink-0 mt-0.5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n <p className=\"text-sm text-[var(--wui-color-danger-text)]\">\n {message || 'An unexpected error occurred.'}\n </p>\n </div>\n </div>\n </div>\n\n {/* Footer buttons */}\n <div className=\"px-6 pb-5 flex gap-2\">\n <button\n onClick={onClose}\n className=\"flex-1 py-2.5 px-4 bg-[var(--wui-color-bg-tertiary)] text-[var(--wui-color-text-secondary)] font-medium rounded-xl hover:brightness-90 transition-all text-sm\"\n >\n Cancel\n </button>\n <button\n onClick={onRetry}\n className=\"flex-1 py-2.5 px-4 bg-[var(--wui-color-primary)] text-[var(--wui-color-primary-text)] font-medium rounded-xl hover:bg-[var(--wui-color-primary-hover)] transition-colors text-sm\"\n >\n Try Again\n </button>\n </div>\n </>\n )\n}\n","import { EXPORT_KEY_DIALOG } from './constants'\n\nimport type { MenuRenderContext } from '../types'\n\nexport function ExportKeyMenuButton({ ctx }: { ctx: MenuRenderContext }) {\n const handleClick = () => {\n ctx.closeMenu()\n ctx.openDialog(EXPORT_KEY_DIALOG)\n }\n\n return (\n <>\n <div className=\"border-t border-[var(--wui-color-border)] mt-2 mb-2\" />\n <button\n onClick={handleClick}\n className=\"w-full flex items-center gap-2 px-2 py-2 rounded-lg text-sm text-[var(--wui-color-text-secondary)] hover:bg-[var(--wui-color-bg-hover)] transition-colors\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-4 w-4 shrink-0\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M18 8a6 6 0 01-7.743 5.743L10 14l-1 1-1 1H6v2H2v-4l4.257-4.257A6 6 0 1118 8zm-6-4a1 1 0 100 2 2 2 0 012 2 1 1 0 102 0 4 4 0 00-4-4z\"\n clipRule=\"evenodd\"\n />\n </svg>\n <span className=\"flex-1 text-left\">Export Recovery Phrase</span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-4 w-4 shrink-0 opacity-50\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </button>\n </>\n )\n}\n","import { EXPORT_KEY_DIALOG } from './constants'\nimport { ExportKeyDialog } from './ExportKeyDialog'\nimport { ExportKeyMenuButton } from './ExportKeyMenuButton'\n\nimport type { WalletUIPlugin } from '../types'\n\nexport { EXPORT_KEY_DIALOG } from './constants'\n\nexport interface ExportKeyPluginOptions {\n /** How long to display the mnemonic before auto-closing (seconds). Default: 120 */\n displayTimeout?: number\n}\n\n/**\n * Plugin that adds wallet recovery phrase export to the ConnectedWalletMenu.\n * Only visible for wallets that support private key access (e.g., Web3Auth).\n */\nexport function exportKeyPlugin(\n options: ExportKeyPluginOptions = {},\n): WalletUIPlugin {\n const { displayTimeout } = options\n\n return {\n id: 'export-key',\n name: 'Export Recovery Phrase',\n\n menuItems: [\n {\n key: 'export-key-trigger',\n slot: 'after-wallet-info',\n order: 10,\n enabled: (ctx) => !!ctx.activeWallet?.canUsePrivateKey,\n render: (ctx) => <ExportKeyMenuButton ctx={ctx} />,\n },\n ],\n\n dialogs: [\n {\n key: EXPORT_KEY_DIALOG,\n render: ({ onClose }) => (\n <ExportKeyDialog onClose={onClose} displayTimeout={displayTimeout} />\n ),\n },\n ],\n }\n}\n"],"names":["EXPORT_KEY_DIALOG","INPUT_ERROR","FINALIZE_ERROR","WINDOW","root","WEB_WORKER","NODE_JS","global","COMMON_JS","module","ARRAY_BUFFER","HEX_CHARS","EXTRA","SHIFT","K","OUTPUT_TYPES","blocks","obj","createOutputMethod","outputType","bits","message","Sha512","createMethod","method","i","type","createHmacOutputMethod","key","HmacSha512","createHmacMethod","sharedMemory","notString","code","index","length","h0h","h0l","h1h","h1l","h2h","h2l","h3h","h3l","h4h","h4l","h5h","h5l","h6h","h6l","h7h","h7l","j","s0h","s0l","s1h","s1l","c1","c2","c3","c4","abh","abl","dah","dal","cdh","cdl","bch","bcl","majh","majl","t1h","t1l","t2h","t2l","chh","chl","ah","al","bh","bl","ch","cl","dh","dl","eh","el","fh","fl","gh","gl","hh","hl","hex","arr","buffer","dataView","hash","attrs","bytes","oKeyPad","iKeyPad","b","innerHash","exports","genericHash","sha512","SEED_BTYES_LENGTH","english","toUint11Array","buffer8","buffer11","acc","accBits","add","octet","flush","applyWords","nums","n","computeChecksum","seed","hashBuffer","nacl.genericHash","uint11Hash","mnemonicFromSeed","nacl.SEED_BTYES_LENGTH","uint11Array","words","checksumWord","secretKeyToMnemonic","sk","DEFAULT_DISPLAY_TIMEOUT","ExportKeyDialog","onClose","displayTimeout","withPrivateKey","useWallet","step","setStep","useState","mnemonicWords","setMnemonicWords","timeRemaining","setTimeRemaining","hasCopied","setHasCopied","errorMessage","setErrorMessage","animationState","setAnimationState","timerRef","useRef","refs","context","useFloating","open","handleClose","dismiss","useDismiss","role","useRole","getFloatingProps","useInteractions","useEffect","clearSensitiveData","useCallback","prev","handleReveal","secretKey","mnemonic","error","handleCopy","handleRetry","formatTime","seconds","mins","secs","jsx","FloatingOverlay","FloatingFocusManager","jsxs","WarningStep","LoadingStep","DisplayStep","ErrorStep","onReveal","Fragment","onCopy","word","onRetry","ExportKeyMenuButton","ctx","exportKeyPlugin","options","_a"],"mappings":"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A,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AC1/DA,SAASC,GAAcC,GAAS;AAC5B,QAAMC,IAAW,CAAA;AACjB,MAAIC,IAAM,GACNC,IAAU;AACd,WAASC,EAAIC,IAAO;AAChB,IAAAH,KAAOG,MAASF,GAChBA,KAAW,GACPA,KAAW,OACXF,EAAS,KAAKC,IAAM,IAAK,GACzBA,MAAQ,IACRC,KAAW;AAAA,EAEnB;AACA,WAASG,KAAQ;AACb,IAAIH,KACAF,EAAS,KAAKC,CAAG;AAAA,EAEzB;AACA,SAAAF,EAAQ,QAAQI,CAAG,GACnBE,GAAK,GACEL;AACX;AACA,SAASM,GAAWC,GAAM;AACtB,SAAOA,EAAK,IAAI,CAACC,MAAMX,GAAQW,CAAC,CAAC;AACrC;AACA,SAASC,GAAgBC,GAAM;AAC3B,QAAMC,IAAaC,GAAiBF,CAAI,GAClCG,IAAaf,GAAca,CAAU;AAE3C,SADcL,GAAWO,CAAU,EACtB,CAAC;AAClB;AAOO,SAASC,GAAiBJ,GAAM;AAEnC,MAAIA,EAAK,WAAWK;AAChB,UAAM,IAAI,WAAW,uBAAuBA,EAAsB,EAAE;AAExE,QAAMC,IAAclB,GAAcY,CAAI,GAChCO,IAAQX,GAAWU,CAAW,GAC9BE,IAAeT,GAAgBC,CAAI;AACzC,SAAO,GAAGO,EAAM,KAAK,GAAG,CAAC,IAAIC,CAAY;AAC7C;AAgFO,SAASC,GAAoBC,GAAI;AAEpC,QAAMV,IAAOU,EAAG,MAAM,GAAGL,EAAsB;AAC/C,SAAOD,GAAiBJ,CAAI;AAChC;AC3HA,MAAMW,KAA0B;AAOzB,SAASC,GAAgB;AAAA,EAC9B,SAAAC;AAAA,EACA,gBAAAC,IAAiBH;AACnB,GAAyB;AACvB,QAAM,EAAE,gBAAAI,EAAA,IAAmBC,GAAA,GAErB,CAACC,GAAMC,CAAO,IAAIC,GAAqB,SAAS,GAChD,CAACC,IAAeC,EAAgB,IAAIF,GAA0B,IAAI,GAClE,CAACG,IAAeC,EAAgB,IAAIJ,GAASL,CAAc,GAC3D,CAACU,GAAWC,EAAY,IAAIN,GAAS,EAAK,GAC1C,CAACO,IAAcC,EAAe,IAAIR,GAAwB,IAAI,GAC9D,CAACS,IAAgBC,CAAiB,IAAIV,GAE1C,UAAU,GAENW,KAAWC,GAA8C,IAAI,GAE7D,EAAE,MAAAC,IAAM,SAAAC,GAAA,IAAYC,GAAY;AAAA,IACpC,MAAM;AAAA,IACN,cAAc,CAACC,MAAS;AACtB,MAAKA,KACHC,EAAA;AAAA,IAEJ;AAAA,EAAA,CACD,GAEKC,KAAUC,GAAWL,IAAS,EAAE,mBAAmB,aAAa,GAChEM,IAAOC,GAAQP,IAAS,EAAE,MAAM,UAAU,GAC1C,EAAE,kBAAAQ,GAAA,IAAqBC,GAAgB,CAACL,IAASE,CAAI,CAAC;AAG5D,EAAAI,GAAU,MAAM;AACd,0BAAsB,MAAM;AAC1B,MAAAd,EAAkB,SAAS;AAAA,IAC7B,CAAC;AAAA,EACH,GAAG,CAAA,CAAE;AAEL,QAAMe,IAAqBC,GAAY,MAAM;AAC3C,IAAAxB,GAAiB,IAAI,GACjBG,KACF,UAAU,UAAU,UAAU,EAAE,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC,GAE9CM,GAAS,YACX,cAAcA,GAAS,OAAO,GAC9BA,GAAS,UAAU;AAAA,EAEvB,GAAG,CAACN,CAAS,CAAC,GAERY,IAAcS,GAAY,MAAM;AACpC,IAAAD,EAAA,GACAf,EAAkB,SAAS,GAC3B,WAAW,MAAM;AACf,MAAAhB,EAAA;AAAA,IACF,GAAG,GAAG;AAAA,EACR,GAAG,CAAC+B,GAAoB/B,CAAO,CAAC;AAGhC,EAAA8B,GAAU,MAAM;AACd,QAAI,EAAA1B,MAAS,aAAa,CAACG;AAE3B,aAAAU,GAAS,UAAU,YAAY,MAAM;AACnC,QAAAP,GAAiB,CAACuB,MACZA,KAAQ,KACVV,EAAA,GACO,KAEFU,IAAO,CACf;AAAA,MACH,GAAG,GAAI,GAEA,MAAM;AACX,QAAIhB,GAAS,YACX,cAAcA,GAAS,OAAO,GAC9BA,GAAS,UAAU;AAAA,MAEvB;AAAA,EACF,GAAG,CAACb,GAAMG,IAAegB,CAAW,CAAC,GAGrCO,GAAU,MACD,MAAM;AACX,IAAAtB,GAAiB,IAAI,GACjBS,GAAS,WACX,cAAcA,GAAS,OAAO;AAAA,EAElC,GACC,CAAA,CAAE;AAEL,QAAMiB,IAAe,YAAY;AAC/B,IAAA7B,EAAQ,SAAS;AACjB,QAAI;AACF,YAAMH,EAAe,OAAOiC,MAAc;AACxC,cAAMC,IAAWxC,GAAoBuC,CAAS;AAC9C,QAAA3B,GAAiB4B,EAAS,MAAM,GAAG,CAAC,GACpC/B,EAAQ,SAAS;AAAA,MACnB,CAAC;AAAA,IACH,SAASgC,GAAO;AACd,MAAAvB;AAAA,QACEuB,aAAiB,QAAQA,EAAM,UAAU;AAAA,MAAA,GAE3ChC,EAAQ,OAAO;AAAA,IACjB;AAAA,EACF,GAEMiC,IAAa,MAAM;AACvB,IAAK/B,OACL,UAAU,UAAU,UAAUA,GAAc,KAAK,GAAG,CAAC,GACrDK,GAAa,EAAI,GACjB,WAAW,MAAMA,GAAa,EAAK,GAAG,GAAI;AAAA,EAC5C,GAEM2B,IAAc,MAAM;AACxB,IAAAzB,GAAgB,IAAI,GACpBT,EAAQ,SAAS;AAAA,EACnB,GAEMmC,IAAa,CAACC,MAA4B;AAC9C,UAAMC,IAAO,KAAK,MAAMD,IAAU,EAAE,GAC9BE,IAAOF,IAAU;AACvB,WAAO,GAAGC,CAAI,IAAIC,EAAK,WAAW,SAAS,GAAG,GAAG,CAAC;AAAA,EACpD;AAIA,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,cAAY9B;AAAA,MACZ,YAAU;AAAA,MAEV,UAAA,gBAAA6B,EAACE,IAAA,EAAqB,SAAA1B,IAAkB,OAAO,IAC7C,UAAA,gBAAA2B;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAK5B,GAAK;AAAA,UACT,GAAGS,GAAA;AAAA,UACJ,MAAK;AAAA,UACL,cACExB,MAAS,YAAY,oBAAoB;AAAA,UAE3C,cAAYW;AAAA,UACZ,WAAU;AAAA,UACV,OAAO,EAAE,WAAW,UAAA;AAAA,UAEnB,UAAA;AAAA,YAAAX,MAAS,aACR,gBAAAwC,EAACI,IAAA,EAAY,UAAUd,GAAc,SAASX,GAAa;AAAA,YAG5DnB,MAAS,aAAa,gBAAAwC,EAACK,IAAA,CAAA,CAAY;AAAA,YAEnC7C,MAAS,aAAaG,MACrB,gBAAAqC;AAAA,cAACM;AAAA,cAAA;AAAA,gBACC,OAAO3C;AAAA,gBACP,eAAAE;AAAA,gBACA,YAAA+B;AAAA,gBACA,WAAA7B;AAAA,gBACA,QAAQ2B;AAAA,gBACR,SAASf;AAAA,cAAA;AAAA,YAAA;AAAA,YAIZnB,MAAS,WACR,gBAAAwC;AAAA,cAACO;AAAA,cAAA;AAAA,gBACC,SAAStC;AAAA,gBACT,SAAS0B;AAAA,gBACT,SAAShB;AAAA,cAAA;AAAA,YAAA;AAAA,UACX;AAAA,QAAA;AAAA,MAAA,EAEJ,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,SAASyB,GAAY;AAAA,EACnB,UAAAI;AAAA,EACA,SAAApD;AACF,GAGG;AACD,SACE,gBAAA+C,EAAAM,IAAA,EAEE,UAAA;AAAA,IAAA,gBAAAN,EAAC,OAAA,EAAI,WAAU,6CACb,UAAA;AAAA,MAAA,gBAAAH,EAAC,MAAA,EAAG,WAAU,qEAAoE,UAAA,0BAElF;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAS5C;AAAA,UACT,WAAU;AAAA,UACV,cAAW;AAAA,UAEX,UAAA,gBAAA4C;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAM;AAAA,cACN,WAAU;AAAA,cACV,SAAQ;AAAA,cACR,MAAK;AAAA,cAEL,UAAA,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,UAAS;AAAA,kBACT,GAAE;AAAA,kBACF,UAAS;AAAA,gBAAA;AAAA,cAAA;AAAA,YACX;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF,GACF;AAAA,IAGA,gBAAAA,EAAC,OAAA,EAAI,WAAU,aACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,kDACb,UAAA,gBAAAG,EAAC,OAAA,EAAI,WAAU,0BACb,UAAA;AAAA,MAAA,gBAAAH;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,WAAU;AAAA,UACV,SAAQ;AAAA,UACR,MAAK;AAAA,UAEL,UAAA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,GAAE;AAAA,cACF,UAAS;AAAA,YAAA;AAAA,UAAA;AAAA,QACX;AAAA,MAAA;AAAA,wBAED,OAAA,EACC,UAAA;AAAA,QAAA,gBAAAA,EAAC,KAAA,EAAE,WAAU,gEAA+D,UAAA,qEAG5E;AAAA,QACA,gBAAAG,EAAC,MAAA,EAAG,WAAU,2DACZ,UAAA;AAAA,UAAA,gBAAAA,EAAC,MAAA,EAAG,WAAU,0BACZ,UAAA;AAAA,YAAA,gBAAAH,EAAC,QAAA,EAAK,WAAU,iBACd,UAAA,gBAAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAM;AAAA,gBACN,WAAU;AAAA,gBACV,SAAQ;AAAA,gBACR,MAAK;AAAA,gBAEL,4BAAC,UAAA,EAAO,IAAG,KAAI,IAAG,KAAI,GAAE,IAAA,CAAI;AAAA,cAAA;AAAA,YAAA,GAEhC;AAAA,YAAO;AAAA,UAAA,GAET;AAAA,UACA,gBAAAG,EAAC,MAAA,EAAG,WAAU,0BACZ,UAAA;AAAA,YAAA,gBAAAH,EAAC,QAAA,EAAK,WAAU,iBACd,UAAA,gBAAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAM;AAAA,gBACN,WAAU;AAAA,gBACV,SAAQ;AAAA,gBACR,MAAK;AAAA,gBAEL,4BAAC,UAAA,EAAO,IAAG,KAAI,IAAG,KAAI,GAAE,IAAA,CAAI;AAAA,cAAA;AAAA,YAAA,GAEhC;AAAA,YAAO;AAAA,UAAA,GAET;AAAA,UACA,gBAAAG,EAAC,MAAA,EAAG,WAAU,0BACZ,UAAA;AAAA,YAAA,gBAAAH,EAAC,QAAA,EAAK,WAAU,iBACd,UAAA,gBAAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAM;AAAA,gBACN,WAAU;AAAA,gBACV,SAAQ;AAAA,gBACR,MAAK;AAAA,gBAEL,4BAAC,UAAA,EAAO,IAAG,KAAI,IAAG,KAAI,GAAE,IAAA,CAAI;AAAA,cAAA;AAAA,YAAA,GAEhC;AAAA,YAAO;AAAA,UAAA,EAAA,CAET;AAAA,QAAA,EAAA,CACF;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,EAAA,CACF,GACF,GACF;AAAA,IAGA,gBAAAG,EAAC,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,MAAA,gBAAAH;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAS5C;AAAA,UACT,WAAU;AAAA,UACX,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAGD,gBAAA4C;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASQ;AAAA,UACT,WAAU;AAAA,UACX,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAED,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;AAEA,SAASH,KAAc;AACrB,SACE,gBAAAF,EAAC,OAAA,EAAI,WAAU,+CACb,UAAA;AAAA,IAAA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAM;AAAA,QACN,MAAK;AAAA,QACL,SAAQ;AAAA,QAER,UAAA;AAAA,UAAA,gBAAAH;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACF,QAAO;AAAA,cACP,aAAY;AAAA,YAAA;AAAA,UAAA;AAAA,UAEd,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAK;AAAA,cACL,GAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QACJ;AAAA,MAAA;AAAA,IAAA;AAAA,IAEF,gBAAAA,EAAC,KAAA,EAAE,WAAU,kDAAiD,UAAA,oBAAA,CAE9D;AAAA,EAAA,GACF;AAEJ;AAEA,SAASM,GAAY;AAAA,EACnB,OAAAxD;AAAA,EACA,eAAAe;AAAA,EACA,YAAA+B;AAAA,EACA,WAAA7B;AAAA,EACA,QAAA2C;AAAA,EACA,SAAAtD;AACF,GAOG;AACD,SACE,gBAAA+C,EAAAM,IAAA,EAEE,UAAA;AAAA,IAAA,gBAAAN,EAAC,OAAA,EAAI,WAAU,6DACb,UAAA;AAAA,MAAA,gBAAAH,EAAC,MAAA,EAAG,WAAU,qEAAoE,UAAA,mBAElF;AAAA,MACA,gBAAAG,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,QAAA,gBAAAH;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,cAAY,GAAGnC,CAAa;AAAA,YAE3B,YAAWA,CAAa;AAAA,UAAA;AAAA,QAAA;AAAA,QAE3B,gBAAAmC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAS5C;AAAA,YACT,WAAU;AAAA,YACV,cAAW;AAAA,YAEX,UAAA,gBAAA4C;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAM;AAAA,gBACN,WAAU;AAAA,gBACV,SAAQ;AAAA,gBACR,MAAK;AAAA,gBAEL,UAAA,gBAAAA;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,UAAS;AAAA,oBACT,GAAE;AAAA,oBACF,UAAS;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACX;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MACF,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IAGA,gBAAAA,EAAC,OAAA,EAAI,WAAU,aACb,UAAA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,YAAY,OAAA;AAAA,QAErB,UAAA,gBAAAA,EAAC,SAAI,WAAU,4BACZ,YAAM,IAAI,CAACW,IAAMpK,OAChB,gBAAA4J;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAU;AAAA,YAEV,UAAA;AAAA,cAAA,gBAAAH,EAAC,QAAA,EAAK,WAAU,+EACb,UAAAzJ,KAAI,GACP;AAAA,cACA,gBAAAyJ,EAAC,QAAA,EAAK,WAAU,oDACb,UAAAW,GAAA,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,UARKpK;AAAA,QAAA,CAUR,EAAA,CACH;AAAA,MAAA;AAAA,IAAA,GAEJ;AAAA,IAGA,gBAAA4J,EAAC,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,MAAA,gBAAAH;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASU;AAAA,UACT,WAAU;AAAA,UACV,OAAM;AAAA,UAEL,cACC,gBAAAP,EAAAM,IAAA,EACE,UAAA;AAAA,YAAA,gBAAAT;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAM;AAAA,gBACN,WAAU;AAAA,gBACV,SAAQ;AAAA,gBACR,MAAK;AAAA,gBAEL,UAAA,gBAAAA;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,UAAS;AAAA,oBACT,GAAE;AAAA,oBACF,UAAS;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACX;AAAA,YAAA;AAAA,YACI;AAAA,UAAA,EAAA,CAER,IAEA,gBAAAG,EAAAM,IAAA,EACE,UAAA;AAAA,YAAA,gBAAAN;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAM;AAAA,gBACN,WAAU;AAAA,gBACV,SAAQ;AAAA,gBACR,MAAK;AAAA,gBAEL,UAAA;AAAA,kBAAA,gBAAAH,EAAC,QAAA,EAAK,GAAE,iDAAA,CAAiD;AAAA,kBACzD,gBAAAA,EAAC,QAAA,EAAK,GAAE,6FAAA,CAA6F;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YACjG;AAAA,UAAA,EAAA,CAER;AAAA,QAAA;AAAA,MAAA;AAAA,MAGJ,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAS5C;AAAA,UACT,WAAU;AAAA,UACX,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAED,GACF;AAAA,IAGA,gBAAA4C,EAAC,SAAI,WAAU,aACb,4BAAC,KAAA,EAAE,WAAU,6DAA4D,UAAA,6CAAA,CAEzE,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;AAEA,SAASO,GAAU;AAAA,EACjB,SAAApK;AAAA,EACA,SAAAyK;AAAA,EACA,SAAAxD;AACF,GAIG;AACD,SACE,gBAAA+C,EAAAM,IAAA,EAEE,UAAA;AAAA,IAAA,gBAAAN,EAAC,OAAA,EAAI,WAAU,6CACb,UAAA;AAAA,MAAA,gBAAAH,EAAC,MAAA,EAAG,WAAU,qEAAoE,UAAA,0BAElF;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAS5C;AAAA,UACT,WAAU;AAAA,UACV,cAAW;AAAA,UAEX,UAAA,gBAAA4C;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAM;AAAA,cACN,WAAU;AAAA,cACV,SAAQ;AAAA,cACR,MAAK;AAAA,cAEL,UAAA,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,UAAS;AAAA,kBACT,GAAE;AAAA,kBACF,UAAS;AAAA,gBAAA;AAAA,cAAA;AAAA,YACX;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF,GACF;AAAA,IAGA,gBAAAA,EAAC,OAAA,EAAI,WAAU,aACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,kDACb,UAAA,gBAAAG,EAAC,OAAA,EAAI,WAAU,0BACb,UAAA;AAAA,MAAA,gBAAAH;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,WAAU;AAAA,UACV,SAAQ;AAAA,UACR,MAAK;AAAA,UAEL,UAAA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,GAAE;AAAA,cACF,UAAS;AAAA,YAAA;AAAA,UAAA;AAAA,QACX;AAAA,MAAA;AAAA,MAEF,gBAAAA,EAAC,KAAA,EAAE,WAAU,+CACV,eAAW,gCAAA,CACd;AAAA,IAAA,EAAA,CACF,GACF,GACF;AAAA,IAGA,gBAAAG,EAAC,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,MAAA,gBAAAH;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAS5C;AAAA,UACT,WAAU;AAAA,UACX,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAGD,gBAAA4C;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASY;AAAA,UACT,WAAU;AAAA,UACX,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAED,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;ACjiBO,SAASC,GAAoB,EAAE,KAAAC,KAAmC;AAMvE,SACE,gBAAAX,EAAAM,IAAA,EACE,UAAA;AAAA,IAAA,gBAAAT,EAAC,OAAA,EAAI,WAAU,sDAAA,CAAsD;AAAA,IACrE,gBAAAG;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SATc,MAAM;AACxB,UAAAW,EAAI,UAAA,GACJA,EAAI,WAAWhM,EAAiB;AAAA,QAClC;AAAA,QAOM,WAAU;AAAA,QAEV,UAAA;AAAA,UAAA,gBAAAkL;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAM;AAAA,cACN,WAAU;AAAA,cACV,SAAQ;AAAA,cACR,MAAK;AAAA,cAEL,UAAA,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,UAAS;AAAA,kBACT,GAAE;AAAA,kBACF,UAAS;AAAA,gBAAA;AAAA,cAAA;AAAA,YACX;AAAA,UAAA;AAAA,UAEF,gBAAAA,EAAC,QAAA,EAAK,WAAU,oBAAmB,UAAA,0BAAsB;AAAA,UACzD,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAM;AAAA,cACN,WAAU;AAAA,cACV,SAAQ;AAAA,cACR,MAAK;AAAA,cAEL,UAAA,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,UAAS;AAAA,kBACT,GAAE;AAAA,kBACF,UAAS;AAAA,gBAAA;AAAA,cAAA;AAAA,YACX;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;AC5BO,SAASe,GACdC,IAAkC,IAClB;AAChB,QAAM,EAAE,gBAAA3D,MAAmB2D;AAE3B,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,MAAM;AAAA,IAEN,WAAW;AAAA,MACT;AAAA,QACE,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS,CAACF,MAAA;;AAAQ,kBAAC,GAACG,IAAAH,EAAI,iBAAJ,QAAAG,EAAkB;AAAA;AAAA,QACtC,QAAQ,CAACH,MAAQ,gBAAAd,EAACa,MAAoB,KAAAC,EAAA,CAAU;AAAA,MAAA;AAAA,IAClD;AAAA,IAGF,SAAS;AAAA,MACP;AAAA,QACE,KAAKhM;AAAA,QACL,QAAQ,CAAC,EAAE,SAAAsI,EAAA,MACT,gBAAA4C,EAAC7C,IAAA,EAAgB,SAAAC,GAAkB,gBAAAC,EAAA,CAAgC;AAAA,MAAA;AAAA,IAEvE;AAAA,EACF;AAEJ;","x_google_ignoreList":[1,2,3,4]}
|